From d9f3d713423b851f054d76520205ba25eef214b0 Mon Sep 17 00:00:00 2001 From: ramox81 <184937705+ramox81@users.noreply.github.com> Date: Thu, 17 Sep 2026 16:21:39 +0300 Subject: [PATCH] Fix Concentric build integration --- src/modules/parametric/concentric.rs | 4 ++-- src/modules/parametric/mod.rs | 6 +++--- src/scene/parametric_constraints.rs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/parametric/concentric.rs b/src/modules/parametric/concentric.rs index 4af2eaa1e..68bbb508f 100644 --- a/src/modules/parametric/concentric.rs +++ b/src/modules/parametric/concentric.rs @@ -55,8 +55,8 @@ impl ConcentricConstraintCommand { let planar = crate::entities::curve::entity_curve(entity)?; let local = planar.plane.project(point.to_array())?; let segments = planar.curve.segments(); - let (index, segment) = cadkernel::geom2d::nearest_of(segments.iter(), local)?; - matches!(segment, cadkernel::geom2d::Curve::Arc(_)) + let (index, _) = cadkernel::geom2d::nearest_of(segments.iter(), local)?; + matches!(segments.get(index), Some(cadkernel::geom2d::Curve::Arc(_))) .then(|| ParametricRef::segment_center(handle, index)) } _ => None, diff --git a/src/modules/parametric/mod.rs b/src/modules/parametric/mod.rs index e464c892f..4b2a725ea 100644 --- a/src/modules/parametric/mod.rs +++ b/src/modules/parametric/mod.rs @@ -23,8 +23,8 @@ pub use point_on_entity::{ }; pub use tangent_command::TangentConstraintCommand; pub use tools::{ - colinear, concentric, equal, fixed, horizontal, normal, parallel, perpendicular, symmetric, - tangent, vertical, + colinear, concentric as concentric_tool, equal, fixed, horizontal, normal, parallel, + perpendicular, symmetric, tangent, vertical, }; pub use value::{ angle_tool, dimensional_tools, distance_tool, AngleConstraintCommand, @@ -67,7 +67,7 @@ impl CadModule for ParametricModule { "SMOOTHCONSTRAINT", "Smooth", include_bytes!("../../../assets/icons/constrain/smooth.svg"), )), - RibbonItem::LargeTool(concentric::tool()), + RibbonItem::LargeTool(concentric_tool::tool()), RibbonItem::LargeTool(horizontal::tool()), RibbonItem::LargeTool(symmetric::tool()), RibbonItem::LargeTool(fixed::tool()), diff --git a/src/scene/parametric_constraints.rs b/src/scene/parametric_constraints.rs index 87d0eaa31..7132b34fa 100644 --- a/src/scene/parametric_constraints.rs +++ b/src/scene/parametric_constraints.rs @@ -837,11 +837,11 @@ fn glyph_placement_for_reference( if let Some(segment) = r.segment_center_index() { let planar = crate::entities::curve::entity_curve(entity)?; let curve = planar.curve.segments().into_iter().nth(segment)?; + let on_arc = planar.plane.point_at(curve.point_at(0.5)); let cadkernel::geom2d::Curve::Arc(arc) = curve else { return None; }; let center = planar.plane.point_at(arc.centre); - let on_arc = planar.plane.point_at(arc.point_at(0.5)); let center = Vector3::new(center[0], center[1], center[2]); let on_arc = Vector3::new(on_arc[0], on_arc[1], on_arc[2]); return Some((on_arc, on_arc - center));