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')
def testAddUV2(self): a = pyngl.Obj() v = 0.0 for i in range(0, 20): a.addUV(pyngl.Vec2(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, 0)) v += 1.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))
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
def testMinusEqual(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(2.0, 3.0) a -= b self.assertAlmostEquals(a.m_x, -1.0, delta=0.001) self.assertAlmostEquals(a.m_y, -1.0, delta=0.001)
def testMultiplyFloat(self): a = pyngl.Vec2(1.0, 2.0) b = a * 2.0 self.assertAlmostEquals(b.m_x, 2.0, delta=0.001) self.assertAlmostEquals(b.m_y, 4.0, delta=0.001)
def testAddEqual(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(2.0, 3.0) a += b self.assertAlmostEquals(a.m_x, 3.0, delta=0.001) self.assertAlmostEquals(a.m_y, 5.0, delta=0.001)
def testMinus(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(2.0, 3.0) c = a - b self.assertAlmostEquals(c.m_x, -1.0, delta=0.001) self.assertAlmostEquals(c.m_y, -1.0, delta=0.001)
def testdefaultCtor(self): test = pyngl.Vec2() result = pyngl.Vec2(0.0, 0.0) self.assertEqual(test, result)
def testAdd(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(2.0, 3.0) c = a + b self.assertAlmostEquals(c.m_x, 3.0, delta=0.001) self.assertAlmostEquals(c.m_y, 5.0, delta=0.001)
def testDivideEqualVec(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(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)
def testDivideVec(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(2.0, 2.0) c = a / b self.assertAlmostEquals(c.m_x, 0.5, delta=0.001) self.assertAlmostEquals(c.m_y, 1.0, delta=0.001)
def testLength(self): a = pyngl.Vec2(22.0, 1.0) self.assertAlmostEqual(a.length(), 22.022, delta=0.001)
def testLengthSquared(self): a = pyngl.Vec2(22.0, 1.0) self.assertAlmostEqual(a.lengthSquared(), 485.0, delta=0.001)
def testNormalize(self): test = pyngl.Vec2(22.3, 0.5) test.normalize() result = pyngl.Vec2(0.9997, 0.0224) self.assertTrue(test == result) self.assertEqual(test, result)
def testNull(self): test = pyngl.Vec2(1, 2) test.null() self.assertTrue(test == pyngl.Vec2.zero())
def testDotProduct(self): a = pyngl.Vec2(1.0, 2.0) b = pyngl.Vec2(4.0, 5.0) self.assertEqual(a.dot(b), 14.0)
def testMultiplyEqualFloat(self): a = pyngl.Vec2(1.0, 2.0) a *= 2.0 self.assertAlmostEquals(a.m_x, 2.0, delta=0.001) self.assertAlmostEquals(a.m_y, 4.0, delta=0.001)
def testDivideEqualFloat(self): a = pyngl.Vec2(1.0, 2.0) a /= 2.0 self.assertAlmostEquals(a.m_x, 0.5, delta=0.001) self.assertAlmostEquals(a.m_y, 1.0, delta=0.001)
def testVec2xMat2(self) : t1=pyngl.Mat2() test=pyngl.Vec2(2,1) test=test*t1; result=pyngl.Vec2(2,1) self.assertTrue(test==result)
def testAssignOperator(self): test = pyngl.Vec2(1.0, 2.0) copy = test result = pyngl.Vec2(1.0, 2.0) self.assertEqual(test, result)
def testSubscipt(self): test = pyngl.Vec2(1, 2) self.assertAlmostEqual(test[0], 1.0) self.assertAlmostEqual(test[1], 2.0)
def testSizeof(self): test = pyngl.Vec2() self.assertTrue(test.sizeof() == 2 * ctypes.sizeof(ctypes.c_float))
def testFloatCtor(self): test = pyngl.Vec2(1.0, 2.0) result = pyngl.Vec2(1.0, 2.0) self.assertEqual(test, result)
def testDivideFloat(self): a = pyngl.Vec2(1.0, 2.0) b = a / 2.0 self.assertAlmostEquals(b.m_x, 0.5, delta=0.001) self.assertAlmostEquals(b.m_y, 1.0, delta=0.001)