示例#1
0
 def testDivideEqualVec(self):
     a = pyngl.Vec3(1.0, 2.0, 3.0)
     b = pyngl.Vec3(2.0, 2.0, 2.0)
     a /= b
     self.assertAlmostEquals(a.m_x, 0.5, delta=0.001)
     self.assertAlmostEquals(a.m_y, 1.0, delta=0.001)
     self.assertAlmostEquals(a.m_z, 1.5, delta=0.001)
示例#2
0
 def testAddEqual(self):
     a = pyngl.Vec3(1.0, 2.0, 3.0)
     b = pyngl.Vec3(4.0, 5.0, 6.0)
     a += b
     self.assertAlmostEquals(a.m_x, 5.0, delta=0.001)
     self.assertAlmostEquals(a.m_y, 7.0, delta=0.001)
     self.assertAlmostEquals(a.m_z, 9.0, delta=0.001)
示例#3
0
 def testVec3xMat3(self):
     t1 = pyngl.Mat3()
     t1.rotateX(45.0)
     test = pyngl.Vec3(2, 1, 2)
     test = test * t1
     result = pyngl.Vec3(2, -0.707107, 2.12132)
     self.assertTrue(test == result)
示例#4
0
 def testMinusEqual(self):
     a = pyngl.Vec3(1.0, 2.0, 3.0)
     b = pyngl.Vec3(4.0, 5.0, 6.0)
     a -= b
     self.assertAlmostEquals(a.m_x, -3.0, delta=0.001)
     self.assertAlmostEquals(a.m_y, -3.0, delta=0.001)
     self.assertAlmostEquals(a.m_z, -3.0, delta=0.001)
示例#5
0
 def testCheckUV(self):
     a = pyngl.Obj()
     self.assertTrue(a.load(sourcedir + 'Triangle1.obj'))
     uv = a.getUVList()
     self.assertTrue(uv[0] == pyngl.Vec3(1.00000, 0.00000, 0.000000))
     self.assertTrue(uv[1] == pyngl.Vec3(0.5000, 1.0000, 0.000000))
     self.assertTrue(uv[2] == pyngl.Vec3(0.004399, 0.008916, 0.00000))
示例#6
0
 def testLookAt(self):
     lookNGL = pyngl.lookAt(pyngl.Vec3(2.0, 2.0, 2.0),
                            pyngl.Vec3(0, 0, 0), pyngl.Vec3(0, 1.0, 0))
     lookGLM = glm.lookAt(glm.vec3(2.0, 2.0, 2.0),
                          glm.vec3(0.0, 0.0, 0.0),
                          glm.vec3(0.0, 1.0, 0.0))
     self.assertTrue(self.glmToNGL(lookGLM) == lookNGL)
示例#7
0
 def testCheckVerts(self):
     a = pyngl.Obj()
     self.assertTrue(a.load(sourcedir + 'Triangle1.obj'))
     verts = a.getVertexList()
     self.assertTrue(verts[0] == pyngl.Vec3(2.0, 0.0, 0.0))
     self.assertTrue(verts[1] == pyngl.Vec3(0.0, 4.0, 0.0))
     self.assertTrue(verts[2] == pyngl.Vec3(-2.0, 0.0, 0.0))
示例#8
0
 def testCheckNormals(self):
     a = pyngl.Obj()
     self.assertTrue(a.load(sourcedir + 'Triangle1.obj'))
     normal = a.getNormalList()
     self.assertTrue(normal[0] == pyngl.Vec3(0.0, 0.0, 1.0))
     self.assertTrue(normal[1] == pyngl.Vec3(0.0, 0.0, 1.0))
     self.assertTrue(normal[2] == pyngl.Vec3(0.0, 0.0, 1.0))
示例#9
0
    def testSaveVertsUV(self):
        a = pyngl.Obj()
        a.addVertex(pyngl.Vec3(2.00000, 0.00000, 0.000000))
        a.addVertex(pyngl.Vec3(0.0000, 4.0000, 0.000000))
        a.addVertex(pyngl.Vec3(-2.00000, 0.000000, 0.00000))
        a.addUV(pyngl.Vec2(1.0, 0.0))
        a.addUV(pyngl.Vec2(0.5, 1.0))
        a.addUV(pyngl.Vec2(0.004399, 0.008916))
        f = pyngl.Face()
        f.m_vert.append(0)
        f.m_vert.append(1)
        f.m_vert.append(2)
        f.m_uv.append(0)
        f.m_uv.append(1)
        f.m_uv.append(2)
        a.addFace(f)
        a.save('faceUV.obj')

        b = pyngl.Obj('faceUV.obj')
        face = b.getFaceList()
        self.assertEqual(face[0].m_vert[0], 0)
        self.assertEqual(face[0].m_vert[1], 1)
        self.assertEqual(face[0].m_vert[2], 2)
        verts = b.getVertexList()
        self.assertTrue(verts[0] == pyngl.Vec3(2.0, 0.0, 0.0))
        self.assertTrue(verts[1] == pyngl.Vec3(0.0, 4.0, 0.0))
        self.assertTrue(verts[2] == pyngl.Vec3(-2.0, 0.0, 0.0))
        uv = b.getUVList()
        self.assertTrue(uv[0] == pyngl.Vec3(1.0, 0.0, 0.0))
        self.assertTrue(uv[1] == pyngl.Vec3(0.5, 1.0, 0.0))
        self.assertTrue(uv[2] == pyngl.Vec3(0.004399, 0.008916, 0.0))
        os.remove('faceUV.obj')
示例#10
0
 def testAddVertex(self):
     a = pyngl.Obj()
     v = 0.0
     for i in range(0, 20):
         a.addVertex(pyngl.Vec3(v, v, v))
         v = v + 1.0
     verts = a.getVertexList()
     v = 0.0
     for i in range(0, 20):
         self.assertTrue(verts[i] == pyngl.Vec3(v, v, v))
         v += 1.0
示例#11
0
 def testAddNormal(self):
     a = pyngl.Obj()
     v = 0.0
     for i in range(0, 20):
         a.addNormal(pyngl.Vec3(v, v, v))
         v = v + 1.0
     norm = a.getNormalList()
     v = 0.0
     for i in range(0, 20):
         self.assertTrue(norm[i] == pyngl.Vec3(v, v, v))
         v += 1.0
示例#12
0
 def testAddUV3(self):
     a = pyngl.Obj()
     v = 0.0
     for i in range(0, 20):
         a.addUV(pyngl.Vec3(v, v, v))
         v = v + 1.0
     uv = a.getUVList()
     v = 0.0
     for i in range(0, 20):
         self.assertTrue(uv[i] == pyngl.Vec3(v, v, v))
         v += 1.0
示例#13
0
 def testCross2(self):
     a = pyngl.Vec3.up()
     b = pyngl.Vec3.left()
     c = pyngl.Vec3()
     c.cross(a, b)
     # alas in is a reserved work in python so we use inV
     self.assertTrue(c == pyngl.Vec3.inV())
示例#14
0
 def testBuildObj(self):
     a = self.buildObj()
     face = a.getFaceList()
     self.assertEqual(face[0].m_vert[0], 0)
     self.assertEqual(face[0].m_vert[1], 1)
     self.assertEqual(face[0].m_vert[2], 2)
     self.assertEqual(face[0].m_norm[0], 0)
     self.assertEqual(face[0].m_norm[1], 1)
     self.assertEqual(face[0].m_norm[2], 2)
     self.assertEqual(face[0].m_uv[0], 0)
     self.assertEqual(face[0].m_uv[1], 1)
     self.assertEqual(face[0].m_uv[2], 2)
     verts = a.getVertexList()
     self.assertTrue(verts[0] == pyngl.Vec3(2.00000, 0.00000, 0.000000))
     self.assertTrue(verts[1] == pyngl.Vec3(0.0000, 4.0000, 0.000000))
     self.assertTrue(verts[2] == pyngl.Vec3(-2.00000, 0.000000, 0.000000))
     norm = a.getNormalList()
     self.assertTrue(norm[0] == pyngl.Vec3(0.0, 0.0, 1.0))
     self.assertTrue(norm[1] == pyngl.Vec3(0.0, 0.0, 1.0))
     self.assertTrue(norm[2] == pyngl.Vec3(0.0, 0.0, 1.0))
     uv = a.getUVList()
     self.assertTrue(uv[0] == pyngl.Vec3(1.0, 0.0, 0.0))
     self.assertTrue(uv[1] == pyngl.Vec3(0.5, 1.0, 0.0))
     self.assertTrue(uv[2] == pyngl.Vec3(0.004399, 0.008916, 0.0))
示例#15
0
 def testSaveVertsOnly(self):
     a = pyngl.Obj()
     a.addVertex(pyngl.Vec3(2.00000, 0.00000, 0.000000))
     a.addVertex(pyngl.Vec3(0.0000, 4.0000, 0.000000))
     a.addVertex(pyngl.Vec3(-2.00000, 0.000000, 0.00000))
     f = pyngl.Face()
     f.m_vert.append(0)
     f.m_vert.append(1)
     f.m_vert.append(2)
     a.addFace(f)
     a.save('faceOnly.obj')
     b = pyngl.Obj('faceOnly.obj')
     face = b.getFaceList()
     self.assertEqual(face[0].m_vert[0], 0)
     self.assertEqual(face[0].m_vert[1], 1)
     self.assertEqual(face[0].m_vert[2], 2)
     verts = b.getVertexList()
     self.assertTrue(verts[0] == pyngl.Vec3(2.0, 0.0, 0.0))
     self.assertTrue(verts[1] == pyngl.Vec3(0.0, 4.0, 0.0))
     self.assertTrue(verts[2] == pyngl.Vec3(-2.0, 0.0, 0.0))
     os.remove('faceOnly.obj')
示例#16
0
 def buildObj(self):
     a = pyngl.Obj()
     a.addVertex(pyngl.Vec3(2.00000, 0.00000, 0.000000))
     a.addVertex(pyngl.Vec3(0.0000, 4.0000, 0.000000))
     a.addVertex(pyngl.Vec3(-2.00000, 0.000000, 0.000000))
     a.addUV(pyngl.Vec2(1.000000, 0.000000))
     a.addUV(pyngl.Vec2(0.500000, 1.000000))
     a.addUV(pyngl.Vec2(0.004399, 0.008916))
     a.addNormal(pyngl.Vec3(0.000000, 0.000000, 1.000000))
     a.addNormal(pyngl.Vec3(0.000000, 0.000000, 1.000000))
     a.addNormal(pyngl.Vec3(0.000000, 0.000000, 1.000000))
     f = pyngl.Face()
     # f 1/1/1 2/2/2 3/3/3
     f.m_vert.append(0)
     f.m_vert.append(1)
     f.m_vert.append(2)
     f.m_uv.append(0)
     f.m_uv.append(1)
     f.m_uv.append(2)
     f.m_norm.append(0)
     f.m_norm.append(1)
     f.m_norm.append(2)
     a.addFace(f)
     return a
示例#17
0
    def saveVertsNormal(self):
        a = pyngl.Obj()
        a.addVertex(pyngl.Vec3(2.00000, 0.00000, 0.000000))
        a.addVertex(pyngl.Vec3(0.0000, 4.0000, 0.000000))
        a.addVertex(pyngl.Vec3(-2.00000, 0.000000, 0.00000))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        f = pyngl.Face()
        f.m_vert.append(0)
        f.m_vert.append(1)
        f.m_vert.append(2)
        f.m_norm.append(0)
        f.m_norm.append(1)
        f.m_norm.append(2)
        a.addFace(f)
        a.save('faceVertNormal.obj')

        b = pyngl.Obj('faceVertNormal.obj')
        face = b.getFaceList()
        self.assertEqual(face[0].m_vert[0], 0)
        self.assertEqual(face[0].m_vert[1], 1)
        self.assertEqual(face[0].m_vert[2], 2)
        verts = b.getVertexList()
        self.assertTrue(verts[0] == pyngl.Vec3(2.0, 0.0, 0.0))
        self.assertTrue(verts[1] == pyngl.Vec3(0.0, 4.0, 0.0))
        self.assertTrue(verts[2] == pyngl.Vec3(-2.0, 0.0, 0.0))
        norm = b.getUVList()
        self.assertTrue(norm[0] == pyngl.Vec3(0.0, 0.0, 1.0))
        self.assertTrue(norm[1] == pyngl.Vec3(0.0, 0.0, 1.0))
        self.assertTrue(norm[2] == pyngl.Vec3(0.0, 0.0, 1.0))
        os.remove('faceVertNormal.obj')
示例#18
0
 def testLength(self):
     a = pyngl.Vec3(22.0, 1.0, 32.0)
     self.assertAlmostEqual(a.length(), 38.845, delta=0.001)
示例#19
0
 def testOuter(self):
     a = pyngl.Vec3(1.0, 2.0, 3.0)
     b = pyngl.Vec3(3.0, 4.0, 5.0)
     outer = a.outer(b)
     result = pyngl.Mat3(3, 4, 5, 6, 8, 10, 9, 12, 15)
     self.assertTrue(outer == result)
