Ejemplo n.º 1
0
 def testInverse(self) :
   # test verified with matlab
   # 1,0,0,0,0,0.4, -0.4, 0 ,0 , 0.1 , 0.4 0 ,0,0,0,1
   test=pyngl.Mat4(1,0,0,0,0,2,2,0,0,-0.5,2,0,0,0,0,1)
   test=test.inverse()
   result=pyngl.Mat4(1,0,0,0,0,0.4,-0.4,0,0,0.1,0.4,0,0,0,0,1)
   self.assertTrue(test==result)
Ejemplo n.º 2
0
 def testPlus(self) :
   t1=pyngl.Mat4()
   t2=pyngl.Mat4()
   t1.rotateX(45.0)
   t2.rotateY(35.0)
   res=t1+t2
   result=pyngl.Mat4(1.81915,0,-0.573577,0,0,1.70711,0.707107,0,0.573577,-0.707107,1.52626,0,0,0,0,2)
   self.assertTrue(res == result) 
Ejemplo n.º 3
0
 def testMat4xEquals(self) :
   test=pyngl.Mat4()
   t2=pyngl.Mat4()
   test.rotateX(45.0)
   t2.rotateY(35.0)
   test*=t2
   result=pyngl.Mat4(0.819152,0.40558,-0.40558,0,0,0.707107,0.707107,0,0.573577,-0.579228,0.579228,0,0,0,0,1)
   self.assertTrue(test == result) 
Ejemplo n.º 4
0
 def testAdjacentWithMat4(self) :
   t1=pyngl.Mat4()
   t2=pyngl.Mat4()
   t1.rotateX(45.0)
   t2.rotateY(35.0)
   test=t1.adjacent(t2)
   result=pyngl.Mat4(0.819152,0,-0.573577,0,0,1,0,0,0.573577,0,0.819152,0,0,0,0,1)
   self.assertTrue(test==result)
Ejemplo n.º 5
0
 def testMat4xMat4(self) :
   t1=pyngl.Mat4()
   t2=pyngl.Mat4()
   t1.rotateX(45.0)
   t2.rotateY(35.0)
   test=t2*t1
   result=pyngl.Mat4(0.819152,0,-0.573577,0,0.40558,0.707107,0.579228,0,0.40558,-0.707107,0.579228,0,0,0,0,1)
   self.assertTrue(test == result) 
Ejemplo n.º 6
0
 def testSetAt(self) :
   test=pyngl.Mat4()
   value=0.0
   for y in range(0,4) :
     for x in range(0,4) :
       test.setAtXY(x,y,value)
       value+=1.0
   result=pyngl.Mat4(0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15)
   self.assertTrue(test==result)
Ejemplo n.º 7
0
 def testMat4xEquals2(self) :
   test=pyngl.Mat4()
   t2=pyngl.Mat4()
   test.rotateX(45.0)
   t2.rotateY(35.0)
   test*=t2
   r=pyngl.Mat4()
   r.rotateX(45.0)
   self.assertTrue(test == (r*t2)) 
Ejemplo n.º 8
0
 def testMat4xReal(self) :
   test=pyngl.Mat4()
   value=0.0
   for y in range(0,4) :
     for x in range(0,4) :
       test.setAtXY(x,y,value)
       value+=1.0
   test*=4.2
   result=pyngl.Mat4(0,16.8,33.6,50.4,4.2,21,37.8,54.6,8.4,25.2,42,58.8,12.6,29.4,46.2,63)
   self.assertTrue(test==result)
Ejemplo n.º 9
0
  def testSetUniform(self) :
    # note how the API changes here to be more pythonic as 
    # we have no pass by reference here
    shader=pyngl.ShaderLib.instance()
    shaderName='TestUniform'
    self.assertTrue(shader.loadShader(shaderName,sourcedir+'testUniformVertex.glsl',sourcedir+'testUniformFragment.glsl',pyngl.ErrorExit.OFF))
    shader.use(shaderName);
    shader.setUniform('testFloat',2.25)
    result=shader.getUniform1f('testFloat')
    
    self.assertAlmostEqual(result,2.25,delta=3)

    shader.setUniform("testVec2",0.5,2.0)
    resultVec2=shader.getUniformVec2("testVec2")
    self.assertAlmostEqual(resultVec2.m_x,0.5,delta=3)
    self.assertAlmostEqual(resultVec2.m_y,2.0,delta=3)

    x,y=shader.getUniform2f("testVec2")
    self.assertAlmostEqual(resultVec2.m_x,0.5,delta=3)
    self.assertAlmostEqual(resultVec2.m_y,2.0,delta=3)

    shader.setUniform('testVec3',0.5,2.0,-22.2)
    resultF1,resultF2,resultF3=shader.getUniform3f('testVec3')
    self.assertAlmostEqual(resultF1,0.5,delta=3)
    self.assertAlmostEqual(resultF2,2.0,delta=3)
    self.assertAlmostEqual(resultF3,-22.2,delta=3)
    resultVec3=shader.getUniformVec3('testVec3');
    self.assertAlmostEqual(resultVec3.m_x,0.5,delta=3)
    self.assertAlmostEqual(resultVec3.m_y,2.0,delta=3)
    self.assertAlmostEqual(resultVec3.m_z,-22.2,delta=3)

    shader.setUniform('testVec4',0.5,2.0,-22.2,1230.4)
    resultF1,resultF2,resultF3,resultF4=shader.getUniform4f('testVec4')
    self.assertAlmostEqual(resultF1,0.5,delta=3)
    self.assertAlmostEqual(resultF2,2.0,delta=3)
    self.assertAlmostEqual(resultF3,-22.2,delta=3)
    self.assertAlmostEqual(resultF4,1230.4,delta=3)

    resultVec4=shader.getUniformVec4('testVec4');
    self.assertAlmostEqual(resultVec4.m_x,0.5,delta=3)
    self.assertAlmostEqual(resultVec4.m_y,2.0,delta=3)
    self.assertAlmostEqual(resultVec4.m_z,-22.2,delta=3)
    self.assertAlmostEqual(resultVec4.m_w,1230.4,delta=3)
    shader.setUniform('testMat2',pyngl.Mat2())    
    result=shader.getUniformMat2('testMat2')
    self.assertTrue(result==pyngl.Mat2())

    shader.setUniform('testMat3',pyngl.Mat3())    
    result=shader.getUniformMat3('testMat3')
    self.assertTrue(result==pyngl.Mat3())

    shader.setUniform('testMat4',pyngl.Mat4())    
    result=shader.getUniformMat4('testMat4')
    self.assertTrue(result==pyngl.Mat4())
Ejemplo n.º 10
0
 def testOuter(self):
     a = pyngl.Vec4(1.0, 2.0, 3.0, 4.0)
     b = pyngl.Vec4(5.0, 6.0, 7.0, 8.0)
     outer = a.outer(b)
     result = pyngl.Mat4(5, 6, 7, 8, 10, 12, 14, 16, 15, 18, 21, 24, 20, 24,
                         28, 32)
     self.assertTrue(outer == result)
Ejemplo n.º 11
0
 def Vec4xMat4(self) :
   t1=pyngl.Mat4()
   test=pyngl.Vec4(2,1,2,1)
   t1.rotateX(45.0)
   test=test*t1
   result=pyngl.Vec4(2,2.12132,0.707107,1)
   self.assertTrue(test==result)
Ejemplo n.º 12
0
 def Mat4xVec4(self) :
   t1=pyngl.Mat4()
   test=pyngl.Vec4(2,1,2,1)
   t1.rotateX(45.0)
   test=t1*test
   result=pyngl.Vec4(2,-0.707107,2.12132,1)
   self.assertTrue(test==result)
