Anchors as the common geometric reference

Anchors abstract a point/reference derived from free world coordinates, mesh vertices/edges/faces, object-local points/axes/centers, exact B-Rep subshapes or explicit lines. Position, normal and tangent queries resolve dynamically where meaningful. This lets selection, measurement, annotation, constraints and gizmos share one geometry-reference layer.

Markers

Markers may be scene-owned or view-local and resolve an anchor every render. Marker styles choose point/cross/normal/tangent presentation, visibility, highlight, color, size and line width. They are separate display props, not geometry edits.

Measurements

Measurements cover distance and axis deltas, three-point angle, distance-on-plane, point-line, point-plane, line-line angle, line-plane angle, plane-plane angle and point-to-mesh-surface distance. Extended measurement descriptors supply up to four anchors, planes and an optional surface mesh. The result carries a numeric value plus whether a source unit was asserted; CORE does not infer physical units from coordinates.

Constraints

Constraints reuse anchors/planes/objects and return explicit status: satisfied, violated, underdetermined, overconstrained or unsupported. Basic constraints include fixed, coincident, distance and point-on-plane. Extended constraints add line angles/parallel/perpendicular, point-on-line, point-on-surface and aligned axes.

System solving

gx3de_constraint_system_solve solves a set transactionally and reports counts, passes and maximum residual. Object-gizmo updates invoke the constraint system for constraints referencing the dragged object. Unsatisfied/overconstrained/unsupported systems roll back instead of leaving a partially mutated scene.

Three-point rigid alignment

gx3de_object_align_three_points maps three congruent, non-collinear moving anchors onto three target anchors as a rigid transform. Noncongruent or degenerate point sets are rejected and the original transform is preserved on failure.

Units

Geometry is numerically unitless
The Native 3D C ABI operates on numeric coordinates and does not infer a physical unit. Higher GX-TXT Dataset/model metadata is responsible for declaring units and semantic meaning. Measurement unit_known only tells the consumer whether a source unit was asserted; it does not synthesize one.