hlr tests: a placed revolution is refused when its placement is not rigid

The new model has one record for main's Revolution, which was drawn, and its
PlacedRevolution, which was refused. An identity placement is now the former, so
this test's fixture takes a non-rigid one. The refusal it asserts is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNXLXkZLQ6T7TSi4wswcmk
This commit is contained in:
brett19
2026-10-31 17:10:55 -07:00
parent 1642df0ea6
commit ddcb80c8e5
+5 -3
View File
@@ -2321,10 +2321,12 @@ fn a_plane_through_three_points_draws_as_a_plane() {
#[test]
fn procedural_and_placed_records_are_not_supported_yet() {
let o = Options::default();
// A cylinder side stored as a placed revolution of its seam line.
// A cylinder side stored as a placed revolution of its seam line, under a placement that is
// not rigid. (The B-rep model now has this one record for main's drawn `Revolution` too, so a
// rigid placement is drawn: `a_placement_that_is_not_rigid_is_refused` and the tube fixtures.)
let mut placed = cylinder(4., 10.);
let profile = Box::new(Curve::Line { start: [4., 0., 0.], end: [4., 0., 10.] });
let matrix = [[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]];
let profile = Box::new(Curve::Line { start: [2., 0., 0.], end: [2., 0., 10.] });
let matrix = [[2., 0., 0., 0.], [0., 2., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]];
placed.shells[0].faces[0].surface = Surface::PlacedRevolution { profile, origin: [0.; 3], axis: [0., 0., 1.], matrix, forward: true };
assert!(matches!(prepare(&placed, &o), Err(HlrError::Unsupported("placed revolution surface"))));
// A box edge stored as the meeting of the planes y = 0 and z = 0, traced from a leader.