def test_calculate_diff_axis_angle_quaternion(self):
     self.q2.set_rotation(bullet.btVector3(0, 0, -1), bullet.btRadians(90))
     angle = bullet.btRadians(0.0)
     angle = bullet.btTransformUtil.calculate_diff_axis_angle_quaternion(
         self.q1, self.q2, self.v1)
     self.assertFalse(angle == 0.0)
     self.assertEqual(angle, bullet.btRadians(90))
 def test_set_rotation(self):
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                  bullet.btRadians(90))
     q1 = bullet.btQuaternion()
     q1.set_rotation(bullet.btVector3(0, 0, -1),
                     bullet.btRadians(90))
     self.assertEqual(self.q, q1)
 def test_slerp(self):
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                  bullet.btRadians(90))
     q1 = bullet.btQuaternion(bullet.btVector3(0, 0, -1), 0)
     q2 = self.q.slerp(q1, 0.5)
     expected = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                    bullet.btRadians(45))
     self.assertAlmostEqual(q2.angle(expected), 0)
 def test_calculate_diff_axis_angle(self):
     self.v1 = bullet.btVector3(0, 0, -1)
     self.q1 = bullet.btQuaternion(self.v1, bullet.btRadians(90))
     self.t2.set_rotation(self.q1)
     angle = bullet.btTransformUtil.calculate_diff_axis_angle(
         self.t1,
         self.t2,
         self.v2  # out val
     )
     self.assertEqual(angle, bullet.btRadians(90))
     self.assertEqual(self.v1, self.v2)
 def test_calculate_diff_axis_angle(self):
     self.v1 = bullet.btVector3(0, 0, -1)
     self.q1 = bullet.btQuaternion(self.v1,
                                   bullet.btRadians(90))
     self.t2.set_rotation(self.q1)
     angle = bullet.btTransformUtil.calculate_diff_axis_angle(
         self.t1, self.t2,
         self.v2  # out val
     )
     self.assertEqual(angle, bullet.btRadians(90))
     self.assertEqual(self.v1, self.v2)
 def test_calculate_diff_axis_angle_quaternion(self):
     self.q2.set_rotation(bullet.btVector3(0, 0, -1),
                          bullet.btRadians(90))
     angle = bullet.btRadians(0.0)
     angle = bullet.btTransformUtil.calculate_diff_axis_angle_quaternion(
         self.q1,
         self.q2,
         self.v1
     )
     self.assertFalse(angle == 0.0)
     self.assertEqual(angle, bullet.btRadians(90))
예제 #7
0
 def test_rotate(self):
     v1 = bullet.btVector3(0, 1, 0)  # up
     v2 = bullet.btVector3(0, 0, -1)  # forward
     expected = bullet.btVector3(1, 0, 0)  # right
     v = v1.rotate(v2, bullet.btRadians(90))
     self.assertAlmostEqual(v.x, expected.x)
     self.assertAlmostEqual(v.y, expected.y)
     self.assertAlmostEqual(v.z, expected.z)
 def test_calculate_velocity_quaternion(self):
     self.q2.set_euler(0, bullet.btRadians(90), 0)
     lin_vel = bullet.btVector3(0, 0, 0)
     ang_vel = bullet.btVector3(0, 0, 0)
     bullet.btTransformUtil.calculate_velocity_quaternion(
         self.v1,
         self.v2 * self.step,
         self.q1,
         self.q2,
         self.step,
         lin_vel,  # out param
         ang_vel  # out param
     )
     print('lin_vel', lin_vel)
     print('ang_vel', ang_vel)
     print('ang_vel.x degrees', bullet.btRadians(ang_vel.x))
     self.assertEqual(lin_vel, self.v2)
예제 #9
0
 def test_rotate(self):
     v1 = bullet.btVector3(0, 1, 0)  # up
     v2 = bullet.btVector3(0, 0, -1)  # forward
     expected = bullet.btVector3(1, 0, 0)  # right
     v = v1.rotate(v2, bullet.btRadians(90))
     self.assertAlmostEqual(v.x, expected.x)
     self.assertAlmostEqual(v.y, expected.y)
     self.assertAlmostEqual(v.z, expected.z)
 def test_calculate_velocity_quaternion(self):
     self.q2.set_euler(0,
                       bullet.btRadians(90),
                       0)
     lin_vel = bullet.btVector3(0, 0, 0)
     ang_vel = bullet.btVector3(0, 0, 0)
     bullet.btTransformUtil.calculate_velocity_quaternion(
         self.v1,
         self.v2*self.step,
         self.q1,
         self.q2,
         self.step,
         lin_vel,  # out param
         ang_vel   # out param
     )
     print('lin_vel', lin_vel)
     print('ang_vel', ang_vel)
     print('ang_vel.x degrees', bullet.btRadians(ang_vel.x))
     self.assertEqual(lin_vel, self.v2)
예제 #11
0
 def test_angle(self):
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                  bullet.btRadians(90))
     q1 = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                              bullet.btRadians(0))
     angle = self.q.angle(q1)
     expected = bullet.btRadians(45)
     self.assertAlmostEqual(angle, expected)
     angle = self.q.angle_shortest_path(q1)
     expected = bullet.btRadians(90)
     self.assertAlmostEqual(angle, expected)
     angle = self.q.get_angle()
     self.assertAlmostEqual(angle, bullet.btRadians(90))
     angle = self.q.get_angle_shortest_path()
     self.assertAlmostEqual(angle, bullet.btRadians(270))
예제 #12
0
 def test_ctors(self):
     self.q = bullet.btQuaternion(0, 0, 0, 1)
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                  bullet.btRadians(90))
     self.q = bullet.btQuaternion(0, 0, 0)
예제 #13
0
 def test_inverse(self):
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, 1),
                                  bullet.btRadians(90))
     q1 = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                              bullet.btRadians(90))
     self.assertEqual(self.q, q1.inverse())
예제 #14
0
 def test_axis(self):
     self.q = bullet.btQuaternion(bullet.btVector3(0, 0, -1),
                                  bullet.btRadians(90))
     axis = self.q.get_axis()
     self.assertEqual(self.q.get_axis(), bullet.btVector3(0, 0, -1))
예제 #15
0
 def test_angle(self):
     v1 = bullet.btVector3(1, 0, 0)
     v2 = bullet.btVector3(0, 1, 0)
     self.assertEqual(v1.angle(v2), bullet.btRadians(90))
예제 #16
0
 def test_angle(self):
     v1 = bullet.btVector3(1, 0, 0)
     v2 = bullet.btVector3(0, 1, 0)
     self.assertEqual(v1.angle(v2), bullet.btRadians(90))