Esempio n. 1
0
    def testEulerAdapter(self):
        """Check the EulerAdapter component."""

        ea = EulerAdapter(anglex=40, angley=20, anglez=10, order="xyz", auto_insert=False)
        self.assertEqual(ea.output, mat3.fromEulerXYZ(radians(40), radians(20), radians(10)))

        ea.anglex = 0
        ea.angley = 10
        ea.anglez = 20
        self.assertEqual(ea.output, mat3.fromEulerXYZ(0, radians(10), radians(20)))
Esempio n. 2
0
    def testEulerAdapter(self):
        """Check the EulerAdapter component."""

        ea = EulerAdapter(anglex=40,
                          angley=20,
                          anglez=10,
                          order="xyz",
                          auto_insert=False)
        self.assertEqual(
            ea.output, mat3.fromEulerXYZ(radians(40), radians(20),
                                         radians(10)))

        ea.anglex = 0
        ea.angley = 10
        ea.anglez = 20
        self.assertEqual(ea.output,
                         mat3.fromEulerXYZ(0, radians(10), radians(20)))
Esempio n. 3
0
 def load3dsTextureMap(self,tm):
     if tm != None:
         self.name = tm.name
         self.set = True
         self.scale = tm.scale
         self.offset = tm.offset
         self.rotation = radians(tm.rotation)
         self.percent = tm.percent
Esempio n. 4
0
 def load3dsTextureMap(self, tm):
     if tm != None:
         self.name = tm.name
         self.set = True
         self.scale = tm.scale
         self.offset = tm.offset
         self.rotation = radians(tm.rotation)
         self.percent = tm.percent
Esempio n. 5
0
    def testMath(self):
        """Test the math functions.
        """
        self.assertEqual(math.pi, sl.PI)
        self.assertEqual(0.3, sl.abs(-0.3))
        self.assertEqual(math.acos(0.2), sl.acos(0.2))
        self.assertEqual(math.asin(0.2), sl.asin(0.2))
        self.assertEqual(math.atan(0.2), sl.atan(0.2))
        self.assertEqual(math.atan2(0.2, 0.5), sl.atan(0.2, 0.5))
        self.assertEqual(2, sl.ceil(1.3))
        self.assertEqual(0.3, sl.clamp(0.3, 0.0, 1.0))
        self.assertEqual(0.0, sl.clamp(-0.1, 0.0, 1.0))
        self.assertEqual(1.0, sl.clamp(1.5, 0.0, 1.0))
        self.assertEqual(math.cos(0.2), sl.cos(0.2))
        self.assertEqual(math.exp(0.2), sl.exp(0.2))
        self.assertEqual(math.degrees(0.3), sl.degrees(0.3))
        self.assertEqual(1.0, sl.floor(1.8))
        self.assertEqual(1.0 / math.sqrt(5), sl.inversesqrt(5))
        self.assertEqual(math.log(8), sl.log(8))
        self.assertEqual(math.log(8, 2), sl.log(8, 2))
        self.assertEqual(5, sl.max(1, 5, 3))
        self.assertEqual(1, sl.min(1, 5, 3))
        self.assertEqual(0.5, sl.mix(0.0, 1.0, 0.5))
        self.assertEqual(0.5, sl.mod(2.5, 1))
        self.assertEqual(16, sl.pow(4, 2))
        self.assertEqual(math.radians(45), sl.radians(45))
        self.assertEqual(2.0, sl.round(2.4))
        self.assertEqual(-1, sl.sign(-18))
        self.assertEqual(1, sl.sign(18))
        self.assertEqual(0, sl.sign(0))
        self.assertEqual(math.sin(0.2), sl.sin(0.2))
        self.assertEqual(0.5, sl.smoothstep(0.0, 1.0, 0.5))
        self.assertEqual(0.5, sl.spline(0.5, [0.0, 0.0, 1.0, 1.0]))
        self.assertEqual(4, sl.sqrt(16))
        self.assertEqual(0, sl.step(1.0, 0.5))
        self.assertEqual(1, sl.step(1.0, 1.5))
        self.assertEqual(math.tan(0.2), sl.tan(0.2))

        # For now, just make sure the functions can be called
        sl.color_cellnoise(0.3, 0.2)
        sl.color_noise(0.1, 0.3)
        sl.color_pnoise(0.1, 0.3, 2, 2)
        sl.color_random()
        sl.float_cellnoise(0.3, 0.2)
        sl.float_noise(0.1, 0.3)
        sl.float_pnoise(0.1, 0.3, 2, 2)
        sl.float_random()
        sl.point_cellnoise(0.3, 0.2)
        sl.point_noise(0.1, 0.3)
        sl.point_pnoise(0.1, 0.3, 2, 2)
        sl.point_random()
        sl.vector_cellnoise(0.3, 0.2)
        sl.vector_noise(0.1, 0.3)
        sl.vector_pnoise(0.1, 0.3, 2, 2)
