class cogs::io::DataBlockManager
Overview
Container class for specific data block factory objects. More…
#include <DataBlockManager.h> class DataBlockManager { public: // fields static const DataBlockType POINTCLOUD_DTB_TYPE; static const DataBlockType SCAN_DTB_TYPE; static const DataBlockType MESH_DTB_TYPE; static const DataBlockType TRIANGULATION_DTB_TYPE; // construction DataBlockManager(); DataBlockManager(const DataBlockManager&); DataBlockManager(DataBlockManager&&); ~DataBlockManager(); // methods DataBlockManager& operator=(const DataBlockManager&); DataBlockManager& operator=(DataBlockManager&&); bool HasFactoryFor(const DataBlockType& datablock_type); std::unique_ptr<DataBlock> Create(const DataBlockType& datablock_type, DataBlockIndex index); template <typename T> void AddFactoryFor(const DataBlockType& datablock_type); };
Detailed Documentation
Container class for specific data block factory objects.
Used for registering new data block factories and creation of data blocks.
By default class contains predefined factories for data blocks, but can be extended to support custom, user defined ones.
Fields
static const DataBlockType POINTCLOUD_DTB_TYPE
Identifier of predefined point cloud data block class.
static const DataBlockType SCAN_DTB_TYPE
Identifier of predefined scan data block class.
static const DataBlockType MESH_DTB_TYPE
Identifier of predefined mesh data block class.
static const DataBlockType TRIANGULATION_DTB_TYPE
Identifier of predefined triangulation data block class.
Construction
DataBlockManager()
Creates manager with predefined data block factories.
Methods
bool HasFactoryFor(const DataBlockType& datablock_type)
Checks if current instance has a factory for defined datablock_type already.
std::unique_ptr<DataBlock> Create(const DataBlockType& datablock_type, DataBlockIndex index)
Creates new instance of data block using corresponding factory.
template <typename T> void AddFactoryFor(const DataBlockType& datablock_type)
Registers new factory type T for the defined datablock_type.
When the factory of specified type does not exist, method logs message and does nothing.