MCPcopy Create free account
hub / github.com/DeadlockCode/n-body / update

Method update

src/simulation.rs:54–75  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

52 }
53
54 pub fn update(&mut self) {
55 for i in 0..self.bodies.len() {
56 let p1 = self.bodies[i].pos;
57 let m1 = self.bodies[i].mass;
58 for j in (i+1)..self.bodies.len() {
59 let p2 = self.bodies[j].pos;
60 let m2 = self.bodies[j].mass;
61
62 let r = p2 - p1;
63 let mag_sq = r.x * r.x + r.y * r.y;
64 let mag = mag_sq.sqrt();
65 let tmp = r / (mag_sq.max(MIN) * mag);
66
67 self.bodies[i].acc += m2 * tmp;
68 self.bodies[j].acc -= m1 * tmp;
69 }
70 }
71
72 for i in 0..self.bodies.len() {
73 self.bodies[i].update(DT);
74 }
75 }
76}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected