You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Geological map: units from contacts and label points (whole body) #843
Geological mapping in PRo3D, following the contacts-and-points method (as in the QGIS plugin Mappy): the geologist draws contacts (polylines) and places label points carrying a geological unit; PRo3D derives the units (polygons with holes) from them, fills them on the terrain, and exports them. Refining a map means drawing another contact across a unit - no polygon editing, shared boundaries are traced once.
Decisions so far
Source: one annotation group per map; its polylines are contacts, its points labels. Unit code in a new dedicated annotation field (geoUnit, new scene key).
GeologicalMap scene object: source group, unit table (code -> name, colour, description). Derived units are not persisted, regenerated on load.
Whole-body maps (Dimorphos first): faces are found with local operations only - intersections between contact segments, angular order of edges at each node in its tangent plane, label point -> nearest contact + side - and traced in a half-edge structure on the surface. No global chart, no pole/date-line problems, no NetTopologySuite in the core.
Activity
haraldsteinlechner commentedon Oct 13, 2026
Plan: docs/dev/GeologicalMap-plan.md on branch
features/843_geological-map(stacked on #842).docs(#843): plan - immutable map, UX decisions
feat(#843): topology core - map faces from contacts on the whole body
feat(#843): geological maps, step 1 - see a map
feat(#843): geological maps, step 1 - see a map
feat(#843): geological maps, step 2 - the Assign unit tool
feat(#843): snapping contacts, problem list, open-end markers
feat(#843): unit codes written inside the units
feat(#843): split preview while drawing a contact
fix(#843): Geological Maps panel in the dark theme - inverted segment…
fix(#843): review findings - robustness of topology, volumes, JSON an…
feat(#843): snapping feedback under the cursor; ellipses are contacts
docs(#843): geological map story - from an empty group to a checked m…
docs(#843): story - a crater as a unit inside a unit, connecting line…
docs(#843): the story is a made-up example - say so up front
docs(#843): story with neutral units A-E, tightened text
docs(#843): story text - neutral, tightened
docs(#843): handover; docs current - cursor snapping, ellipses as con…
test(#843): story video - full UI, pointer and captions, waits cut
test(#843): story video pacing - waits cut, captions and results hold
fix(#843): a Sky polygon's closing edge is sampled onto the surface
feat(#843): geological maps are experimental - the panel opens behind…
feat(#843): warn when a contact is drawn with Linear projection
fix(#843): importing annotations keeps their maps; units only for the…
docs(#843): Limitations in the user doc, all open gaps in one list
fix(#843): self-review - closing edge by endpoints, import ids, one gate