diff --git a/rust/kcl-lib/src/execution/mod.rs b/rust/kcl-lib/src/execution/mod.rs index e5b409c27..f1c169fec 100644 --- a/rust/kcl-lib/src/execution/mod.rs +++ b/rust/kcl-lib/src/execution/mod.rs @@ -95,8 +95,7 @@ pub struct DefaultPlanes { pub struct TagIdentifier { pub value: String, // Multi-version representation of info about the tag. Kept ordered. The usize is the epoch at which the info - // was written. Note that there might be multiple versions of tag info from the same epoch, the version with - // the higher index will be the most recent. + // was written. #[serde(skip)] pub info: Vec<(usize, TagEngineInfo)>, #[serde(skip)] @@ -123,10 +122,16 @@ impl TagIdentifier { /// Add info from a different instance of this tag. pub fn merge_info(&mut self, other: &TagIdentifier) { assert_eq!(&self.value, &other.value); - 'new_info: for (oe, ot) in &other.info { - for (e, _) in &self.info { - if e > oe { - continue 'new_info; + for (oe, ot) in &other.info { + if let Some((e, t)) = self.info.last_mut() { + // If there is newer info, then skip this iteration. + if *e > *oe { + continue; + } + // If we're in the same epoch, then overwrite. + if e == oe { + *t = ot.clone(); + continue; } } self.info.push((*oe, ot.clone())); diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index c9fd174c0..ac4220490 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -2600,3 +2600,24 @@ mod import_async { super::execute(TEST_NAME, true).await } } +mod loop_tag { + const TEST_NAME: &str = "loop_tag"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} diff --git a/rust/kcl-lib/tests/loop_tag/artifact_commands.snap b/rust/kcl-lib/tests/loop_tag/artifact_commands.snap new file mode 100644 index 000000000..68df0be41 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/artifact_commands.snap @@ -0,0 +1,2032 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands loop_tag.kcl +--- +[ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.9211, + "y": 1.2533, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.6858, + "y": 2.4869, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.2978, + "y": 3.6812, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.7631, + "y": 4.8175, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.0902, + "y": 5.8779, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.2897, + "y": 6.8455, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.3742, + "y": 7.7051, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.3583, + "y": 8.4433, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2578, + "y": 9.0483, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0902, + "y": 9.5106, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.8738, + "y": 9.8229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6279, + "y": 9.9803, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6279, + "y": 9.9803, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1.8738, + "y": 9.8229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -3.0902, + "y": 9.5106, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -4.2578, + "y": 9.0483, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -5.3583, + "y": 8.4433, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -6.3742, + "y": 7.7051, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -7.2897, + "y": 6.8455, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -8.0902, + "y": 5.8779, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -8.7631, + "y": 4.8175, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.2978, + "y": 3.6812, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.6858, + "y": 2.4869, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.9211, + "y": 1.2533, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.9211, + "y": -1.2533, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.6858, + "y": -2.4869, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.2978, + "y": -3.6812, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -8.7631, + "y": -4.8175, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -8.0902, + "y": -5.8779, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -7.2897, + "y": -6.8455, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -6.3742, + "y": -7.7051, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -5.3583, + "y": -8.4433, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -4.2578, + "y": -9.0483, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -3.0902, + "y": -9.5106, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1.8738, + "y": -9.8229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6279, + "y": -9.9803, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6279, + "y": -9.9803, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.8738, + "y": -9.8229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0902, + "y": -9.5106, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2578, + "y": -9.0483, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.3583, + "y": -8.4433, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.3742, + "y": -7.7051, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.2897, + "y": -6.8455, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.0902, + "y": -5.8779, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.7631, + "y": -4.8175, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.2978, + "y": -3.6812, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.6858, + "y": -2.4869, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.9211, + "y": -1.2533, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 50.0, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + } +] diff --git a/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap new file mode 100644 index 000000000..ce3a2e5c0 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart loop_tag.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..07050ed7e --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md @@ -0,0 +1,566 @@ +```mermaid +flowchart LR + subgraph path2 [Path] + 2["Path
[754, 790, 0]"] + 3["Segment
[930, 994, 0]"] + 4["Segment
[930, 994, 0]"] + 5["Segment
[930, 994, 0]"] + 6["Segment
[930, 994, 0]"] + 7["Segment
[930, 994, 0]"] + 8["Segment
[930, 994, 0]"] + 9["Segment
[930, 994, 0]"] + 10["Segment
[930, 994, 0]"] + 11["Segment
[930, 994, 0]"] + 12["Segment
[930, 994, 0]"] + 13["Segment
[930, 994, 0]"] + 14["Segment
[930, 994, 0]"] + 15["Segment
[930, 994, 0]"] + 16["Segment
[930, 994, 0]"] + 17["Segment
[930, 994, 0]"] + 18["Segment
[930, 994, 0]"] + 19["Segment
[930, 994, 0]"] + 20["Segment
[930, 994, 0]"] + 21["Segment
[930, 994, 0]"] + 22["Segment
[930, 994, 0]"] + 23["Segment
[930, 994, 0]"] + 24["Segment
[930, 994, 0]"] + 25["Segment
[930, 994, 0]"] + 26["Segment
[930, 994, 0]"] + 27["Segment
[930, 994, 0]"] + 28["Segment
[930, 994, 0]"] + 29["Segment
[930, 994, 0]"] + 30["Segment
[930, 994, 0]"] + 31["Segment
[930, 994, 0]"] + 32["Segment
[930, 994, 0]"] + 33["Segment
[930, 994, 0]"] + 34["Segment
[930, 994, 0]"] + 35["Segment
[930, 994, 0]"] + 36["Segment
[930, 994, 0]"] + 37["Segment
[930, 994, 0]"] + 38["Segment
[930, 994, 0]"] + 39["Segment
[930, 994, 0]"] + 40["Segment
[930, 994, 0]"] + 41["Segment
[930, 994, 0]"] + 42["Segment
[930, 994, 0]"] + 43["Segment
[930, 994, 0]"] + 44["Segment
[930, 994, 0]"] + 45["Segment
[930, 994, 0]"] + 46["Segment
[930, 994, 0]"] + 47["Segment
[930, 994, 0]"] + 48["Segment
[930, 994, 0]"] + 49["Segment
[930, 994, 0]"] + 50["Segment
[930, 994, 0]"] + 51["Segment
[930, 994, 0]"] + 52["Segment
[1058, 1076, 0]"] + 53[Solid2d] + end + 1["Plane
[731, 748, 0]"] + 54["Sweep Extrusion
[1130, 1168, 0]"] + 55[Wall] + 56[Wall] + 57[Wall] + 58[Wall] + 59[Wall] + 60[Wall] + 61[Wall] + 62[Wall] + 63[Wall] + 64[Wall] + 65[Wall] + 66[Wall] + 67[Wall] + 68[Wall] + 69[Wall] + 70[Wall] + 71[Wall] + 72[Wall] + 73[Wall] + 74[Wall] + 75[Wall] + 76[Wall] + 77[Wall] + 78[Wall] + 79[Wall] + 80[Wall] + 81[Wall] + 82[Wall] + 83[Wall] + 84[Wall] + 85[Wall] + 86[Wall] + 87[Wall] + 88[Wall] + 89[Wall] + 90[Wall] + 91[Wall] + 92[Wall] + 93[Wall] + 94[Wall] + 95[Wall] + 96[Wall] + 97[Wall] + 98[Wall] + 99[Wall] + 100[Wall] + 101[Wall] + 102[Wall] + 103[Wall] + 104[Wall] + 105["Cap Start"] + 106["Cap End"] + 107["SweepEdge Opposite"] + 108["SweepEdge Adjacent"] + 109["SweepEdge Opposite"] + 110["SweepEdge Adjacent"] + 111["SweepEdge Opposite"] + 112["SweepEdge Adjacent"] + 113["SweepEdge Opposite"] + 114["SweepEdge Adjacent"] + 115["SweepEdge Opposite"] + 116["SweepEdge Adjacent"] + 117["SweepEdge Opposite"] + 118["SweepEdge Adjacent"] + 119["SweepEdge Opposite"] + 120["SweepEdge Adjacent"] + 121["SweepEdge Opposite"] + 122["SweepEdge Adjacent"] + 123["SweepEdge Opposite"] + 124["SweepEdge Adjacent"] + 125["SweepEdge Opposite"] + 126["SweepEdge Adjacent"] + 127["SweepEdge Opposite"] + 128["SweepEdge Adjacent"] + 129["SweepEdge Opposite"] + 130["SweepEdge Adjacent"] + 131["SweepEdge Opposite"] + 132["SweepEdge Adjacent"] + 133["SweepEdge Opposite"] + 134["SweepEdge Adjacent"] + 135["SweepEdge Opposite"] + 136["SweepEdge Adjacent"] + 137["SweepEdge Opposite"] + 138["SweepEdge Adjacent"] + 139["SweepEdge Opposite"] + 140["SweepEdge Adjacent"] + 141["SweepEdge Opposite"] + 142["SweepEdge Adjacent"] + 143["SweepEdge Opposite"] + 144["SweepEdge Adjacent"] + 145["SweepEdge Opposite"] + 146["SweepEdge Adjacent"] + 147["SweepEdge Opposite"] + 148["SweepEdge Adjacent"] + 149["SweepEdge Opposite"] + 150["SweepEdge Adjacent"] + 151["SweepEdge Opposite"] + 152["SweepEdge Adjacent"] + 153["SweepEdge Opposite"] + 154["SweepEdge Adjacent"] + 155["SweepEdge Opposite"] + 156["SweepEdge Adjacent"] + 157["SweepEdge Opposite"] + 158["SweepEdge Adjacent"] + 159["SweepEdge Opposite"] + 160["SweepEdge Adjacent"] + 161["SweepEdge Opposite"] + 162["SweepEdge Adjacent"] + 163["SweepEdge Opposite"] + 164["SweepEdge Adjacent"] + 165["SweepEdge Opposite"] + 166["SweepEdge Adjacent"] + 167["SweepEdge Opposite"] + 168["SweepEdge Adjacent"] + 169["SweepEdge Opposite"] + 170["SweepEdge Adjacent"] + 171["SweepEdge Opposite"] + 172["SweepEdge Adjacent"] + 173["SweepEdge Opposite"] + 174["SweepEdge Adjacent"] + 175["SweepEdge Opposite"] + 176["SweepEdge Adjacent"] + 177["SweepEdge Opposite"] + 178["SweepEdge Adjacent"] + 179["SweepEdge Opposite"] + 180["SweepEdge Adjacent"] + 181["SweepEdge Opposite"] + 182["SweepEdge Adjacent"] + 183["SweepEdge Opposite"] + 184["SweepEdge Adjacent"] + 185["SweepEdge Opposite"] + 186["SweepEdge Adjacent"] + 187["SweepEdge Opposite"] + 188["SweepEdge Adjacent"] + 189["SweepEdge Opposite"] + 190["SweepEdge Adjacent"] + 191["SweepEdge Opposite"] + 192["SweepEdge Adjacent"] + 193["SweepEdge Opposite"] + 194["SweepEdge Adjacent"] + 195["SweepEdge Opposite"] + 196["SweepEdge Adjacent"] + 197["SweepEdge Opposite"] + 198["SweepEdge Adjacent"] + 199["SweepEdge Opposite"] + 200["SweepEdge Adjacent"] + 201["SweepEdge Opposite"] + 202["SweepEdge Adjacent"] + 203["SweepEdge Opposite"] + 204["SweepEdge Adjacent"] + 205["SweepEdge Opposite"] + 206["SweepEdge Adjacent"] + 1 --- 2 + 2 --- 3 + 2 --- 4 + 2 --- 5 + 2 --- 6 + 2 --- 7 + 2 --- 8 + 2 --- 9 + 2 --- 10 + 2 --- 11 + 2 --- 12 + 2 --- 13 + 2 --- 14 + 2 --- 15 + 2 --- 16 + 2 --- 17 + 2 --- 18 + 2 --- 19 + 2 --- 20 + 2 --- 21 + 2 --- 22 + 2 --- 23 + 2 --- 24 + 2 --- 25 + 2 --- 26 + 2 --- 27 + 2 --- 28 + 2 --- 29 + 2 --- 30 + 2 --- 31 + 2 --- 32 + 2 --- 33 + 2 --- 34 + 2 --- 35 + 2 --- 36 + 2 --- 37 + 2 --- 38 + 2 --- 39 + 2 --- 40 + 2 --- 41 + 2 --- 42 + 2 --- 43 + 2 --- 44 + 2 --- 45 + 2 --- 46 + 2 --- 47 + 2 --- 48 + 2 --- 49 + 2 --- 50 + 2 --- 51 + 2 --- 52 + 2 ---- 54 + 2 --- 53 + 3 --- 55 + 3 --- 107 + 3 --- 108 + 4 --- 56 + 4 --- 109 + 4 --- 110 + 5 --- 57 + 5 --- 111 + 5 --- 112 + 6 --- 58 + 6 --- 113 + 6 --- 114 + 7 --- 59 + 7 --- 115 + 7 --- 116 + 8 --- 60 + 8 --- 117 + 8 --- 118 + 9 --- 61 + 9 --- 119 + 9 --- 120 + 10 --- 62 + 10 --- 121 + 10 --- 122 + 11 --- 63 + 11 --- 123 + 11 --- 124 + 12 --- 64 + 12 --- 125 + 12 --- 126 + 13 --- 65 + 13 --- 127 + 13 --- 128 + 14 --- 66 + 14 --- 129 + 14 --- 130 + 15 --- 67 + 15 --- 131 + 15 --- 132 + 16 --- 68 + 16 --- 133 + 16 --- 134 + 17 --- 69 + 17 --- 135 + 17 --- 136 + 18 --- 70 + 18 --- 137 + 18 --- 138 + 19 --- 71 + 19 --- 139 + 19 --- 140 + 20 --- 72 + 20 --- 141 + 20 --- 142 + 21 --- 73 + 21 --- 143 + 21 --- 144 + 22 --- 74 + 22 --- 145 + 22 --- 146 + 23 --- 75 + 23 --- 147 + 23 --- 148 + 24 --- 76 + 24 --- 149 + 24 --- 150 + 25 --- 77 + 25 --- 151 + 25 --- 152 + 26 --- 78 + 26 --- 153 + 26 --- 154 + 27 --- 79 + 27 --- 155 + 27 --- 156 + 28 --- 80 + 28 --- 157 + 28 --- 158 + 29 --- 81 + 29 --- 159 + 29 --- 160 + 30 --- 82 + 30 --- 161 + 30 --- 162 + 31 --- 83 + 31 --- 163 + 31 --- 164 + 32 --- 84 + 32 --- 165 + 32 --- 166 + 33 --- 85 + 33 --- 167 + 33 --- 168 + 34 --- 86 + 34 --- 169 + 34 --- 170 + 35 --- 87 + 35 --- 171 + 35 --- 172 + 36 --- 88 + 36 --- 173 + 36 --- 174 + 37 --- 89 + 37 --- 175 + 37 --- 176 + 38 --- 90 + 38 --- 177 + 38 --- 178 + 39 --- 91 + 39 --- 179 + 39 --- 180 + 40 --- 92 + 40 --- 181 + 40 --- 182 + 41 --- 93 + 41 --- 183 + 41 --- 184 + 42 --- 94 + 42 --- 185 + 42 --- 186 + 43 --- 95 + 43 --- 187 + 43 --- 188 + 44 --- 96 + 44 --- 189 + 44 --- 190 + 45 --- 97 + 45 --- 191 + 45 --- 192 + 46 --- 98 + 46 --- 193 + 46 --- 194 + 47 --- 99 + 47 --- 195 + 47 --- 196 + 48 --- 100 + 48 --- 197 + 48 --- 198 + 49 --- 101 + 49 --- 199 + 49 --- 200 + 50 --- 102 + 50 --- 201 + 50 --- 202 + 51 --- 103 + 51 --- 203 + 51 --- 204 + 52 --- 104 + 52 --- 205 + 52 --- 206 + 54 --- 55 + 54 --- 56 + 54 --- 57 + 54 --- 58 + 54 --- 59 + 54 --- 60 + 54 --- 61 + 54 --- 62 + 54 --- 63 + 54 --- 64 + 54 --- 65 + 54 --- 66 + 54 --- 67 + 54 --- 68 + 54 --- 69 + 54 --- 70 + 54 --- 71 + 54 --- 72 + 54 --- 73 + 54 --- 74 + 54 --- 75 + 54 --- 76 + 54 --- 77 + 54 --- 78 + 54 --- 79 + 54 --- 80 + 54 --- 81 + 54 --- 82 + 54 --- 83 + 54 --- 84 + 54 --- 85 + 54 --- 86 + 54 --- 87 + 54 --- 88 + 54 --- 89 + 54 --- 90 + 54 --- 91 + 54 --- 92 + 54 --- 93 + 54 --- 94 + 54 --- 95 + 54 --- 96 + 54 --- 97 + 54 --- 98 + 54 --- 99 + 54 --- 100 + 54 --- 101 + 54 --- 102 + 54 --- 103 + 54 --- 104 + 54 --- 105 + 54 --- 106 + 54 --- 107 + 54 --- 108 + 54 --- 109 + 54 --- 110 + 54 --- 111 + 54 --- 112 + 54 --- 113 + 54 --- 114 + 54 --- 115 + 54 --- 116 + 54 --- 117 + 54 --- 118 + 54 --- 119 + 54 --- 120 + 54 --- 121 + 54 --- 122 + 54 --- 123 + 54 --- 124 + 54 --- 125 + 54 --- 126 + 54 --- 127 + 54 --- 128 + 54 --- 129 + 54 --- 130 + 54 --- 131 + 54 --- 132 + 54 --- 133 + 54 --- 134 + 54 --- 135 + 54 --- 136 + 54 --- 137 + 54 --- 138 + 54 --- 139 + 54 --- 140 + 54 --- 141 + 54 --- 142 + 54 --- 143 + 54 --- 144 + 54 --- 145 + 54 --- 146 + 54 --- 147 + 54 --- 148 + 54 --- 149 + 54 --- 150 + 54 --- 151 + 54 --- 152 + 54 --- 153 + 54 --- 154 + 54 --- 155 + 54 --- 156 + 54 --- 157 + 54 --- 158 + 54 --- 159 + 54 --- 160 + 54 --- 161 + 54 --- 162 + 54 --- 163 + 54 --- 164 + 54 --- 165 + 54 --- 166 + 54 --- 167 + 54 --- 168 + 54 --- 169 + 54 --- 170 + 54 --- 171 + 54 --- 172 + 54 --- 173 + 54 --- 174 + 54 --- 175 + 54 --- 176 + 54 --- 177 + 54 --- 178 + 54 --- 179 + 54 --- 180 + 54 --- 181 + 54 --- 182 + 54 --- 183 + 54 --- 184 + 54 --- 185 + 54 --- 186 + 54 --- 187 + 54 --- 188 + 54 --- 189 + 54 --- 190 + 54 --- 191 + 54 --- 192 + 54 --- 193 + 54 --- 194 + 54 --- 195 + 54 --- 196 + 54 --- 197 + 54 --- 198 + 54 --- 199 + 54 --- 200 + 54 --- 201 + 54 --- 202 + 54 --- 203 + 54 --- 204 + 54 --- 205 + 54 --- 206 +``` diff --git a/rust/kcl-lib/tests/loop_tag/ast.snap b/rust/kcl-lib/tests/loop_tag/ast.snap new file mode 100644 index 000000000..e9c16cad8 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/ast.snap @@ -0,0 +1,1290 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing loop_tag.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "// Define constants for the cylinder" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "height", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "numSides", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "raw": "50", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 50.0, + "suffix": "None" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "angleIncrement", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "raw": "360", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 360.0, + "suffix": "None" + } + }, + "operator": "/", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "numSides", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "calculatePoint", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "index", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angleIncrement", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "arguments": [ + { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "PI", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "180", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 180.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "cos", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "y", + "start": 0, + "type": "Identifier" + }, + "init": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "arguments": [ + { + "commentStart": 0, + "end": 0, + "left": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "*", + "right": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "PI", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "operator": "/", + "right": { + "commentStart": 0, + "end": 0, + "raw": "180", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 180.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "sin", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "argument": { + "commentStart": 0, + "elements": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "y", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "end": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "index", + "start": 0, + "type": "Identifier" + } + } + ], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "fn", + "preComments": [ + "", + "", + "// Function to calculate the coordinates of a point on the circle" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "initialSketch", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "arguments": [ + { + "commentStart": 0, + "end": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "calculatePoint", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "startProfileAt", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + } + ], + "commentStart": 0, + "end": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "1": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Draw lines to form the base of the cylinder", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Start sketch on the XY plane" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "finalSketch", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "commentStart": 0, + "end": 0, + "endElement": { + "commentStart": 0, + "end": 0, + "left": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "numSides", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "operator": "-", + "right": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + }, + "endInclusive": true, + "start": 0, + "startElement": { + "commentStart": 0, + "end": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "type": "ArrayRangeExpression", + "type": "ArrayRangeExpression" + }, + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "initialSketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + { + "body": { + "body": [ + { + "argument": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "end", + "start": 0, + "type": "Identifier" + }, + "arg": { + "arguments": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "index", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "calculatePoint", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "problematicTag" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "sketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "params": [ + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "index", + "start": 0, + "type": "Identifier" + } + }, + { + "type": "Parameter", + "identifier": { + "commentStart": 0, + "end": 0, + "name": "sketch", + "start": 0, + "type": "Identifier" + } + } + ], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "reduce", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "closedSketch", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "finalSketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "close", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Close the sketch to complete the base" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "name": "cylinder", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "height", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "closedSketch", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "preComments": [ + "", + "", + "// Extrude the base to form the cylinder" + ], + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "commentStart": 0, + "end": 0, + "innerAttrs": [ + { + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "settings", + "start": 0, + "type": "Identifier" + }, + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "name": "defaultLengthUnit", + "start": 0, + "type": "Identifier" + }, + "start": 0, + "type": "ObjectProperty", + "value": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "name": { + "commentStart": 0, + "end": 0, + "name": "mm", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "start": 0, + "type": "Annotation" + } + ], + "nonCodeMeta": { + "nonCodeNodes": {}, + "startNodes": [ + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "This is a performance regression test. There was previously some O(2^numSides) nonsense", + "style": "line" + } + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "in updating tags. If this test stops terminating in reasonable time, or versions of tags", + "style": "line" + } + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "explodes in program memory, then you might want to look at how tag infos are being merged", + "style": "line" + } + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "blockComment", + "value": "by `update_memory_for_tags_of_geometry`.", + "style": "line" + } + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + }, + { + "commentStart": 0, + "end": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/loop_tag/input.kcl b/rust/kcl-lib/tests/loop_tag/input.kcl new file mode 100644 index 000000000..f8fb78c74 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/input.kcl @@ -0,0 +1,39 @@ +// This is a performance regression test. There was previously some O(2^numSides) nonsense +// in updating tags. If this test stops terminating in reasonable time, or versions of tags +// explodes in program memory, then you might want to look at how tag infos are being merged +// by `update_memory_for_tags_of_geometry`. + +@settings(defaultLengthUnit = mm) + +// Define constants for the cylinder +radius = 10 +height = 50 +numSides = 50 +angleIncrement = 360 / numSides + +// Function to calculate the coordinates of a point on the circle +fn calculatePoint(index) { + angle = index * angleIncrement + x = radius * cos(angle * PI / 180) + y = radius * sin(angle * PI / 180) + return [x, y] +} + +// Start sketch on the XY plane +initialSketch = startSketchOn(XY) + |> startProfileAt(calculatePoint(0), %) + +// Draw lines to form the base of the cylinder +finalSketch = reduce( + [1..numSides-1], + initialSketch, + fn(index, sketch) { + return line(sketch, end = calculatePoint(index), tag = $problematicTag) + } +) + +// Close the sketch to complete the base +closedSketch = close(finalSketch) + +// Extrude the base to form the cylinder +cylinder = extrude(closedSketch, length = height) diff --git a/rust/kcl-lib/tests/loop_tag/ops.snap b/rust/kcl-lib/tests/loop_tag/ops.snap new file mode 100644 index 000000000..b463c8515 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/ops.snap @@ -0,0 +1,2753 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed loop_tag.kcl +--- +[ + { + "labeledArgs": { + "planeOrSolid": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + } + }, + "name": "startSketchOn", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "calculatePoint", + "functionSourceRange": [ + 547, + 681, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "cos", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "sin", + "functionSourceRange": [ + 0, + 0, + 0 + ], + "unlabeledArg": null, + "labeledArgs": {} + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + }, + { + "type": "GroupEnd" + }, + { + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 50.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "name": "extrude", + "sourceRange": [], + "type": "StdLibCall", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + } + } +] diff --git a/rust/kcl-lib/tests/loop_tag/program_memory.snap b/rust/kcl-lib/tests/loop_tag/program_memory.snap new file mode 100644 index 000000000..aa792d45b --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/program_memory.snap @@ -0,0 +1,4751 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing loop_tag.kcl +--- +{ + "angleIncrement": { + "type": "Number", + "value": 7.2, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "calculatePoint": { + "type": "Function" + }, + "closedSketch": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 0.0 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 10.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.0, + 0.0 + ], + "tag": null, + "to": [ + 10.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0, + "units": { + "type": "Mm" + } + }, + "units": { + "type": "Mm" + } + }, + "start": { + "from": [ + 10.0, + 0.0 + ], + "to": [ + 10.0, + 0.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "problematicTag": { + "type": "TagIdentifier", + "value": "problematicTag" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + } + }, + "cylinder": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 0.0 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 10.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.0, + 0.0 + ], + "tag": null, + "to": [ + 10.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0, + "units": { + "type": "Mm" + } + }, + "units": { + "type": "Mm" + } + }, + "start": { + "from": [ + 10.0, + 0.0 + ], + "to": [ + 10.0, + 0.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "problematicTag": { + "type": "TagIdentifier", + "value": "problematicTag" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + }, + "height": 50.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Mm" + } + } + }, + "finalSketch": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 0.0 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 84.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 84.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 82.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 82.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 79.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 79.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 74.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 74.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 69.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 69.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 63.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 63.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 55.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 55.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 47.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 47.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 38.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 38.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 29.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 29.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 19.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 19.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + 10.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 10.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 158.9454 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -0.0, + 158.9454 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 157.6921 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 157.6921 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 155.2052 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 155.2052 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 151.524 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 151.524 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 146.7064 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 146.7064 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 140.8286 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 140.8286 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 133.9831 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 133.9831 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 126.278 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 126.278 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 117.8347 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 117.8347 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 108.7864 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 108.7864 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 99.2759 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 99.2759 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 89.453 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 89.453 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.6299, + 79.4727 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.6299, + 79.4727 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -74.002, + 69.4925 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -74.002, + 69.4925 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -72.1281, + 59.6696 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -72.1281, + 59.6696 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -69.038, + 50.159 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -69.038, + 50.159 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -64.7802, + 41.1107 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -64.7802, + 41.1107 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -59.4219, + 32.6675 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -59.4219, + 32.6675 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -53.0477, + 24.9623 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -53.0477, + 24.9623 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -45.758, + 18.1169 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -45.758, + 18.1169 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -37.6678, + 12.239 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -37.6678, + 12.239 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -28.9047, + 7.4215 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -28.9047, + 7.4215 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -19.607, + 3.7402 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -19.607, + 3.7402 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -9.9211, + 1.2533 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -9.9211, + 1.2533 + ], + "tag": { + "commentStart": 978, + "end": 993, + "start": 978, + "type": "TagDeclarator", + "value": "problematicTag" + }, + "to": [ + -0.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0, + "units": { + "type": "Mm" + } + }, + "units": { + "type": "Mm" + } + }, + "start": { + "from": [ + 10.0, + 0.0 + ], + "to": [ + 10.0, + 0.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "problematicTag": { + "type": "TagIdentifier", + "value": "problematicTag" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + } + }, + "height": { + "type": "Number", + "value": 50.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "initialSketch": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [], + "on": { + "type": "plane", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0, + "units": { + "type": "Mm" + } + }, + "units": { + "type": "Mm" + } + }, + "start": { + "from": [ + 10.0, + 0.0 + ], + "to": [ + 10.0, + 0.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "problematicTag": { + "type": "TagIdentifier", + "value": "problematicTag" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + } + }, + "numSides": { + "type": "Number", + "value": 50.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "problematicTag": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "problematicTag" + }, + "radius": { + "type": "Number", + "value": 10.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + } +} diff --git a/rust/kcl-lib/tests/loop_tag/rendered_model.png b/rust/kcl-lib/tests/loop_tag/rendered_model.png new file mode 100644 index 000000000..0423c90a7 Binary files /dev/null and b/rust/kcl-lib/tests/loop_tag/rendered_model.png differ diff --git a/rust/kcl-lib/tests/loop_tag/unparsed.snap b/rust/kcl-lib/tests/loop_tag/unparsed.snap new file mode 100644 index 000000000..f084296b6 --- /dev/null +++ b/rust/kcl-lib/tests/loop_tag/unparsed.snap @@ -0,0 +1,42 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing loop_tag.kcl +--- +// This is a performance regression test. There was previously some O(2^numSides) nonsense +// in updating tags. If this test stops terminating in reasonable time, or versions of tags +// explodes in program memory, then you might want to look at how tag infos are being merged +// by `update_memory_for_tags_of_geometry`. + + + + +@settings(defaultLengthUnit = mm) + +// Define constants for the cylinder +radius = 10 +height = 50 +numSides = 50 +angleIncrement = 360 / numSides + +// Function to calculate the coordinates of a point on the circle +fn calculatePoint(index) { + angle = index * angleIncrement + x = radius * cos(angle * PI / 180) + y = radius * sin(angle * PI / 180) + return [x, y] +} + +// Start sketch on the XY plane +initialSketch = startSketchOn(XY) + |> startProfileAt(calculatePoint(0), %) + +// Draw lines to form the base of the cylinder +finalSketch = reduce([1 .. numSides - 1], initialSketch, fn(index, sketch) { + return line(sketch, end = calculatePoint(index), tag = $problematicTag) +}) + +// Close the sketch to complete the base +closedSketch = close(finalSketch) + +// Extrude the base to form the cylinder +cylinder = extrude(closedSketch, length = height)