bool Model::IsOverlapping(ModelObject &left, ModelObject &right) { Shape::Sphere circle_left = { left.position(), left.radius() }; Shape::Sphere circle_right = { right.position(), right.radius() }; return (Overlap::IsOverlapping(circle_left, circle_right)); }
// Adds the force exerted on each body to each body's net force void NBodySimulator::AddForcesBetween(ModelObject &b1, ModelObject &b2) { Gravity::PointMass m1 = { b1.mass(), b1.position() }; Gravity::PointMass m2 = { b2.mass(), b2.position() }; Vector3 force = Gravity::force(m1, m2, gravity_); b1.set_force(b1.force() + force); b2.set_force(b2.force() + force * -1); }