def test_transform(self): point = Vec3(2, 3, 0) marker_value = 777 m = matrix(rotate=30, tx=7, ty=9) point_transformed = m.transform(point) line = LeaderLine() line.vertices.append(point) line.breaks.append(point) line.index = marker_value line.color = marker_value line.transform(WCSTransform(m)) assert line.vertices[0].isclose(point_transformed) assert line.breaks[0].isclose(point_transformed) assert line.index == marker_value assert line.color == marker_value
def test_transform_context(self): point = Vec3(2, 3, 0) marker_value = 777 lenght = 1.0 scale = 3.0 m = matrix(scale=scale, rotate=30, tx=7, ty=9) point_transformed = m.transform(point) ctx = MLeaderContext() ctx.base_point = point ctx.char_height = lenght ctx.arrow_head_size = lenght ctx.landing_gap_size = lenght ctx.left_attachment = marker_value ctx.right_attachment = marker_value ctx.top_attachment = marker_value ctx.bottom_attachment = marker_value ctx.text_align_type = marker_value ctx.attachment_type = marker_value ctx.transform(WCSTransform(m)) assert ctx.scale == pytest.approx(scale) assert ctx.base_point.isclose(point_transformed) assert ctx.char_height == pytest.approx(scale * lenght) assert ctx.arrow_head_size == pytest.approx(scale * lenght) assert ctx.landing_gap_size == pytest.approx(scale * lenght) assert ctx.left_attachment == marker_value assert ctx.right_attachment == marker_value assert ctx.top_attachment == marker_value assert ctx.bottom_attachment == marker_value assert ctx.text_align_type == marker_value assert ctx.attachment_type == marker_value assert ctx.plane_origin.isclose(m.transform((0, 0, 0))) assert ctx.plane_x_axis.isclose( m.transform_direction((1, 0, 0)).normalize()) assert ctx.plane_y_axis.isclose( m.transform_direction((0, 1, 0)).normalize()) assert ctx.plane_normal_reversed == 0
def test_transform(self): point = Vec3(2, 3, 0) marker_value = 777 dogleg_length = 1.0 m = matrix(rotate=30, tx=7, ty=9) point_transformed = m.transform(point) direction_transformed = m.transform_direction(point) leader = LeaderData() leader.last_leader_point = point leader.dogleg_vector = point leader.dogleg_length = dogleg_length leader.breaks.append(point) leader.has_last_leader_line = marker_value leader.has_dogleg_vector = marker_value leader.transform(WCSTransform(m)) assert leader.last_leader_point.isclose(point_transformed) assert leader.dogleg_vector.isclose(direction_transformed.normalize()) assert leader.dogleg_length == pytest.approx(dogleg_length) assert leader.breaks[0].isclose(point_transformed) assert leader.has_last_leader_line == marker_value assert leader.has_dogleg_vector == marker_value
def test_transform_block_data_xy_reflection(self): block = BlockData() block.transform(WCSTransform(Matrix44.scale(-1, -1, 1))) assert block.extrusion.isclose(Z_AXIS) assert block.scale.isclose((1, 1, 1)) # ???
def test_transform_context_reversed_extrusion(self): ctx = MLeaderContext() ctx.transform(WCSTransform(Matrix44.scale(-1, 1, 1))) assert ctx.plane_normal_reversed == 1