Template Class Layer¶
- Defined in File layer.h
Class Documentation¶
-
template <typename VoxelType>
classLayer
¶ A 3D information layer, containing data of type VoxelType stored in blocks.
This class contains functions for manipulating and accessing these blocks.
Public Types
-
typedef AnyIndexHashMapType<typename BlockType::Ptr>::type
BlockHashMap
¶
-
typedef std::pair<BlockIndex, typename BlockType::Ptr>
BlockMapPair
¶
Public Functions
-
Layer
(FloatingPoint voxel_size, size_t voxels_per_side)¶
-
Layer
(const LayerProto &proto)¶ Create the layer from protobuf layer header.
-
virtual
~Layer
()¶
-
const BlockType &
getBlockByIndex
(const BlockIndex &index) const¶
-
BlockType &
getBlockByIndex
(const BlockIndex &index)¶
-
BlockType::ConstPtr
getBlockPtrByIndex
(const BlockIndex &index) const¶
-
BlockType::Ptr
getBlockPtrByIndex
(const BlockIndex &index)¶
-
BlockType::Ptr
allocateBlockPtrByIndex
(const BlockIndex &index)¶ Gets a block by the block index it if already exists, otherwise allocates a new one.
-
BlockType::Ptr
allocateBlockPtrByCoordinates
(const Point &coords)¶ Gets a block by the coordinates it if already exists, otherwise allocates a new one.
-
BlockIndex
computeBlockIndexFromCoordinates
(const Point &coords) const¶ IMPORTANT NOTE: Due the limited accuracy of the FloatingPoint type, this function doesn’t always compute the correct block index for coordinates near the block boundaries.
-
BlockType::Ptr
allocateNewBlock
(const BlockIndex &index)¶
-
void
insertBlock
(const std::pair<const BlockIndex, typename Block<VoxelType>::Ptr> &block_pair)¶
-
void
removeBlock
(const BlockIndex &index)¶
-
void
removeAllBlocks
()¶
-
void
getAllAllocatedBlocks
(BlockIndexList *blocks) const¶
-
void
getAllUpdatedBlocks
(BlockIndexList *blocks) const¶
-
size_t
getNumberOfAllocatedBlocks
() const¶
-
bool
hasBlock
(const BlockIndex &block_index) const¶
-
const VoxelType *
getVoxelPtrByGlobalIndex
(const GlobalIndex &global_voxel_index) const¶ Get a pointer to the voxel if its corresponding block is allocated and a nullptr otherwise.
-
VoxelType *
getVoxelPtrByGlobalIndex
(const GlobalIndex &global_voxel_index)¶
-
FloatingPoint
block_size
() const¶
-
FloatingPoint
block_size_inv
() const¶
-
FloatingPoint
voxel_size
() const¶
-
FloatingPoint
voxel_size_inv
() const¶
-
size_t
voxels_per_side
() const¶
-
FloatingPoint
voxels_per_side_inv
() const¶
-
void
getProto
(LayerProto *proto) const¶
-
bool
isCompatible
(const LayerProto &layer_proto) const¶
-
bool
isCompatible
(const BlockProto &layer_proto) const¶
-
bool
saveToFile
(const std::string &file_path, bool clear_file = true) const¶
-
bool
saveSubsetToFile
(const std::string &file_path, BlockIndexList blocks_to_include, bool include_all_blocks, bool clear_file = true) const¶
-
bool
saveBlocksToStream
(bool include_all_blocks, BlockIndexList blocks_to_include, std::fstream *outfile_ptr) const¶
-
bool
addBlockFromProto
(const BlockProto &block_proto, BlockMergingStrategy strategy)¶
-
size_t
getMemorySize
() const¶
Protected Functions
-
std::string
getType
() const¶
Protected Attributes
-
FloatingPoint
voxel_size_
¶
-
size_t
voxels_per_side_
¶
-
FloatingPoint
block_size_
¶
-
FloatingPoint
voxel_size_inv_
¶
-
FloatingPoint
block_size_inv_
¶
-
FloatingPoint
voxels_per_side_inv_
¶
-
BlockHashMap
block_map_
¶
-
typedef AnyIndexHashMapType<typename BlockType::Ptr>::type