Merge pull request #1352 from ramox81/codex/symmetric-constraint-parity

Complete Symmetric constraint behavior
This commit is contained in:
Hakan Seven committed 2026-09-18 18:52:41 +03:00
commit da02e38208
11 files changed
+755 -68

No files matched your search

+19
View File
@@ -1324,6 +1324,18 @@ pub enum HorizontalConstraintSelection {
Points(CoincidentPick, CoincidentPick),
}
/// The two input forms accepted by the Symmetric geometric constraint.
/// Object picks retain their curve or segment references; point picks are
/// resolved by the host against the live document.
#[derive(Clone, Copy, Debug)]
pub enum SymmetricConstraintSelection {
Objects(
crate::scene::parametric_constraints::ParametricRef,
crate::scene::parametric_constraints::ParametricRef,
),
Points(CoincidentPick, CoincidentPick),
}
/// Construction options shared by SWEEP creation and its live preview.
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct SweepOptions {
@@ -1578,6 +1590,13 @@ pub enum CmdResult {
direction: acadrust::types::Vector3,
label: &'static str,
},
/// Adds a point or object symmetry relation around a picked line. The
/// first reference and axis remain fixed during initial placement.
AddSymmetricConstraint {
selection: SymmetricConstraintSelection,
axis: crate::scene::parametric_constraints::ParametricRef,
label: &'static str,
},
/// Adds an ordered perpendicular relation. The first picked direction and
/// the second direction's start point stay fixed during the initial solve;
/// those temporary anchors are not persisted as geometric constraints.