From 3d22f6cd66969b4d18398531fe3260421b74810c Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Wed, 23 Apr 2025 09:22:52 +1200 Subject: [PATCH] Only save one version of tag info per epoch (#6429) Signed-off-by: Nick Cameron --- rust/kcl-lib/src/execution/mod.rs | 17 +- rust/kcl-lib/src/simulation_tests.rs | 21 + .../tests/loop_tag/artifact_commands.snap | 2032 +++++++ .../loop_tag/artifact_graph_flowchart.snap | 6 + .../loop_tag/artifact_graph_flowchart.snap.md | 566 ++ rust/kcl-lib/tests/loop_tag/ast.snap | 1290 +++++ rust/kcl-lib/tests/loop_tag/input.kcl | 39 + rust/kcl-lib/tests/loop_tag/ops.snap | 2753 ++++++++++ .../tests/loop_tag/program_memory.snap | 4751 +++++++++++++++++ .../kcl-lib/tests/loop_tag/rendered_model.png | Bin 0 -> 65538 bytes rust/kcl-lib/tests/loop_tag/unparsed.snap | 42 + 11 files changed, 11511 insertions(+), 6 deletions(-) create mode 100644 rust/kcl-lib/tests/loop_tag/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/loop_tag/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/loop_tag/ast.snap create mode 100644 rust/kcl-lib/tests/loop_tag/input.kcl create mode 100644 rust/kcl-lib/tests/loop_tag/ops.snap create mode 100644 rust/kcl-lib/tests/loop_tag/program_memory.snap create mode 100644 rust/kcl-lib/tests/loop_tag/rendered_model.png create mode 100644 rust/kcl-lib/tests/loop_tag/unparsed.snap 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 0000000000000000000000000000000000000000..0423c90a7ef3c8d3929db375d8e7109a39deea3c GIT binary patch literal 65538 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%0Ahz&t8#yU;Np> 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 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)