forked from 1b-agent/opencadstudio-upstream
Merge pull request #1332 from ramox81/codex/concentric-constraint-parity
# Conflicts: # src/entities/arc.rs # src/entities/ellipse.rs # src/modules/parametric/mod.rs # src/scene/parametric_solve.rs # src/ui/overlay.rs
This commit is contained in:
commit
16c417f81d
17 files changed
+692
-52
No files matched your search
@@ -454,11 +454,17 @@ impl<'a> GroupBuilder<'a> {
|
||||
return Some(*existing);
|
||||
}
|
||||
let segment_midpoint = ParametricRef::point(handle, marker).segment_midpoint_index();
|
||||
let segment_center = ParametricRef::point(handle, marker).segment_center_index();
|
||||
let polyline = matches!(
|
||||
self.document.get_entity(handle),
|
||||
Some(EntityType::LwPolyline(_) | EntityType::Polyline2D(_))
|
||||
);
|
||||
let (curve_id, point_type) = if let Some(segment) = segment_midpoint {
|
||||
let (curve_id, point_type) = if let Some(segment) = segment_center {
|
||||
(
|
||||
self.segment_node(handle, segment)?,
|
||||
implicit_point_type::CENTER,
|
||||
)
|
||||
} else if let Some(segment) = segment_midpoint {
|
||||
(
|
||||
self.segment_node(handle, segment)?,
|
||||
implicit_point_type::MID,
|
||||
@@ -551,6 +557,9 @@ impl<'a> GroupBuilder<'a> {
|
||||
if r.segment_midpoint_index().is_some() {
|
||||
return self.point_node(r.entity, r.marker?);
|
||||
}
|
||||
if r.segment_center_index().is_some() {
|
||||
return self.point_node(r.entity, r.marker?);
|
||||
}
|
||||
if let Some(segment) = r.segment_index() {
|
||||
return self.segment_node(r.entity, segment);
|
||||
}
|
||||
@@ -2079,6 +2088,9 @@ pub(super) fn native_constraint_set(
|
||||
implicit_point_type::MID => {
|
||||
ParametricRef::segment_midpoint(curve.entity, segment)
|
||||
}
|
||||
implicit_point_type::CENTER => {
|
||||
ParametricRef::segment_center(curve.entity, segment)
|
||||
}
|
||||
_ => continue,
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user