コード例 #1
0
    def test_rotate(self, x_axis, y_axis, z_axis):
        t = Transform.rotate(45., x_axis)
        assert_elem_eq(t(x_axis), x_axis)
        v = t(y_axis)
        assert_elem_eq(v, geo.Vector(0., np.sqrt(2) / 2., np.sqrt(2) / 2.))
        vv = t(v)
        assert_elem_eq(vv, z_axis)
        vv = t.inverse()(v)
        assert_elem_eq(vv, y_axis)

        t = Transform.rotate(30., y_axis)
        assert_elem_eq(t(y_axis), y_axis)
        p = geo.Point.from_arr(z_axis)
        pp = t(t(t(p)))
        assert_elem_eq(pp, x_axis)

        t = Transform.rotate(90., z_axis)
        assert_elem_eq(t(z_axis), z_axis)
        n = geo.Normal.from_arr(y_axis)
        nn = t(t(t(n)))
        assert_elem_eq(nn, x_axis)
コード例 #2
0
    def test_rotate_bbox(self):
        t = Transform.rotate(180., geo.Vector(1., 1., 1.))
        p1 = geo.Point(0., 0., 0.)
        p2 = geo.Point(1., 1., 1.)
        box = geo.BBox(p1, p2)
        b = t(box)
        pmax = t(box.pMax)
        pmin = t(box.pMin)

        assert_elem_eq(b.pMin, pmin)
        assert_elem_eq(b.pMax, pmax)

        bb = t(b)
        pmax = t(pmax)
        pmin = t(pmin)
        assert_elem_eq(bb.pMin, pmin)
        assert_elem_eq(bb.pMax, pmax)