NavMap
Loading...
Searching...
No Matches
LayerRegistry Class Reference

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< LayerViewBaseget (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.
 

Detailed Description

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.

Member Function Documentation

◆ 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
TStorage type (e.g., uint8_t, float, double).
Parameters
nameLayer name (unique key).
nitemsNumber of NavCels to allocate.
typeRuntime 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
nameLayer name.
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).

◆ 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
nitemsNew number of items (NavCels).

The documentation for this class was generated from the following file: