Exemplo n.º 1
0
 def test_extract_transform_id(self):
     m = TransformMatrix()
     tr = m.extract_transform()
     self.assert_nvector_equal(tr["translation"], NVector(0, 0))
     self.assert_nvector_equal(tr["scale"], NVector(1, 1))
     self.assertAlmostEqual(tr["angle"], 0)
     self.assertAlmostEqual(tr["skew_axis"], 0)
     self.assertAlmostEqual(tr["skew_angle"], 0)
Exemplo n.º 2
0
 def test_apply(self):
     m = TransformMatrix()
     v = NVector(1, 2)
     self.assertEqual(m.apply(v), v)
     m.scale(2, 4)
     self.assertEqual(m.apply(v), NVector(2, 8))
     m.translate(-1, -3)
     self.assertEqual(m.apply(v), NVector(1, 5))
     m.rotate(-math.pi / 2)
     self.assert_nvector_equal(m.apply(v), NVector(-5, 1))
Exemplo n.º 3
0
 def test_extract_transform_complex(self):
     m = TransformMatrix()
     m.scale(2, 3)
     #m.skew(math.pi/3, 0)
     m.rotate(math.pi / 6)
     m.translate(10, 23)
     self.asssert_matrix_almost_equal(
         m,
         (
             TransformMatrix().scale(2, 3) *
             #TransformMatrix().skew(math.pi/3, 0) *
             TransformMatrix.rotation(math.pi / 6) *
             TransformMatrix().translate(10, 23))._mat)
     tr = m.extract_transform()
     self.assert_nvector_equal(tr["translation"], NVector(10, 23))
     self.assert_nvector_equal(tr["scale"], NVector(2, 3))
     self.assertAlmostEqual(tr["angle"], math.pi / 6)
Exemplo n.º 4
0
    def test_row_col(self):
        m = TransformMatrix()
        m._mat = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
        self.assertEqual(m.row(0), NVector(0, 1, 2, 3))
        self.assertEqual(m.row(1), NVector(4, 5, 6, 7))
        self.assertEqual(m.row(2), NVector(8, 9, 10, 11))
        self.assertEqual(m.row(3), NVector(12, 13, 14, 15))

        self.assertEqual(m.column(0), NVector(0, 4, 8, 12))
        self.assertEqual(m.column(1), NVector(1, 5, 9, 13))
        self.assertEqual(m.column(2), NVector(2, 6, 10, 14))
        self.assertEqual(m.column(3), NVector(3, 7, 11, 15))