def test_applyCentralForce(self): body = RigidBody(mass=1.0) body.applyCentralForce(Vector3(1, 2, 3)) world = DiscreteDynamicsWorld() world.setGravity(Vector3(0, 0, 0)) world.addRigidBody(body) expectedSteps = 64 numSteps = world.stepSimulation(1.0, expectedSteps, 1.0 / expectedSteps) self.assertEqual(numSteps, expectedSteps) transform = body.getMotionState().getWorldTransform() position = transform.getOrigin() self.assertEqual(position.x, 0.5 + 0.5 / expectedSteps) self.assertEqual(position.y, 1.0 + 1.0 / expectedSteps) self.assertEqual(position.z, 1.5 + 1.5 / expectedSteps) rot = transform.getRotation() self.assertEqual( (rot.getX(), rot.getY(), rot.getZ(), rot.getW()), (0, 0, 0, 1))
def test_applyCentralForce(self): body = RigidBody(mass=1.0) body.applyCentralForce(Vector3(1, 2, 3)) world = DiscreteDynamicsWorld() world.setGravity(Vector3(0, 0, 0)) world.addRigidBody(body) expectedSteps = 64 numSteps = world.stepSimulation(1.0, expectedSteps, 1.0 / expectedSteps) self.assertEqual(numSteps, expectedSteps) transform = body.getMotionState().getWorldTransform() position = transform.getOrigin() self.assertEqual(position.x, 0.5 + 0.5 / expectedSteps) self.assertEqual(position.y, 1.0 + 1.0 / expectedSteps) self.assertEqual(position.z, 1.5 + 1.5 / expectedSteps) rot = transform.getRotation() self.assertEqual((rot.getX(), rot.getY(), rot.getZ(), rot.getW()), (0, 0, 0, 1))