Template Class Neighborhood

Inheritance Relationships

Base Type

Class Documentation

template <Connectivity kConnectivity = Connectivity::kTwentySix>
class Neighborhood : public voxblox::NeighborhoodLookupTables

Public Types

typedef Eigen::Matrix<LongIndexElement, 3, kConnectivity> IndexMatrix

Public Static Functions

static void getFromGlobalIndex(const GlobalIndex &global_index, IndexMatrix *neighbors)

Get the global index of all (6, 18, or 26) neighbors of the input index.

static void getFromBlockAndVoxelIndexAndDirection(const BlockIndex &block_index, const VoxelIndex &voxel_index, const SignedIndex &direction, const size_t voxels_per_side, BlockIndex *neighbor_block_index, VoxelIndex *neighbor_voxel_index)

Get the block idx and local voxel index of a neighbor voxel.

The neighbor voxel is defined by providing a direction. The main purpose of this function is to solve the cross-block indexing that happens when looking up neighbors at the block boundaries.

static void getFromBlockAndVoxelIndex(const BlockIndex &block_index, const VoxelIndex &voxel_index, const size_t voxels_per_side, AlignedVector<VoxelKey> *neighbors_ptr)

Get the hierarchical indices (block idx, local voxel index) for all neighbors (6, 18, or 26 neighborhood) of a hierarcical index.

This function solves the cross-block indexing that happens when looking up neighbors at the block boundary.

static SignedIndex getOffsetBetweenVoxels(const BlockIndex &start_block_index, const VoxelIndex &start_voxel_index, const BlockIndex &end_block_index, const VoxelIndex &end_voxel_index, const size_t voxels_per_side)

Get the signed offset between the global indices of two voxels.