Files
osmWorkflow/.trellis/tasks/archive/2026-08/08-17-native-lane-separator-styles/prd.md

1.8 KiB

Native lane separator style overrides

Goal

Make native same-direction lane separators selectable and persistently editable in Road Workbench, using the style override pattern proven for centre lines.

Confirmed Facts

  • compileLaneMarkings() writes one continuous 0.12m Polygon separator between each adjacent lane pair, identified by road_id, left_lane_index and right_lane_index.
  • Lane separators currently have fixed light marking material and are displayed together with turn arrows in Workbench.
  • native-road-overrides.json already supports validated, persistent centre line styles by logical native segment. The new type must not alter road-edge, curb or sidewalk geometry.

Initial Requirements

  • Selecting a lane separator must show its lane-pair source and a Chinese style editor.
  • The first style catalog should mirror centre lines: white/yellow and dashed/solid.
  • The effective style must be generated into GeoJSON, visible in Workbench, and consumed by native Blender/Cesium.
  • Default output must remain the current white dashed-style separator.

Out Of Scope

  • Road-edge lines, curbs, sidewalks, double lines, partial ranges, lane-specific legal restrictions and osm2streets layers.

Key Decision

Each override applies only to the selected adjacent lane pair. This preserves separate marking semantics on roads with three or more lanes.

Acceptance Criteria

  • Selecting a separator exposes a Chinese style editor for its adjacent lane pair; choosing a style stages it automatically.
  • Save and regeneration preserve the per-pair style across reloads while unedited separators retain the default.
  • GeoJSON, Workbench, Blender and Cesium show the same effective style.
  • Tests cover validation, defaults, per-pair isolation, automatic staging and native scene consumption.