1.2 KiB
Design
The compiler owns marking semantics. center-line-style remains segment
scoped because a bidirectional road segment shares one centre-line decision.
edge-line-style is scoped to { roadId, side }, since a directional
carriageway has independently editable left and right outside edges.
double: true is valid only with yellow solid centre lines. Generation emits
two 0.32m-separated parallel polygons for each normal solid mark, preserving
junction cutback and crosswalk/stop-line clearance. This keeps the existing
solid line implementation and avoids a separate geometry pipeline.
Road edge lines use the existing road-edge offset geometry. A solid style is
one continuous buffered offset line; a dashed style uses deterministic 2m
marks at 4m spacing. Both carry effective_style, source IDs, side, and
native provenance.
The Workbench uses one marking form with an explicit selected target type. Only a centre-line target exposes the double-yellow option; lane separators and edge lines retain the ordinary colour/pattern choices. Staged changes pass through the existing save and regenerate flow, so browser, compiler and Blender read the same persisted override.