NavMap
|
Registry of named layers (per-NavCel). More...
#include <NavMap.hpp>
Public Member Functions | |
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. | |
std::shared_ptr< LayerViewBase > | get (const std::string &name) const |
Get an existing layer by name (untyped view). | |
std::vector< std::string > | list () const |
List layer names currently in the registry. | |
bool | remove (const std::string &name) |
Remove a layer by name. | |
void | resize_all (size_t nitems) |
Resize all known typed layers to nitems . | |
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.
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.
T | Storage type (e.g., uint8_t, float, double). |
name | Layer name (unique key). |
nitems | Number of NavCels to allocate. |
type | Runtime type tag corresponding to T . |
std::shared_ptr< LayerViewBase > get | ( | const std::string & | name | ) | const |
Get an existing layer by name (untyped view).
name | Layer name. |
std::vector< std::string > list | ( | ) | const |
List layer names currently in the registry.
bool remove | ( | const std::string & | name | ) |
Remove a layer by name.
void resize_all | ( | size_t | nitems | ) |
Resize all known typed layers to nitems
.
Useful after changing the number of NavCels. Unknown types are ignored.
nitems | New number of items (NavCels). |