Esempio n. 6
0
 def testMath(self):
     """Test the math functions.
     """
     self.assertEqual(math.pi, sl.PI)
     self.assertEqual(0.3, sl.abs(-0.3))
     self.assertEqual(math.acos(0.2), sl.acos(0.2))
     self.assertEqual(math.asin(0.2), sl.asin(0.2))
     self.assertEqual(math.atan(0.2), sl.atan(0.2))
     self.assertEqual(math.atan2(0.2, 0.5), sl.atan(0.2, 0.5))
     self.assertEqual(2, sl.ceil(1.3))
     self.assertEqual(0.3, sl.clamp(0.3, 0.0, 1.0))
     self.assertEqual(0.0, sl.clamp(-0.1, 0.0, 1.0))
     self.assertEqual(1.0, sl.clamp(1.5, 0.0, 1.0))
     self.assertEqual(math.cos(0.2), sl.cos(0.2))
     self.assertEqual(math.exp(0.2), sl.exp(0.2))
     self.assertEqual(math.degrees(0.3), sl.degrees(0.3))
     self.assertEqual(1.0, sl.floor(1.8))
     self.assertEqual(1.0/math.sqrt(5), sl.inversesqrt(5))
     self.assertEqual(math.log(8), sl.log(8))
     self.assertEqual(math.log(8, 2), sl.log(8, 2))
     self.assertEqual(5, sl.max(1, 5, 3))
     self.assertEqual(1, sl.min(1, 5, 3))
     self.assertEqual(0.5, sl.mix(0.0, 1.0, 0.5))
     self.assertEqual(0.5, sl.mod(2.5, 1))
     self.assertEqual(16, sl.pow(4, 2))
     self.assertEqual(math.radians(45), sl.radians(45))
     self.assertEqual(2.0, sl.round(2.4))
     self.assertEqual(-1, sl.sign(-18))
     self.assertEqual(1, sl.sign(18))
     self.assertEqual(0, sl.sign(0))
     self.assertEqual(math.sin(0.2), sl.sin(0.2))
     self.assertEqual(0.5, sl.smoothstep(0.0, 1.0, 0.5))
     self.assertEqual(0.5, sl.spline(0.5, [0.0, 0.0, 1.0, 1.0]))
     self.assertEqual(4, sl.sqrt(16))
     self.assertEqual(0, sl.step(1.0, 0.5))
     self.assertEqual(1, sl.step(1.0, 1.5))
     self.assertEqual(math.tan(0.2), sl.tan(0.2))
     
     # For now, just make sure the functions can be called
     sl.color_cellnoise(0.3,0.2)
     sl.color_noise(0.1,0.3)
     sl.color_pnoise(0.1,0.3, 2, 2)
     sl.color_random()
     sl.float_cellnoise(0.3,0.2)
     sl.float_noise(0.1,0.3)
     sl.float_pnoise(0.1,0.3, 2, 2)
     sl.float_random()
     sl.point_cellnoise(0.3,0.2)
     sl.point_noise(0.1,0.3)
     sl.point_pnoise(0.1,0.3, 2, 2)
     sl.point_random()
     sl.vector_cellnoise(0.3,0.2)
     sl.vector_noise(0.1,0.3)
     sl.vector_pnoise(0.1,0.3, 2, 2)
