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