From 1cbbd077387534ad920c9db3ae743e0ee4489490 Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Tue, 15 Apr 2025 05:03:17 +0530 Subject: [PATCH 1/7] Adding tests for spline PTZ --- .../tool/tool_messages/spline_tool.rs | 301 ++++++++++++++++++ 1 file changed, 301 insertions(+) diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index da98c9ab65..8886e923de 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -534,3 +534,304 @@ fn delete_preview(tool_data: &mut SplineToolData, responses: &mut VecDeque Option> { + let document = editor.active_document(); + let network_interface = &document.network_interface; + let layer = network_interface.selected_nodes().selected_visible_and_unlocked_layers(network_interface).next()?; + println!("Found layer: {:?}", layer); + let vector_data = network_interface.compute_modified_vector(layer)?; + let points: Vec = vector_data.point_domain.positions().iter().cloned().collect(); + println!("Found points: {:?}", points); + Some(points) + } + + #[tokio::test] + async fn test_spline_with_zoomed_view() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + + // Zooming the viewport + editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 2.0 }).await; + + // Selecting the spline tool + editor.select_tool(ToolType::Spline).await; + + // Initiate drawing a spline + editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(50.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + // Adding the second point + editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(100.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + // Adding the third point + editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(150.0, 100.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + // Finish the spline + editor.handle_message(SplineToolMessage::Confirm).await; + + // Evaluate the graph to ensure everything is processed + editor.eval_graph().await; + + if let Some(points) = get_spline_points(&mut editor).await { + assert!(points.len() >= 3, "Spline should have at least 3 points"); + + // Calculating expected points in document coordinates + let document = editor.active_document(); + let viewport_to_document = document.metadata().document_to_viewport.inverse(); + let expected_points = vec![ + viewport_to_document.transform_point2(DVec2::new(50.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), + ]; + + // Check each key point is close to the expected position + for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { + assert!( + (*point - *expected).length() < 1.0, + "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" + ); + } + } else { + panic!("Could not get spline points"); + } + } + + #[tokio::test] + async fn test_spline_with_panned_view() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + let pan_amount = DVec2::new(200.0, 150.0); + editor.handle_message(NavigationMessage::CanvasPan { delta: pan_amount }).await; + editor.select_tool(ToolType::Spline).await; + editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(50.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(100.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(150.0, 100.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.handle_message(SplineToolMessage::Confirm).await; + editor.eval_graph().await; + + if let Some(points) = get_spline_points(&mut editor).await { + assert!(points.len() >= 3, "Spline should have at least 3 points"); + let document = editor.active_document(); + let viewport_to_document = document.metadata().document_to_viewport.inverse(); + let expected_points = vec![ + viewport_to_document.transform_point2(DVec2::new(50.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), + ]; + for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { + assert!( + (*point - *expected).length() < 1.0, + "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" + ); + } + } else { + panic!("Could not get spline points"); + } + } + + #[tokio::test] + async fn test_spline_with_tilted_view() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 45.0_f64.to_radians() }).await; + editor.select_tool(ToolType::Spline).await; + editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(50.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(100.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(150.0, 100.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.handle_message(SplineToolMessage::Confirm).await; + + editor.eval_graph().await; + + if let Some(points) = get_spline_points(&mut editor).await { + assert!(points.len() >= 3, "Spline should have at least 3 points"); + let document = editor.active_document(); + let viewport_to_document = document.metadata().document_to_viewport.inverse(); + let expected_points = vec![ + viewport_to_document.transform_point2(DVec2::new(50.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), + ]; + for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { + assert!( + (*point - *expected).length() < 1.0, + "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" + ); + } + } else { + panic!("Could not get spline points"); + } + } + + #[tokio::test] + async fn test_spline_with_combined_transformations() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + + // Multiple transformations + editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 1.5 }).await; + editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100.0, 75.0) }).await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 30.0_f64.to_radians() }).await; + + editor.select_tool(ToolType::Spline).await; + editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(50.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(100.0, 50.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; + editor + .mouseup( + EditorMouseState { + editor_position: DVec2::new(150.0, 100.0), + mouse_keys: MouseKeys::empty(), + scroll_delta: ScrollDelta::default(), + }, + ModifierKeys::empty(), + ) + .await; + + editor.handle_message(SplineToolMessage::Confirm).await; + editor.eval_graph().await; + + if let Some(points) = get_spline_points(&mut editor).await { + assert!(points.len() >= 3, "Spline should have at least 3 points"); + let document = editor.active_document(); + let viewport_to_document = document.metadata().document_to_viewport.inverse(); + let expected_points = vec![ + viewport_to_document.transform_point2(DVec2::new(50.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), + viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), + ]; + for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { + assert!( + (*point - *expected).length() < 1.0, + "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" + ); + } + } else { + panic!("Could not get spline points"); + } + } +} From 229beb031103e7109c4987f96ae9b06479c3d0dd Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Tue, 15 Apr 2025 15:42:49 +0530 Subject: [PATCH 2/7] Some refactoring --- editor/src/messages/tool/tool_messages/spline_tool.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index 8886e923de..05b9908846 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -537,8 +537,7 @@ fn delete_preview(tool_data: &mut SplineToolData, responses: &mut VecDeque Date: Wed, 16 Apr 2025 21:13:17 +0530 Subject: [PATCH 3/7] Feedback applied from James --- .../tool/tool_messages/spline_tool.rs | 216 ++++-------------- .../graph-craft/src/wasm_application_io.rs | 13 +- 2 files changed, 50 insertions(+), 179 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index 05b9908846..d8e4eccc96 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -552,6 +552,17 @@ mod test_spline_tool { Some(points) } + fn assert_points_match_expected(actual_points: &[DVec2], expected_points: &[DVec2]) { + assert!(actual_points.len() >= expected_points.len(), "Spline should have at least {} points", expected_points.len()); + + for (i, (point, expected)) in actual_points.iter().zip(expected_points.iter()).enumerate() { + assert!( + (*point - *expected).length() < 1e-10, + "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" + ); + } + } + #[tokio::test] async fn test_spline_with_zoomed_view() { let mut editor = EditorTestUtils::create(); @@ -563,44 +574,10 @@ mod test_spline_tool { // Selecting the spline tool editor.select_tool(ToolType::Spline).await; - // Initiate drawing a spline - editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(50.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - // Adding the second point - editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(100.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - // Adding the third point - editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(150.0, 100.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; + // Adding points by clicking at different positions + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(50.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(100.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(150.0, 100.0), ModifierKeys::empty()).await; // Finish the spline editor.handle_message(SplineToolMessage::Confirm).await; @@ -609,7 +586,7 @@ mod test_spline_tool { editor.eval_graph().await; if let Some(points) = get_spline_points(&mut editor).await { - assert!(points.len() >= 3, "Spline should have at least 3 points"); + assert!(points.len() == 3, "Spline should have at least 3 points"); // Calculating expected points in document coordinates let document = editor.active_document(); @@ -620,14 +597,7 @@ mod test_spline_tool { viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), ]; - - // Check each key point is close to the expected position - for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { - assert!( - (*point - *expected).length() < 1.0, - "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" - ); - } + assert_points_match_expected(&points, &expected_points); } else { panic!("Could not get spline points"); } @@ -642,47 +612,20 @@ mod test_spline_tool { editor.handle_message(NavigationMessage::CanvasPan { delta: pan_amount }).await; editor.select_tool(ToolType::Spline).await; - editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(50.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(100.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(150.0, 100.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; + + // Add points by clicking at different positions + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(50.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(100.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(150.0, 100.0), ModifierKeys::empty()).await; editor.handle_message(SplineToolMessage::Confirm).await; + + // Evaluating the graph to ensure everything is processed editor.eval_graph().await; if let Some(points) = get_spline_points(&mut editor).await { - assert!(points.len() >= 3, "Spline should have at least 3 points"); + assert!(points.len() == 3, "Spline should have at least 3 points"); + // Calculating expected points in document coordinates let document = editor.active_document(); let viewport_to_document = document.metadata().document_to_viewport.inverse(); let expected_points = vec![ @@ -690,12 +633,7 @@ mod test_spline_tool { viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), ]; - for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { - assert!( - (*point - *expected).length() < 1.0, - "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" - ); - } + assert_points_match_expected(&points, &expected_points); } else { panic!("Could not get spline points"); } @@ -706,51 +644,22 @@ mod test_spline_tool { let mut editor = EditorTestUtils::create(); editor.new_document().await; + // Tilt/rotate the viewport (45 degrees) editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 45.0_f64.to_radians() }).await; editor.select_tool(ToolType::Spline).await; - editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(50.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(100.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(150.0, 100.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(50.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(100.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(150.0, 100.0), ModifierKeys::empty()).await; editor.handle_message(SplineToolMessage::Confirm).await; + // Evaluating the graph to ensure everything is processed editor.eval_graph().await; if let Some(points) = get_spline_points(&mut editor).await { - assert!(points.len() >= 3, "Spline should have at least 3 points"); + assert!(points.len() == 3, "Spline should have at least 3 points"); + // Calculating expected points in document coordinates let document = editor.active_document(); let viewport_to_document = document.metadata().document_to_viewport.inverse(); let expected_points = vec![ @@ -758,12 +667,7 @@ mod test_spline_tool { viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), ]; - for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { - assert!( - (*point - *expected).length() < 1.0, - "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" - ); - } + assert_points_match_expected(&points, &expected_points); } else { panic!("Could not get spline points"); } @@ -774,53 +678,22 @@ mod test_spline_tool { let mut editor = EditorTestUtils::create(); editor.new_document().await; - // Multiple transformations + // Applying multiple transformations editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 1.5 }).await; editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100.0, 75.0) }).await; editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 30.0_f64.to_radians() }).await; editor.select_tool(ToolType::Spline).await; - editor.left_mousedown(50.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(50.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(100.0, 50.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(100.0, 50.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; - - editor.left_mousedown(150.0, 100.0, ModifierKeys::empty()).await; - editor - .mouseup( - EditorMouseState { - editor_position: DVec2::new(150.0, 100.0), - mouse_keys: MouseKeys::empty(), - scroll_delta: ScrollDelta::default(), - }, - ModifierKeys::empty(), - ) - .await; + + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(50.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(100.0, 50.0), ModifierKeys::empty()).await; + editor.click_tool(ToolType::Spline, MouseKeys::LEFT, DVec2::new(150.0, 100.0), ModifierKeys::empty()).await; editor.handle_message(SplineToolMessage::Confirm).await; editor.eval_graph().await; if let Some(points) = get_spline_points(&mut editor).await { - assert!(points.len() >= 3, "Spline should have at least 3 points"); + assert!(points.len() == 3, "Spline should have at least 3 points"); let document = editor.active_document(); let viewport_to_document = document.metadata().document_to_viewport.inverse(); let expected_points = vec![ @@ -828,12 +701,7 @@ mod test_spline_tool { viewport_to_document.transform_point2(DVec2::new(100.0, 50.0)), viewport_to_document.transform_point2(DVec2::new(150.0, 100.0)), ]; - for (i, (point, expected)) in points.iter().take(3).zip(expected_points.iter()).enumerate() { - assert!( - (*point - *expected).length() < 1.0, - "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" - ); - } + assert_points_match_expected(&points, &expected_points); } else { panic!("Could not get spline points"); } diff --git a/node-graph/graph-craft/src/wasm_application_io.rs b/node-graph/graph-craft/src/wasm_application_io.rs index 59a386b3d7..0ef7576559 100644 --- a/node-graph/graph-craft/src/wasm_application_io.rs +++ b/node-graph/graph-craft/src/wasm_application_io.rs @@ -208,14 +208,17 @@ impl ApplicationIo for WasmApplicationIo { fn create_window(&self) -> SurfaceHandle { log::trace!("Spawning window"); - #[cfg(not(test))] - use winit::platform::wayland::EventLoopBuilderExtWayland; + #[cfg(test)] + let event_loop = winit::event_loop::EventLoop::new().unwrap(); #[cfg(not(test))] - let event_loop = winit::event_loop::EventLoopBuilder::new().with_any_thread(true).build().unwrap(); + let event_loop = { + let mut builder = winit::event_loop::EventLoopBuilder::new(); + + // If we're building for production, try to build with standard features + builder.build().unwrap() + }; - #[cfg(test)] - let event_loop = winit::event_loop::EventLoop::new().unwrap(); let window = winit::window::WindowBuilder::new() .with_title("Graphite") .with_inner_size(winit::dpi::PhysicalSize::new(800, 600)) From b8b9848a3b3665844a1ece697c682bf5f74a152f Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Wed, 16 Apr 2025 21:15:15 +0530 Subject: [PATCH 4/7] Unnecessary changes --- node-graph/graph-craft/src/wasm_application_io.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/node-graph/graph-craft/src/wasm_application_io.rs b/node-graph/graph-craft/src/wasm_application_io.rs index 0ef7576559..59a386b3d7 100644 --- a/node-graph/graph-craft/src/wasm_application_io.rs +++ b/node-graph/graph-craft/src/wasm_application_io.rs @@ -208,17 +208,14 @@ impl ApplicationIo for WasmApplicationIo { fn create_window(&self) -> SurfaceHandle { log::trace!("Spawning window"); - #[cfg(test)] - let event_loop = winit::event_loop::EventLoop::new().unwrap(); - #[cfg(not(test))] - let event_loop = { - let mut builder = winit::event_loop::EventLoopBuilder::new(); + use winit::platform::wayland::EventLoopBuilderExtWayland; - // If we're building for production, try to build with standard features - builder.build().unwrap() - }; + #[cfg(not(test))] + let event_loop = winit::event_loop::EventLoopBuilder::new().with_any_thread(true).build().unwrap(); + #[cfg(test)] + let event_loop = winit::event_loop::EventLoop::new().unwrap(); let window = winit::window::WindowBuilder::new() .with_title("Graphite") .with_inner_size(winit::dpi::PhysicalSize::new(800, 600)) From 41710a607ab578356636448ace4dd62c3d997d12 Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Sat, 19 Apr 2025 14:11:29 +0530 Subject: [PATCH 5/7] refactor with current merged pr --- .../tool/tool_messages/spline_tool.rs | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index 5b631f8bdd..d53f043f5e 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -537,7 +537,6 @@ fn delete_preview(tool_data: &mut SplineToolData, responses: &mut VecDeque Option> { - let document = editor.active_document(); - let network_interface = &document.network_interface; - let layer = network_interface.selected_nodes().selected_visible_and_unlocked_layers(network_interface).next()?; - println!("Found layer: {:?}", layer); - let vector_data = network_interface.compute_modified_vector(layer)?; - let points: Vec = vector_data.point_domain.positions().iter().cloned().collect(); - println!("Found points: {:?}", points); - Some(points) - } - - fn assert_points_match_expected(actual_points: &[DVec2], expected_points: &[DVec2]) { - assert!(actual_points.len() >= expected_points.len(), "Spline should have at least {} points", expected_points.len()); - - for (i, (point, expected)) in actual_points.iter().zip(expected_points.iter()).enumerate() { - assert!( - (*point - *expected).length() < 1e-10, - "Point {i} should be close to expected position. Got: {point:?}, expected: {expected:?}" - ); - } - } #[tokio::test] async fn test_spline_with_zoomed_view() { From ccd5cf530e250e66cdb5da06c2fe494f705595e7 Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Sat, 19 Apr 2025 17:31:12 +0530 Subject: [PATCH 6/7] Code refactoring based on guidelines --- .../document/document_message_handler.rs | 18 +++--- .../messages/tool/tool_messages/line_tool.rs | 26 ++++---- .../transform_layer_message_handler.rs | 60 +++++++++---------- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 58aac795ab..5fc0138c72 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -2800,7 +2800,7 @@ mod document_message_handler_tests { let document = editor.active_document(); for layer in document.metadata().all_layers() { if let Some(bbox) = document.metadata().bounding_box_viewport(layer) { - if (bbox[0].x - min_x).abs() < 1.0 && (bbox[0].y - min_y).abs() < 1.0 { + if (bbox[0].x - min_x).abs() < 1. && (bbox[0].y - min_y).abs() < 1. { return Some(layer); } } @@ -2814,8 +2814,8 @@ mod document_message_handler_tests { parent.children(document.metadata()).position(|child| child == layer) } - let layer_middle = get_layer_by_bounds(&mut editor, 50.0, 50.0).await.unwrap(); - let layer_top = get_layer_by_bounds(&mut editor, 100.0, 100.0).await.unwrap(); + let layer_middle = get_layer_by_bounds(&mut editor, 50., 50.).await.unwrap(); + let layer_top = get_layer_by_bounds(&mut editor, 100., 100.).await.unwrap(); let initial_index_top = get_layer_index(&mut editor, layer_top).await.unwrap(); let initial_index_middle = get_layer_index(&mut editor, layer_middle).await.unwrap(); @@ -2915,7 +2915,7 @@ mod document_message_handler_tests { // Applying transform to folder1 (translation) editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![folder1.to_node()] }).await; editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(100.0, 50.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(100., 50., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -2927,7 +2927,7 @@ mod document_message_handler_tests { // Applying different transform to folder2 (translation) editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![folder2.to_node()] }).await; editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(200.0, 100.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(200., 100., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -2946,7 +2946,7 @@ mod document_message_handler_tests { editor.handle_message(DocumentMessage::MoveSelectedLayersTo { parent: folder1, insert_index: 0 }).await; editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(50.0, 25.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(50., 25., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -2967,10 +2967,10 @@ mod document_message_handler_tests { let rect_bbox_after = document.metadata().bounding_box_viewport(rect_layer).unwrap(); // Verifing the rectangle maintains approximately the same position in viewport space - let before_center = (rect_bbox_before[0] + rect_bbox_before[1]) / 2.0; - let after_center = (rect_bbox_after[0] + rect_bbox_after[1]) / 2.0; + let before_center = (rect_bbox_before[0] + rect_bbox_before[1]) / 2.; + let after_center = (rect_bbox_after[0] + rect_bbox_after[1]) / 2.; let distance = before_center.distance(after_center); - assert!(distance < 1.0, "Rectangle should maintain its viewport position after moving between transformed groups"); + assert!(distance < 1., "Rectangle should maintain its viewport position after moving between transformed groups"); } } diff --git a/editor/src/messages/tool/tool_messages/line_tool.rs b/editor/src/messages/tool/tool_messages/line_tool.rs index 7e8fa5be97..2895df62cb 100644 --- a/editor/src/messages/tool/tool_messages/line_tool.rs +++ b/editor/src/messages/tool/tool_messages/line_tool.rs @@ -460,8 +460,8 @@ mod test_line_tool { if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { match (start_input, end_input) { (start_input, end_input) => { - assert!((start_input - DVec2::ZERO).length() < 1.0, "Start point should be near (0,0)"); - assert!((end_input - DVec2::new(100.0, 100.0)).length() < 1.0, "End point should be near (100,100)"); + assert!((start_input - DVec2::ZERO).length() < 1., "Start point should be near (0,0)"); + assert!((end_input - DVec2::new(100., 100.)).length() < 1., "End point should be near (100,100)"); } } } @@ -471,9 +471,9 @@ mod test_line_tool { async fn test_line_tool_with_transformed_viewport() { let mut editor = EditorTestUtils::create(); editor.new_document().await; - editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 2.0 }).await; - editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100.0, 50.0) }).await; - editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 30.0_f64.to_radians() }).await; + editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 2. }).await; + editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100., 50.) }).await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: (30. as f64).to_radians() }).await; editor.drag_tool(ToolType::Line, 0., 0., 100., 100., ModifierKeys::empty()).await; if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { let document = editor.active_document(); @@ -481,16 +481,16 @@ mod test_line_tool { let viewport_to_document = document_to_viewport.inverse(); let expected_start = viewport_to_document.transform_point2(DVec2::ZERO); - let expected_end = viewport_to_document.transform_point2(DVec2::new(100.0, 100.0)); + let expected_end = viewport_to_document.transform_point2(DVec2::new(100., 100.)); assert!( - (start_input - expected_start).length() < 1.0, + (start_input - expected_start).length() < 1., "Start point should match expected document coordinates. Got {:?}, expected {:?}", start_input, expected_start ); assert!( - (end_input - expected_end).length() < 1.0, + (end_input - expected_end).length() < 1., "End point should match expected document coordinates. Got {:?}, expected {:?}", end_input, expected_end @@ -517,7 +517,7 @@ mod test_line_tool { let updated_line_vec = updated_end - updated_start; let updated_angle = updated_line_vec.angle_to(DVec2::X); assert!((original_angle - updated_angle).abs() < 0.1, "Line angle should be locked when Ctrl is kept pressed"); - assert!((updated_start - updated_end).length() > 1.0, "Line should be able to change length when Ctrl is kept pressed"); + assert!((updated_start - updated_end).length() > 1., "Line should be able to change length when Ctrl is kept pressed"); } } } @@ -536,8 +536,8 @@ mod test_line_tool { (start_input, end_input) => { let expected_start = DVec2::new(0., 100.); let expected_end = DVec2::new(200., 100.); - assert!((start_input - expected_start).length() < 1.0, "start point should be near (0,100)"); - assert!((end_input - expected_end).length() < 1.0, "end point should be near (200,100)"); + assert!((start_input - expected_start).length() < 1., "start point should be near (0,100)"); + assert!((end_input - expected_end).length() < 1., "end point should be near (200,100)"); } } } @@ -554,9 +554,9 @@ mod test_line_tool { let line_vec = end_input - start_input; let angle_radians = line_vec.angle_to(DVec2::X); let angle_degrees = angle_radians.to_degrees(); - let nearest_angle = (angle_degrees / 15.0).round() * 15.0; + let nearest_angle = (angle_degrees / 15.).round() * 15.; - assert!((angle_degrees - nearest_angle).abs() < 1.0, "Angle should snap to the nearest 15 degrees"); + assert!((angle_degrees - nearest_angle).abs() < 1., "Angle should snap to the nearest 15 degrees"); } } } diff --git a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs index 30f1c239e1..7cfb6e7074 100644 --- a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs +++ b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs @@ -745,7 +745,7 @@ mod test_transform_layer { editor.handle_message(TransformLayerMessage::BeginGrab).await; - let translation = DVec2::new(50.0, 50.0); + let translation = DVec2::new(50., 50.); editor.move_mouse(translation.x, translation.y, ModifierKeys::empty(), MouseKeys::NONE).await; editor @@ -760,7 +760,7 @@ mod test_transform_layer { let final_transform = get_layer_transform(&mut editor, layer).await.unwrap(); let translation_diff = (final_transform.translation - original_transform.translation).length(); - assert!(translation_diff > 10.0, "Transform should have changed after applying transformation. Diff: {}", translation_diff); + assert!(translation_diff > 10., "Transform should have changed after applying transformation. Diff: {}", translation_diff); } #[tokio::test] @@ -774,7 +774,7 @@ mod test_transform_layer { let original_transform = get_layer_transform(&mut editor, layer).await.expect("Should be able to get the layer transform"); editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(50.0, 50.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(50., 50., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -794,7 +794,7 @@ mod test_transform_layer { // Verify transform is either restored to original OR reset to identity assert!( - (final_translation - original_translation).length() < 5.0 || final_translation.length() < 0.001, + (final_translation - original_translation).length() < 5. || final_translation.length() < 0.001, "Transform neither restored to original nor reset to identity. Original: {:?}, Final: {:?}", original_translation, final_translation @@ -814,7 +814,7 @@ mod test_transform_layer { editor.handle_message(TransformLayerMessage::BeginRotate).await; - editor.move_mouse(150.0, 50.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(150., 50., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { @@ -852,7 +852,7 @@ mod test_transform_layer { assert!(!after_cancel.translation.y.is_nan(), "Transform is NaN after cancel"); let translation_diff = (after_cancel.translation - original_transform.translation).length(); - assert!(translation_diff < 1.0, "Translation component changed too much: {}", translation_diff); + assert!(translation_diff < 1., "Translation component changed too much: {}", translation_diff); } #[tokio::test] @@ -868,7 +868,7 @@ mod test_transform_layer { editor.handle_message(TransformLayerMessage::BeginScale).await; - editor.move_mouse(150.0, 150.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(150., 150., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { @@ -918,7 +918,7 @@ mod test_transform_layer { // Also check translation component is similar let translation_diff = (after_cancel.translation - original_transform.translation).length(); - assert!(translation_diff < 1.0, "Translation component changed too much: {}", translation_diff); + assert!(translation_diff < 1., "Translation component changed too much: {}", translation_diff); } #[tokio::test] @@ -932,7 +932,7 @@ mod test_transform_layer { let original_transform = get_layer_transform(&mut editor, layer).await.unwrap(); editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(150.0, 130.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(150., 130., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -941,7 +941,7 @@ mod test_transform_layer { .await; let after_grab_transform = get_layer_transform(&mut editor, layer).await.unwrap(); - let expected_translation = DVec2::new(50.0, 30.0); + let expected_translation = DVec2::new(50., 30.); let actual_translation = after_grab_transform.translation - original_transform.translation; assert!( (actual_translation - expected_translation).length() < 1e-5, @@ -952,7 +952,7 @@ mod test_transform_layer { // 2. Chain to rotation - from current position to create ~45 degree rotation editor.handle_message(TransformLayerMessage::BeginRotate).await; - editor.move_mouse(190.0, 90.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(190., 90., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -970,7 +970,7 @@ mod test_transform_layer { // 3. Chain to scaling - scale(area) up by 2x editor.handle_message(TransformLayerMessage::BeginScale).await; - editor.move_mouse(250.0, 200.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(250., 200., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -982,7 +982,7 @@ mod test_transform_layer { let before_scale_det = after_rotate_transform.matrix2.determinant(); let after_scale_det = after_scale_transform.matrix2.determinant(); assert!( - after_scale_det >= 2.0 * before_scale_det, + after_scale_det >= 2. * before_scale_det, "Scale should increase the determinant of the matrix (before: {}, after: {})", before_scale_det, after_scale_det @@ -1005,7 +1005,7 @@ mod test_transform_layer { let original_transform = get_layer_transform(&mut editor, layer).await.unwrap(); - let pan_amount = DVec2::new(200.0, 150.0); + let pan_amount = DVec2::new(200., 150.); editor.handle_message(NavigationMessage::CanvasPan { delta: pan_amount }).await; editor.handle_message(TransformLayerMessage::BeginScale).await; @@ -1017,8 +1017,8 @@ mod test_transform_layer { let scale_x = final_transform.matrix2.x_axis.length() / original_transform.matrix2.x_axis.length(); let scale_y = final_transform.matrix2.y_axis.length() / original_transform.matrix2.y_axis.length(); - assert!((scale_x - 2.0).abs() < 0.1, "Expected scale factor X of 2.0, got: {}", scale_x); - assert!((scale_y - 2.0).abs() < 0.1, "Expected scale factor Y of 2.0, got: {}", scale_y); + assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2.0, got: {}", scale_x); + assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2.0, got: {}", scale_y); } #[tokio::test] @@ -1043,8 +1043,8 @@ mod test_transform_layer { let scale_x = final_transform.matrix2.x_axis.length() / original_transform.matrix2.x_axis.length(); let scale_y = final_transform.matrix2.y_axis.length() / original_transform.matrix2.y_axis.length(); - assert!((scale_x - 2.0).abs() < 0.1, "Expected scale factor X of 2.0, got: {}", scale_x); - assert!((scale_y - 2.0).abs() < 0.1, "Expected scale factor Y of 2.0, got: {}", scale_y); + assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2.0, got: {}", scale_x); + assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2.0, got: {}", scale_y); } #[tokio::test] @@ -1059,7 +1059,7 @@ mod test_transform_layer { // Rotate the document view (45 degrees) editor.handle_message(NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }).await; - editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 45.0_f64.to_radians() }).await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: (45. as f64).to_radians() }).await; editor.handle_message(TransformLayerMessage::BeginRotate).await; editor.handle_message(TransformLayerMessage::TypeDigit { digit: 9 }).await; @@ -1073,8 +1073,8 @@ mod test_transform_layer { let angle_change = (final_angle - original_angle).to_degrees(); // Normalize angle between 0 and 360 - let angle_change = ((angle_change % 360.0) + 360.0) % 360.0; - assert!((angle_change - 90.0).abs() < 0.1, "Expected rotation of 90 degrees, got: {}", angle_change); + let angle_change = ((angle_change % 360.) + 360.) % 360.; + assert!((angle_change - 90.).abs() < 0.1, "Expected rotation of 90 degrees, got: {}", angle_change); } #[tokio::test] @@ -1088,14 +1088,14 @@ mod test_transform_layer { let point_id = PointId::generate(); let modification_type = VectorModificationType::InsertPoint { id: point_id, - position: DVec2::new(100.0, 100.0), + position: DVec2::new(100., 100.), }; editor.handle_message(GraphOperationMessage::Vector { layer, modification_type }).await; editor.handle_message(ToolMessage::ActivateTool { tool_type: ToolType::Select }).await; // Testing grab operation - just checking that it doesn't crash. editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(150.0, 150.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(150., 150., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -1131,8 +1131,8 @@ mod test_transform_layer { let scale_y = near_zero_transform.matrix2.y_axis.length(); assert!(scale_x < 0.001, "Scale factor X should be near zero, got: {}", scale_x); assert!(scale_y < 0.001, "Scale factor Y should be near zero, got: {}", scale_y); - assert!(scale_x > 0.0, "Scale factor X should not be exactly zero"); - assert!(scale_y > 0.0, "Scale factor Y should not be exactly zero"); + assert!(scale_x > 0., "Scale factor X should not be exactly zero"); + assert!(scale_y > 0., "Scale factor Y should not be exactly zero"); editor.handle_message(TransformLayerMessage::BeginScale).await; editor.handle_message(TransformLayerMessage::TypeDigit { digit: 2 }).await; @@ -1143,8 +1143,8 @@ mod test_transform_layer { let new_scale_x = final_transform.matrix2.x_axis.length(); let new_scale_y = final_transform.matrix2.y_axis.length(); - assert!(new_scale_x > 0.0, "After rescaling, scale factor X should be non-zero"); - assert!(new_scale_y > 0.0, "After rescaling, scale factor Y should be non-zero"); + assert!(new_scale_x > 0., "After rescaling, scale factor X should be non-zero"); + assert!(new_scale_y > 0., "After rescaling, scale factor Y should be non-zero"); } #[tokio::test] @@ -1180,7 +1180,7 @@ mod test_transform_layer { editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![layers[0].to_node()] }).await; let original_transform = get_layer_transform(&mut editor, layers[0]).await.unwrap(); editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(50.0, 50.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(50., 50., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -1200,7 +1200,7 @@ mod test_transform_layer { let original_transform_1 = get_layer_transform(&mut editor, layers[0]).await.unwrap(); let original_transform_2 = get_layer_transform(&mut editor, layers[1]).await.unwrap(); editor.handle_message(TransformLayerMessage::BeginRotate).await; - editor.move_mouse(200.0, 50.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(200., 50., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, @@ -1244,7 +1244,7 @@ mod test_transform_layer { .await; let original_child_transform = get_layer_transform(&mut editor, child_layer_id).await.unwrap(); editor.handle_message(TransformLayerMessage::BeginGrab).await; - editor.move_mouse(30.0, 30.0, ModifierKeys::empty(), MouseKeys::NONE).await; + editor.move_mouse(30., 30., ModifierKeys::empty(), MouseKeys::NONE).await; editor .handle_message(TransformLayerMessage::PointerMove { slow_key: Key::Shift, From c653e7ed589ef14c4f6835f16ae56345bb8a00c9 Mon Sep 17 00:00:00 2001 From: Rahat2134 Date: Sat, 19 Apr 2025 18:07:01 +0530 Subject: [PATCH 7/7] cli failing --- editor/src/messages/tool/tool_messages/line_tool.rs | 6 +++++- .../tool/transform_layer/transform_layer_message_handler.rs | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/line_tool.rs b/editor/src/messages/tool/tool_messages/line_tool.rs index 2895df62cb..42cd874732 100644 --- a/editor/src/messages/tool/tool_messages/line_tool.rs +++ b/editor/src/messages/tool/tool_messages/line_tool.rs @@ -473,7 +473,11 @@ mod test_line_tool { editor.new_document().await; editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 2. }).await; editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100., 50.) }).await; - editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: (30. as f64).to_radians() }).await; + editor + .handle_message(NavigationMessage::CanvasTiltSet { + angle_radians: (30. as f64).to_radians(), + }) + .await; editor.drag_tool(ToolType::Line, 0., 0., 100., 100., ModifierKeys::empty()).await; if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { let document = editor.active_document(); diff --git a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs index 7cfb6e7074..ec4b58fb3a 100644 --- a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs +++ b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs @@ -1059,7 +1059,11 @@ mod test_transform_layer { // Rotate the document view (45 degrees) editor.handle_message(NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }).await; - editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: (45. as f64).to_radians() }).await; + editor + .handle_message(NavigationMessage::CanvasTiltSet { + angle_radians: (45. as f64).to_radians(), + }) + .await; editor.handle_message(TransformLayerMessage::BeginRotate).await; editor.handle_message(TransformLayerMessage::TypeDigit { digit: 9 }).await;