Registry of named layers (per-NavCel).
More...
#include <NavMap.hpp>
Registry of named layers (per-NavCel).
Provides creation-or-lookup semantics with navmap::LayerRegistry::add_or_get(). All layers in the registry are expected to have a size equal to the number of NavCels in the owning navmap::NavMap.
◆ LayerRegistry() [1/3]
◆ LayerRegistry() [2/3]
| LayerRegistry |
( |
LayerRegistry && | | ) |
|
|
defaultnoexcept |
◆ LayerRegistry() [3/3]
| LayerRegistry |
( |
const LayerRegistry & | other | ) |
|
Copies are deep: each copy owns its layers (writes never reach the original).
◆ add_or_get()
template<typename T>
| std::shared_ptr< LayerView< T > > add_or_get |
( |
const std::string & | name, |
|
|
size_t | nitems, |
|
|
LayerType | type ) |
Add a new typed layer or return an existing one with the same name.
If a layer with name already exists, it is returned (no resize). Otherwise a new layer is created with nitems elements.
- Template Parameters
-
| T | Storage type (e.g., uint8_t, float, double). |
- Parameters
-
| name | Layer name (unique key). |
| nitems | Number of NavCels to allocate. |
| type | Runtime type tag corresponding to T. |
- Returns
- Shared pointer to the typed view.
◆ get()
| std::shared_ptr< LayerViewBase > get |
( |
const std::string & | name | ) |
const |
Get an existing layer by name (untyped view).
- Parameters
-
- Returns
- Pointer to base view, or nullptr if not found.
◆ list()
| std::vector< std::string > list |
( |
| ) |
const |
List layer names currently in the registry.
- Returns
- Vector of names (unordered).
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ remove()
| bool remove |
( |
const std::string & | name | ) |
|
Remove a layer by name.
- Returns
- true if the layer existed and was removed.
◆ resize_all()
| void resize_all |
( |
size_t | nitems | ) |
|
Resize all known typed layers to nitems.
Useful after changing the number of NavCels. Unknown types are ignored.
- Parameters
-
| nitems | New number of items (NavCels). |
The documentation for this class was generated from the following file: