File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -107,10 +107,15 @@ The core operates on `manifold::Polygons`, which cannot encode isolated
107107one-dimensional features. Output is therefore regularized: zero-area loops,
108108collapsed edges, and cancelled opposing sub-edges are dropped.
109109
110- Segment crossings are decided over a positive-width shared projection interval.
111- Orthogonal-coordinate ties within epsilon are treated as symbolic ties, not raw
112- CCW fallbacks. The current tie policy first uses canonical segment geometry, then
113- falls back to stable edge ID for geometrically identical ties.
110+ Whether two segments cross is a sign decision: a crossing exists where each
111+ strictly straddles the other over a positive-width shared projection interval,
112+ with no epsilon band on nearness to an endpoint. A crossing that lands within
113+ epsilon of an endpoint is kept and snapped to that endpoint at insertion, not
114+ rejected. Orthogonal-coordinate ties within epsilon are treated as symbolic
115+ ties, not raw CCW fallbacks: the tie policy first uses canonical segment
116+ geometry, then falls back to stable edge ID for geometrically identical ties.
117+ Splitting an edge at a vertex that lies on it stays an epsilon (bounded-distance)
118+ decision, distinct from this sign-based crossing test.
114119
115120Callers may pass an explicit epsilon. A non-positive epsilon asks the core to
116121infer an operation scale and apply the local floating-point budget used by the
You can’t perform that action at this time.
0 commit comments