forked from 1b-agent/opencadstudio-upstream
feat(snap): independent 3D object-snap system with six modes
Grid snap locks to SNAPUNIT instead of magnetizing; snapped 3D points keep elevation instead of flattening to z=0. New SnapTypes Vertex/EdgeMidpoint/FaceCenter/Knot/FacePerpendicular/NearestFace with their own F4 master toggle and mode set, tiers, and markers, fully independent of the 2D master. Solid B-rep corners/edge-midpoints/face-centers from mesh edges and kernel faces, spline knot points, and live perpendicular/nearest-to-face on mesh triangles merged priority-aware in move/click paths. Drafting Settings 3D Object Snap tab is fully live (was dead placeholders); Nearest-to-face off by default. TDD: behavioral LINE-to-solid tests plus engine/scene unit tests.
This commit is contained in:
1 parent
d894b8eb05
commit
ca0ee37d26
16 files changed
+1728
-67
No files matched your search
@@ -22,6 +22,18 @@ pub enum SnapHint {
|
||||
/// arc's two ends would also produce a midpoint snap out on the chord,
|
||||
/// which is not on the geometry.
|
||||
Endpoint,
|
||||
/// B-rep corner of a 3D solid. Maps to the separate 3D snap system
|
||||
/// (`SnapType::Vertex`), never to the 2D modes.
|
||||
Vertex,
|
||||
/// Centre of a 3D solid B-rep edge. Maps to the separate 3D snap system
|
||||
/// (`SnapType::EdgeMidpoint`), never to the 2D modes.
|
||||
EdgeMidpoint,
|
||||
/// Centre of a 3D solid B-rep face. Maps to the separate 3D snap system
|
||||
/// (`SnapType::FaceCenter`), never to the 2D modes.
|
||||
FaceCenter,
|
||||
/// NURBS knot location on a spline entity. Maps to the separate 3D snap
|
||||
/// system (`SnapType::Knot`), never to the 2D modes.
|
||||
Knot,
|
||||
}
|
||||
|
||||
/// Geometric primitive used by the tangent-snap engine.
|
||||
|
||||
Reference in new issue
Block a user