|
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). |