Esempio n. 7
0
    def testEuler(self):
        """Test the fromEuler*() and toEuler*() methods.

        The result from an fromEuler*() method is compared to an equivalent
        matrix that is composed by 3 individual rotations.
        """

        angles = [{"X":radians(20), "Y":radians(30), "Z":radians(40)},
                  {"X":radians(0), "Y":radians(0), "Z":radians(0)},
                  {"X":radians(350), "Y":radians(0), "Z":radians(0)},
                  {"X":radians(0), "Y":radians(350), "Z":radians(0)},
                  {"X":radians(0), "Y":radians(0), "Z":radians(350)},]
        axis = {"X":vec3(1,0,0), "Y":vec3(0,1,0), "Z":vec3(0,0,1)}

        for order in ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"]:
            for angle in angles:
                R1 = mat3.rotation(angle[order[0]], axis[order[0]])
                R2 = mat3.rotation(angle[order[1]], axis[order[1]])
                R3 = mat3.rotation(angle[order[2]], axis[order[2]])
                # Each rotation is about the *global* axis, so these rotations
                # have to be applied just in the opposite order than mentioned
                # in the fromEuler*() method name.
                C = R1*R2*R3
                ns = {"mat3":mat3, "angle":angle}
                exec ('E = mat3.fromEuler%s(angle["X"], angle["Y"], angle["Z"])'%order, ns)
                E = ns["E"]
                self.assertEqual(E, C)

                exec ('x,y,z = E.toEuler%s()'%order, ns)
                exec ('E2 = mat3.fromEuler%s(x, y, z)'%order, ns)
                E2 = ns["E2"]
                if E2!=E:
#                    print E
#                    print E2
                    msg = "The matrix E2 generated from the toEuler() angles doesn't match the original matrix E.\n"
                    msg += "Original angles: (%s, %s, %s), toEuler angles: (%s, %s, %s)"%(degrees(angle["X"]),degrees(angle["Y"]),degrees(angle["Z"]),degrees(x),degrees(y),degrees(z))
                    self.fail(msg)
Esempio n. 8
0
    def testEuler(self):
        """Test the fromEuler*() and toEuler*() methods.

        The result from an fromEuler*() method is compared to an equivalent
        matrix that is composed by 3 individual rotations.
        """

        angles = [{"X":radians(20), "Y":radians(30), "Z":radians(40)},
                  {"X":radians(0), "Y":radians(0), "Z":radians(0)},
                  {"X":radians(350), "Y":radians(0), "Z":radians(0)},
                  {"X":radians(0), "Y":radians(350), "Z":radians(0)},
                  {"X":radians(0), "Y":radians(0), "Z":radians(350)},]
        axis = {"X":vec3(1,0,0), "Y":vec3(0,1,0), "Z":vec3(0,0,1)}

        for order in ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"]:
            for angle in angles:
                R1 = mat3.rotation(angle[order[0]], axis[order[0]])
                R2 = mat3.rotation(angle[order[1]], axis[order[1]])
                R3 = mat3.rotation(angle[order[2]], axis[order[2]])
                # Each rotation is about the *global* axis, so these rotations
                # have to be applied just in the opposite order than mentioned
                # in the fromEuler*() method name.
                C = R1*R2*R3
                exec ('E = mat3.fromEuler%s(angle["X"], angle["Y"], angle["Z"])'%order)
                self.assertEqual(E, C)
    
                exec ('x,y,z = E.toEuler%s()'%order)
                exec ('E2 = mat3.fromEuler%s(x, y, z)'%order)
                if E2!=E:
#                    print E
#                    print E2
                    msg = "The matrix E2 generated from the toEuler() angles doesn't match the original matrix E.\n"
                    msg += "Original angles: (%s, %s, %s), toEuler angles: (%s, %s, %s)"%(degrees(angle["X"]),degrees(angle["Y"]),degrees(angle["Z"]),degrees(x),degrees(y),degrees(z))
                    self.fail(msg)