def test_globalize_position_rotation(self): """Rotation is applied in reverse.""" v1 = [(A, B, C)] rot = (90, 0, -90) frame = GroupFrame(rotation=rot) v2 = frame.globalize_position(v1) self.assertAllClose((B, -C, -A), v2[0])
def test_localize_position_rotation(self): """Euler rotation is applied in the correct order.""" v1 = [(A, B, C)] rot = (90., 0., -90.) frame = GroupFrame(rotation=rot) v2 = frame.localize_position(v1) self.assertAllClose((-C, A, -B), v2[0])
def test_globalize_direction_all(self): """Transformations are applied in the correct order.""" v1 = (A, B, C) pos = (D, 0, 0) rot = (0, 0, -90) frame = GroupFrame(position=pos, rotation=rot) v2 = frame.globalize_direction(v1) self.assertAllClose((B, -A, C), v2[0])
def test_localize_direction_all(self): """Only rotations are performed on directions.""" v1 = [(A, B, C)] pos = (D, 0, 0) rot = (0, 0, -90) frame = GroupFrame(position=pos, rotation=rot) v2 = frame.localize_direction(v1) self.assertAllClose((-B, A, C), v2[0])
def test_localize_position_all(self): """Transformations are applied in the correct order.""" v1 = [(A, B, C)] pos = (D, 0, 0) rot = (0, 0, -90) frame = GroupFrame(position=pos, rotation=rot) v2 = frame.localize_position(v1) self.assertAllClose((-B, A-D, C), v2[0])
def test_localize(self): p = [(A, B, C)] d = [(D, E, F)] pos = (G, H, I) r1 = Rays(p, d, None) member = GroupFrame(position=pos) r2 = member.localize(r1) self.assertAllClose(r1.endpoints[0], r2.endpoints[0] + pos) self.assertAllClose(r1.directions[0], r2.directions[0])
def test_globalize_position_translation(self): v1 = [(A, B, C)] dv = (D, E, F) frame = GroupFrame(position=dv) v2 = frame.globalize_position(v1) self.assertAllClose(v1[0], v2[0] - dv)