Esempio n. 1
0
    def test_translate(self):
        eq = self.almostEqual
        m = Transform().translate(2)
        eq((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]),
           (1., 0., 0., 2., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1.))

        m = Transform().translate(2, 3)
        eq((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]),
           (1., 0., 0., 2., 0., 1., 0., 3., 0., 0., 1., 0., 0., 0., 0., 1.))

        m = Transform().translate(2, 3, 4)
        eq((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]),
           (1., 0., 0., 2., 0., 1., 0., 3., 0., 0., 1., 4., 0., 0., 0., 1.))

        m = Transform().translate((2, 3, 4))
        eq((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]),
           (1., 0., 0., 2., 0., 1., 0., 3., 0., 0., 1., 4., 0., 0., 0., 1.))
Esempio n. 2
0
 def test_map(self):
     eq = self.almostEqual
     p = Point(1,2,3)
     m = Transform().translate((2,3,4))
     eq(m.map(p), (3,5,7))
     
     p = Point(1,2,3)
     m = Transform().scale((2,2,2))
     eq(m.map(p), (2,4,6))
     
     p = ((1,2,3), (3,2,1))
     m = Transform().scale((2,2,2))
     res = m.map(p)
     eq((res[0][0], res[0][1], res[0][2],
         res[1][0], res[1][1], res[1][2],),
         (2.0, 4.0, 6.0,
          6.0, 4.0, 2.0))
          
     p = (Point(1,2,3), Point(3,2,1))
     m = Transform().scale((2,2,2))
     res = m.map(p)
     eq((res[0][0], res[0][1], res[0][2],
         res[1][0], res[1][1], res[1][2],),
         (2.0, 4.0, 6.0,
          6.0, 4.0, 2.0))
Esempio n. 3
0
    def test_arithmeticops(self):
        eq = self.almostEqual
        # __abs__
        eq(Vector(1., 2., 3.), abs(Vector(-1., -2., -3.)))

        # __neg__
        eq(-Vector(1., 2., 3.), Vector(-1., -2., -3.))

        # __pos__
        eq(+Vector(1., 2., -3.), Vector(1., 2., -3.))

        # __add__
        eq(Vector(1., 2., 3.) + Vector(-1., -2., -3.), Vector(0., 0., 0.))

        # __iadd__
        p1 = Vector(1., 2., 3.)
        p1 += Vector(-1., -2., -3.)
        eq(p1, Vector(0., 0., 0.))

        # __sub__
        self.assertTrue(
            Vector(1., 2., 3.) - Vector(-1., -2., -3.) == Vector(2., 4., 6.))

        # __isub__
        p1 = Vector(1., 2., 3.)
        p1 -= Vector(1., 2., 3.)
        self.assertTrue(p1 == Vector(0., 0., 0.))

        # __mul__
        eq(Vector(1., 2., 3.) * 2., Vector(2.0, 4.0, 6.0))
        eq(2. * Vector(1., 2., 3.), Vector(2.0, 4.0, 6.0))

        p = Vector(1., 2., 3.)
        m = Transform().translate(3., 2., 1.)
        q = p * m
        eq(q, Vector(4., 4., 4.))

        self.assertAlmostEqual(
            Vector(1., 2., 3.) * Vector(4, 5, 6), 1. * 4. + 2. * 5. + 3. * 6.)

        # __rmul__
        eq(2. * Vector(1., 2., 3.), Vector(2.0, 4.0, 6.0))

        # __imul__
        p1 = Vector(1., 2., 3.)
        p1 *= 2.
        eq(p1, Vector(2., 4., 6.))

        # __div__
        eq(Vector(1., 2., 3.) / 2., Vector(1. / 2., 2. / 2., 3. / 2.))

        # __idiv__
        p1 = Vector(1., 2., 3.)
        p1 /= 2.
        eq(p1, Vector(1. / 2., 2. / 2., 3. / 2.))

        # __rdiv__
        eq(1. / Vector(1., 2., 3.), Vector(1. / 1., 1. / 2., 1. / 3.))
Esempio n. 4
0
    def test_arithmeticops(self):
        eq = self.almostEqual
        # __abs__
        eq(Point(1., 2., 3.), abs(Point(-1., -2., -3.)))

        # __neg__
        eq(-Point(1., 2., 3.), Point(-1., -2., -3.))

        # __pos__
        eq(+Point(1., 2., -3.), Point(1., 2., -3.))
        
        # __add__
        eq(Point(1., 2., 3.) + Point(-1., -2., -3.), Point(0., 0., 0.))

        # __iadd__
        p1 = Point(1., 2., 3.)
        p1 += Point(-1., -2., -3.)
        eq(p1, Point(0., 0., 0.))

        # __sub__
        self.assertTrue(Point(1., 2., 3.) - Point(-1., -2., -3.) == Point(2., 4., 6.))

        # __isub__
        p1 = Point(1., 2., 3.)
        p1 -= Point(1., 2., 3.)
        self.assertTrue(p1 == Point(0., 0., 0.))

        # __mul__
        eq(Point(1., 2., 3.) * 2., Point(2.0, 4.0, 6.0))
        eq(2. * Point(1., 2., 3.), Point(2.0, 4.0, 6.0))
         
        p = Point(1.,2.,3.)
        m = Transform().translate(3.,2.,1.)
        q = p * m
        eq(q, Point(4.,4.,4.))
        
        # __rmul__           
        eq(2. * Point(1., 2., 3.), Point(2.0, 4.0, 6.0))
       
        # __imul__
        p1 = Point(1.,2.,3.)
        p1 *= 2.
        eq(p1, Point(2., 4., 6.))

        # __div__
        eq(Point(1., 2., 3.) / 2., Point(1./2., 2./2., 3./2.))

        # __idiv__
        p1 = Point(1., 2., 3.)
        p1 /= 2.
        eq(p1, Point(1./2., 2./2., 3./2.))

        # __rdiv__
        eq(1. / Point(1., 2., 3.), Point(1./1., 1./2., 1./3.))
