supereight
Functions
se::fetcher Namespace Reference

Functions

template<typename MapT , typename SensorT >
std::vector< se::OctantBase * > frustum (MapT &map, const SensorT &sensor, const Eigen::Matrix4f &T_WS)
 Return the currently allocated Blocks that intersect the camera frustum. More...
 
template<typename OctreeT >
se::OctantBaseoctant (const Eigen::Vector3i &octant_coord, const se::scale_t scale_desired, se::OctantBase *base_parent_ptr)
 Fetch the octant for given coordinates and scale. More...
 
template<typename OctreeT >
se::OctantBasefinest_octant (const Eigen::Vector3i &octant_coord, const se::scale_t scale_desired, se::OctantBase *base_parent_ptr)
 Fetch the octant for given coordinates and scale. More...
 
template<typename OctreeT >
se::OctantBaseblock (const Eigen::Vector3i &block_coord, se::OctantBase *base_parent_ptr)
 Fetch the block for given block coordinates. More...
 
template<typename OctreeT >
se::OctantBaseleaf (const Eigen::Vector3i &leaf_coord, se::OctantBase *base_parent_ptr)
 Fetch the leaf for given block coordinates. More...
 

Function Documentation

◆ frustum()

template<typename MapT , typename SensorT >
std::vector< se::OctantBase * > se::fetcher::frustum ( MapT &  map,
const SensorT &  sensor,
const Eigen::Matrix4f &  T_WS 
)
inline

Return the currently allocated Blocks that intersect the camera frustum.

Some false positives might be returned since Blocks are approximated by their bounding spheres and because sphereInFrustum() may return false positives in rare cases.

Template Parameters
MapTThe map type.
SensorTThe sensor type.
Parameters
mapThe map to fetch Blocks from.
sensorThe sensor whose frustum is used for the test.
T_WSThe pose of the sensor in the world frame.
Returns
A vector of pointers to Blocks that intersect the sensor frustum.

◆ octant()

template<typename OctreeT >
se::OctantBase* se::fetcher::octant ( const Eigen::Vector3i &  octant_coord,
const se::scale_t  scale_desired,
se::OctantBase base_parent_ptr 
)
inline

Fetch the octant for given coordinates and scale.

Template Parameters
OctreeT
Parameters
octant_coordThe coordinates of the octant to be fetched
scale_desiredThe scale of the node to be fetched
base_parent_ptrThe parent pointer to start the fetching process from (e.g. the octrees root)
Returns
The pointer to the octant if it is allocated, nullptr otherwise

◆ finest_octant()

template<typename OctreeT >
se::OctantBase* se::fetcher::finest_octant ( const Eigen::Vector3i &  octant_coord,
const se::scale_t  scale_desired,
se::OctantBase base_parent_ptr 
)
inline

Fetch the octant for given coordinates and scale.

Returnes the finest allocated octant up to the desired scale

Template Parameters
OctreeT
Parameters
octant_coordThe coordinates of the octant to be fetched
scale_desiredThe scale of the node to be fetched
base_parent_ptrThe parent pointer to start the fetching process from (e.g. the octrees root)
Returns
The pointer to the finest allocated octant up to the desired scale

◆ block()

template<typename OctreeT >
se::OctantBase* se::fetcher::block ( const Eigen::Vector3i &  block_coord,
se::OctantBase base_parent_ptr 
)
inline

Fetch the block for given block coordinates.

Template Parameters
OctreeT
Parameters
block_coordThe coordinates of the block to be fetched
base_parent_ptrThe parent pointer to start the fetching process from (e.g. the octrees root)
Returns
The pointer to the block if allocated, nullptr otherwise

◆ leaf()

template<typename OctreeT >
se::OctantBase* se::fetcher::leaf ( const Eigen::Vector3i &  leaf_coord,
se::OctantBase base_parent_ptr 
)
inline

Fetch the leaf for given block coordinates.

Template Parameters
OctreeT
Parameters
leaf_coordThe coordinates of the block to be fetched
base_parent_ptrThe parent pointer to start the fetching process from (e.g. the octrees root)
Returns
The pointer to the leaf