Ejemplo n.º 13
0
 def glmToNGL(self, m):
     return pyngl.Mat4(m[0][0], m[0][1], m[0][2], m[0][3], m[1][0], m[1][1],
                       m[1][2], m[1][3], m[2][0], m[2][1], m[2][2], m[2][3],
                       m[3][0], m[3][1], m[3][2], m[3][3])
Ejemplo n.º 14
0
 def testrotateZ(self) :
   test=pyngl.Mat4() 
   test.rotateZ(-36.0)
   result=pyngl.Mat4(0.809017,-0.587785,0,0,0.587785,0.809017,0,0,0,0,1,0,0,0,0,1)
   self.assertTrue(test == result)
Ejemplo n.º 15
0
 def testdefaultCtor(self):
   test=pyngl.Mat4()
   result=pyngl.Mat4(1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0)         
   self.assertTrue( test==result)
Ejemplo n.º 16
0
 def testrotateY(self) :
   test=pyngl.Mat4() 
   test.rotateY(25.0)
   result=pyngl.Mat4(0.906308,0,-0.422618,0,0,1,0,0,0.422618,0,0.906308,0,0,0,0,1)
   self.assertTrue(test == result)
Ejemplo n.º 17
0
 def testrotateX(self) :
   test=pyngl.Mat4()
   test.rotateX(45.0)
   result=pyngl.Mat4(1,0,0,0,0,0.707107,0.707107,0,0,-0.707107,0.707107,0,0,0,0,1)
   self.assertTrue(test == result)
Ejemplo n.º 18
0
 def testScale(self) :
   test=pyngl.Mat4()
   test.scale(1.0,2.0,3.0)
   result=pyngl.Mat4(1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,1)
   self.assertTrue(test == result)
Ejemplo n.º 19
0
 def testTranspose(self) :
   test=pyngl.Mat4()
   test.translate(1,2,3)
   test.transpose()
   result=pyngl.Mat4(1,0,0,1,0,1,0,2,0,0,1,3,0,0,0,1)
   self.assertTrue(test == result)
Ejemplo n.º 20
0
 def testNull(self) :
   test=pyngl.Mat4()
   test.null()
   result=pyngl.Mat4(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)         
   self.assertTrue( test==result)
Ejemplo n.º 21
0
 def testCopyCtor(self) :
   test=pyngl.Mat4(2.0) 
   copy=pyngl.Mat4(test)
   result=pyngl.Mat4(2,0,0,0,0,2,0,0,0,0,2,0,0,0,0,1)         
   self.assertTrue( copy==result)
Ejemplo n.º 22
0
 def testAssignOperator(self) :
   test=pyngl.Mat4(2.0) 
   copy=test
   result=pyngl.Mat4(2,0,0,0,0,2,0,0,0,0,2,0,0,0,0,1)         
   self.assertTrue( copy==result)
Ejemplo n.º 23
0
 def testFloatCtor(self) :
   test=pyngl.Mat4(2.0) 
   result=pyngl.Mat4(2,0,0,0,0,2,0,0,0,0,2,0,0,0,0,1)         
   self.assertTrue( test==result)
Ejemplo n.º 24
0
 def testDeterminant(self) :
   test=pyngl.Mat4(1,0,0,0,0,2,2,0,0,-0.5,2,0,0,0,0,1)
   det=test.determinant()
   self.assertEqual(det,5.0)
Ejemplo n.º 25
0
 def testIdentity(self) :
   test=pyngl.Mat4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
   test.identity()
   result=pyngl.Mat4(1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0)         
   self.assertTrue( test==result)
Ejemplo n.º 26
0
 def testAdjacent(self) :
   test=pyngl.Mat4(1,0,0,0,0,2,2,0,0,-0.5,2,0,0,0,0,1)
   test=test.adjacent()
   result=pyngl.Mat4(5,0,0,0,0,2,0.5,0,0,-2,2,0,0,0,0,5)
   self.assertTrue(test==result)