Summary
Introduce a small, reusable colormap facility in the shared map library
(camp::map::ColorMap) so scalar fields render through a selectable set of
named colormaps instead of per-subsystem hardcoded ramps.
Motivation
The camp2 map-system port (#59) drops camp's hardcoded grid_map "speed"
colormap (a situational green/red ramp) in favor of camp2's generic grayscale
auto-range default. Rather than reintroduce another one-off ramp, we want a
generic colormap component usable across camp's scalar-field renderers.
Today the same value→color pattern is reimplemented per subsystem:
Both are natural consumers of one shared facility.
Scope
camp::map::ColorMap in libcamp_map: a named lookup (grayscale,
plus a few perceptually reasonable ramps, e.g. viridis, turbo) mapping a
value + range → QColor, with optional fixed or auto range.
- Per-layer colormap selection in the layer tree (which colormap + range a
grid_map / scalar layer uses).
- Wire grid_map layers to it; migrate depth-raster shading onto it.
- Leave
OccupancyGrid on its standard 0–100 occupancy spec colormap
(already parity, docs/parity/grids.md) unless a reason emerges to unify.
Notes
Authored-By: Claude Code Agent
Model: Claude Opus 4.8 (1M context)
Summary
Introduce a small, reusable colormap facility in the shared map library
(
camp::map::ColorMap) so scalar fields render through a selectable set ofnamed colormaps instead of per-subsystem hardcoded ramps.
Motivation
The camp2 map-system port (#59) drops camp's hardcoded grid_map "speed"
colormap (a situational green/red ramp) in favor of camp2's generic grayscale
auto-range default. Rather than reintroduce another one-off ramp, we want a
generic colormap component usable across camp's scalar-field renderers.
Today the same value→color pattern is reimplemented per subsystem:
see
docs/parity/grids.md.backgroundraster.cpp:48-62hardcodes agreen-land / red-by-depth ramp; see
docs/parity/raster.md.Both are natural consumers of one shared facility.
Scope
camp::map::ColorMapinlibcamp_map: a named lookup (grayscale,plus a few perceptually reasonable ramps, e.g.
viridis,turbo) mapping avalue + range →
QColor, with optional fixed or auto range.grid_map / scalar layer uses).
OccupancyGridon its standard 0–100 occupancy spec colormap(already parity,
docs/parity/grids.md) unless a reason emerges to unify.Notes
grayscale grid_map; this issue designs the generic selectable facility
properly across camp's uses.
Authored-By:
Claude Code AgentModel:
Claude Opus 4.8 (1M context)