コード例 #1
0
 def testInv1(self):
     for i in range(100):
         x, y, z = randnums(3, -5, 5)
         v = vec3(x, y, z)
         y, p, r = randnums(3, -math.pi * 2, math.pi * 2)
         r1 = rotator(y, p, r)
         self.assertEqual(r1 * (r1 / v), v)
コード例 #2
0
 def testMatrix3(self):
     for i in range(100):
         y, p, r = randnums(3, -math.pi * 2, math.pi * 2)
         r1 = rotator(y, p, r)
         y, p, r = randnums(3, -math.pi * 2, math.pi * 2)
         r2 = rotator(y, p, r)
         m1 = r1.toMatrix()
         m2 = r2.toMatrix()
         m = np.asarray(m1).dot(np.asarray(m2)).flat
         eqas_(listSum((r1 * r2).toMatrix()), m)
コード例 #3
0
 def testEulers2(self):
     for i in range(100):
         y, p, r = randnums(3, -math.pi * 2, math.pi * 2)
         r1 = rotator(y, p, r)
         self.assertEqual(
             r1,
             rotator(0, 0, r) * rotator(y, 0, 0) * rotator(0, p, 0))
コード例 #4
0
 def testIdent1(self):
     '''Test the default rotator which should represent the identity transformation.'''
     for i in range(100):
         x, y, z = randnums(3, -5, 5)
         v = vec3(x, y, z)
         r = rotator()
         self.assertEqual(r * v, v)
コード例 #5
0
 def testFromTo2(self):
     for i in range(100):
         x, y, z = randnums(3, -5, 5)
         v = vec3(x, y, z)
         r = rotator(v, -v)
         self.assertEqual(r, rotator(
             vec3(1, 0, 0).cross(v),
             0))  # TODO: wanted to actually test 180 degree rotators
コード例 #6
0
    def testMembers(self):
        '''Test members assigned to a vec3 are returned correctly.'''
        x, y, z = randnums(3, -5, 5)
        v = vec3(x, y, z)

        self.assertEqual(v.x(), x)
        self.assertEqual(v.y(), y)
        self.assertEqual(v.z(), z)
        self.assertAlmostEqual(v.len(), math.sqrt(x * x + y * y + z * z))
コード例 #7
0
 def testPlaneXiFunc(self):
     '''Tests the getPlaneXi function directly.'''
     v = vec3(*randnums(3, -5, 5))
     r = rotator(*randnums(4, -1, 1))
     self.assertEqual(vec3(0), getPlaneXi(v, v, r, vec3(1)))
コード例 #8
0
 def testLineDist(self):
     x, y = randnums(2, -5, 5)
     v = vec3(x, y, 0.5)
     self.assertAlmostEqual(v.lineDist(vec3(), vec3.Z()),
                            (v * vec3(1, 1, 0)).len())
コード例 #9
0
 def testCylindrical(self):
     x, y, z = randnums(3, -5, 5)
     v = vec3(x, y, z)
     self.assertEqual(v.toCylindrical().fromCylindrical(), v)
コード例 #10
0
 def testPolar(self):
     x, y, z = randnums(3, -5, 5)
     v = vec3(x, y, z)
     self.assertEqual(v.toPolar().fromPolar(), v)
コード例 #11
0
 def testEulers1(self):
     for i in range(100):
         y, p, r = randnums(3, -math.pi * 2, math.pi * 2)
         r1 = rotator(y, p, r)
         self.assertEqual(r1, rotator(*r1.getEulers()))