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)
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))
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)
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))