示例#20
0
    def testCopyCtor(self):
        a = pyngl.Obj()
        a.addVertex(pyngl.Vec3(2.00000, 0.00000, 0.000000))
        a.addVertex(pyngl.Vec3(0.0000, 4.0000, 0.000000))
        a.addVertex(pyngl.Vec3(-2.00000, 0.000000, 0.00000))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        a.addNormal(pyngl.Vec3(0.0, 0.0, 1.0))
        a.addUV(pyngl.Vec2(1.0, 0.0))
        a.addUV(pyngl.Vec2(0.5, 1.0))
        a.addUV(pyngl.Vec2(0.004399, 0.008916))

        f = pyngl.Face()
        f.m_vert.append(0)
        f.m_vert.append(1)
        f.m_vert.append(2)
        f.m_norm.append(0)
        f.m_norm.append(1)
        f.m_norm.append(2)
        f.m_uv.append(0)
        f.m_uv.append(1)
        f.m_uv.append(2)
        a.addFace(f)
        b = a
        face = b.getFaceList()
        self.assertEqual(face[0].m_vert[0], 0)
        self.assertEqual(face[0].m_vert[1], 1)
        self.assertEqual(face[0].m_vert[2], 2)
        verts = b.getVertexList()
        self.assertTrue(verts[0] == pyngl.Vec3(2.0, 0.0, 0.0))
        self.assertTrue(verts[1] == pyngl.Vec3(0.0, 4.0, 0.0))
        self.assertTrue(verts[2] == pyngl.Vec3(-2.0, 0.0, 0.0))
        norm = b.getNormalList()
        self.assertTrue(norm[0] == pyngl.Vec3(0.0, 0.0, 1.0))
        self.assertTrue(norm[1] == pyngl.Vec3(0.0, 0.0, 1.0))
        self.assertTrue(norm[2] == pyngl.Vec3(0.0, 0.0, 1.0))
        uv = b.getUVList()
        self.assertTrue(uv[0] == pyngl.Vec3(1.0, 0.0, 0.0))
        self.assertTrue(uv[1] == pyngl.Vec3(0.5, 1.0, 0.0))
        self.assertTrue(uv[2] == pyngl.Vec3(0.004399, 0.008916, 0.0))
示例#21
0
 def testAssignOperator(self):
     test = pyngl.Vec3(1.0, 2.0, 3.0)
     copy = test
     result = pyngl.Vec3(1.0, 2.0, 3.0)
     self.assertEqual(test, result)
示例#22
0
 def testFloatCtor(self):
     test = pyngl.Vec3(1.0, 2.0, 3.0)
     result = pyngl.Vec3(1.0, 2.0, 3.0)
     self.assertEqual(test, result)
示例#23
0
 def testSubscipt(self):
     test = pyngl.Vec3(1, 2, 3)
     self.assertAlmostEqual(test[0], 1.0)
     self.assertAlmostEqual(test[1], 2.0)
     self.assertAlmostEqual(test[2], 3.0)
示例#24
0
 def testLengthSquared(self):
     a = pyngl.Vec3(22.0, 1.0, 32.0)
     self.assertAlmostEqual(a.lengthSquared(), 1509.0, delta=0.001)
示例#25
0
 def testNormalize(self):
     test = pyngl.Vec3(22.3, 0.5, 10.0)
     test.normalize()
     result = pyngl.Vec3(0.912266, 0.0204544, 0.409088)
     self.assertTrue(test == result)
     self.assertEqual(test, result)
示例#26
0
 def testInner(self):
     a = pyngl.Vec3(1, 2, 3)
     b = pyngl.Vec3(3, 4, 5)
     self.assertEqual(a.inner(b), 26.0)
示例#27
0
 def testDotProduct(self):
     a = pyngl.Vec3(1.0, 2.0, 3.0)
     b = pyngl.Vec3(4.0, 5.0, 6.0)
     self.assertEqual(a.dot(b), 32.0)
示例#28
0
 def testNull(self):
     test = pyngl.Vec3(1, 2, 4)
     test.null()
     self.assertTrue(test == pyngl.Vec3.zero())
示例#29
0
 def testCalcNormal2(self):
     result = pyngl.calcNormal(pyngl.Vec4(-1.0, -1.0, 0.0, 0.0),
                               pyngl.Vec4(0.0, 0.0, 0.0, 0.0),
                               pyngl.Vec4(1.0, -1.0, 0.0, 0.0))
     self.assertEqual(result, pyngl.Vec3(0.0, 0.0, 1.0))
示例#30
0
 def testSizeof(self):
     test = pyngl.Vec3()
     self.assertTrue(test.sizeof() == 3 * ctypes.sizeof(ctypes.c_float))