Bezier flattening — subdivide cubic and quadratic segments into polyline
approximations within a flatness tolerance. Used by hit-testing and
(eventually) any kernel that doesn't want to special-case curves.
The flatness metric is the maximum perpendicular distance from any
control point to the chord between endpoints. When that distance falls
below tolerance, the segment is "flat enough" and emitted as a single
line segment.
Tolerance is in world units. 0.5 is a sensible default for screen-rate
rendering at 1× zoom; consumers that zoom in heavily should pass a
tighter tolerance.
Bezier flattening — subdivide cubic and quadratic segments into polyline approximations within a flatness tolerance. Used by hit-testing and (eventually) any kernel that doesn't want to special-case curves.
The flatness metric is the maximum perpendicular distance from any control point to the chord between endpoints. When that distance falls below
tolerance, the segment is "flat enough" and emitted as a single line segment.Tolerance is in world units. 0.5 is a sensible default for screen-rate rendering at 1× zoom; consumers that zoom in heavily should pass a tighter tolerance.