Esempio n. 5
0
 def test_transform(self):
     p = Plane.fromNormal((0.,0.,0.), (0.,0.,1.))
     tr = Transform().translate(0.,0.,1.)
     
     self.assertTrue(p.distanceTo((0.,0.,-1.5)) == -1.5)
     self.assertTrue(p.origin == Point(0.,0.,0.))
     
     p.transform(tr)
     
     self.assertTrue(p.distanceTo((0.,0.,-1.5)) == -2.5)
     self.assertTrue(p.origin == Point(0.,0.,1.))
Esempio n. 6
0
    def test_transform(self):
        eq = self.almostEqual

        e1 = Edge().createLine((-1., -2., -3.), (0., 0., 0.))
        m = Transform().translate(1., 2., 3.)
        e1.transform(m)

        v1, v2 = e1
        eq(v1, (0., 0., 0.))
        eq(v2, (1., 2., 3.))

        m = Transform().translate(-1., -2., -3.)
        e2 = e1.transform(m, copy=True)

        v1, v2 = e1
        eq(v1, (0., 0., 0.))
        eq(v2, (1., 2., 3.))

        v1, v2 = e2
        eq(v1, (-1., -2., -3.))
        eq(v2, (0., 0., 0.))
Esempio n. 7
0
    def test_empty(self):
        eq = self.assertEqual

        e1 = Edge()

        self.assertRaises(OCCError, e1.shapeType)
        eq(e1.isNull(), True)
        eq(e1.isValid(), False)
        eq(e1.isDegenerated(), True)
        eq(e1.hasPlane(), False)
        eq(len(e1), 0)
        eq(tuple(e1), ())

        m = Transform().translate(1., 2., 3.)
        self.assertRaises(OCCError, e1.transform, m)
        self.assertRaises(OCCError, e1.translate, (1., 2., 3.))
        self.assertRaises(OCCError, e1.rotate, pi, (0., 1., 0.))
        self.assertRaises(OCCError, e1.scale, (0., 0., 0.), 2.)
Esempio n. 8
0
    def test_init_and_accessors(self):
        eq = self.almostEqual
        m = Transform()
        eq((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]),
           (1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1.))

        m = Transform(*range(1, 17))
        eq((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]), range(1, 17))

        m = Transform(
            ((1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16)))
        eq((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]), range(1, 17))

        m = Transform()
        m[0][0] = 1
        m[0][1] = 2
        m[0][2] = 3
        m[0][3] = 4
        m[1][0] = 5
        m[1][1] = 6
        m[1][2] = 7
        m[1][3] = 8
        m[2][0] = 9
        m[2][1] = 10
        m[2][2] = 11
        m[2][3] = 12
        m[3][0] = 13
        m[3][1] = 14
        m[3][2] = 15
        m[3][3] = 16
        eq((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]), range(1, 17))

        m = Transform(*range(1, 17))
        n = m[0]
        eq((
            n[0],
            n[1],
            n[2],
            n[3],
        ), range(1, 5))

        n = m[1]
        eq((
            n[0],
            n[1],
            n[2],
            n[3],
        ), range(5, 9))

        n = m[2]
        eq((
            n[0],
            n[1],
            n[2],
            n[3],
        ), range(9, 13))

        n = m[3]
        eq((
            n[0],
            n[1],
            n[2],
            n[3],
        ), range(13, 17))

        n[0] = 17
        eq((
            n[0],
            n[1],
            n[2],
            n[3],
        ), (17, 14, 15, 16))
Esempio n. 9
0
    def test_map(self):
        eq = self.almostEqual
        p = Point(1, 2, 3)
        m = Transform().translate((2, 3, 4))
        eq(m.map(p), (3, 5, 7))

        p = Point(1, 2, 3)
        m = Transform().scale((2, 2, 2))
        eq(m.map(p), (2, 4, 6))

        p = ((1, 2, 3), (3, 2, 1))
        m = Transform().scale((2, 2, 2))
        res = m.map(p)
        eq((
            res[0][0],
            res[0][1],
            res[0][2],
            res[1][0],
            res[1][1],
            res[1][2],
        ), (2.0, 4.0, 6.0, 6.0, 4.0, 2.0))

        p = (Point(1, 2, 3), Point(3, 2, 1))
        m = Transform().scale((2, 2, 2))
        res = m.map(p)
        eq((
            res[0][0],
            res[0][1],
            res[0][2],
            res[1][0],
            res[1][1],
            res[1][2],
        ), (2.0, 4.0, 6.0, 6.0, 4.0, 2.0))
Esempio n. 10
0
 def test_rotate(self):
     eq = self.almostEqual
     m = Transform().rotateZ(pi / 2.)
     eq(m.map((1., 0.)), (0., 1.))
Esempio n. 11
0
 def test_rotate(self):
     eq = self.almostEqual
     m = Transform().rotateZ(pi/2.)
     eq(m.map((1.,0.)), (0.,1.))