supereight
Functions | Variables
se::visitor Namespace Reference

Functions

template<typename OctreeT >
OctreeT::DataType getData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord)
 Single/multi-res get data functions. More...
 
template<typename OctreeT , typename BlockT >
OctreeT::DataType getData (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord)
 Get the voxel data for a given coordinate. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, typename OctreeT::DataType > getData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Multi-res get data functions. More...
 
template<typename OctreeT , typename BlockT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, typename OctreeT::DataType > getData (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Get the voxel data for a given coordinate and desired scale. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::DataType::fld_==se::Field::Occupancy, typename OctreeT::DataType > getMaxData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired)
 Get the max occupancy data at a given scale. More...
 
template<typename OctreeT >
std::optional< se::field_tgetField (const OctreeT &octree, const Eigen::Vector3i &voxel_coord)
 Single/Multi-res get field functions. More...
 
template<typename OctreeT , typename BlockT >
std::optional< se::field_tgetField (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord)
 Get the field value for a given coordinate. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_t > > getField (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Multi-res get field functions. More...
 
template<typename OctreeT , typename BlockT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_t > > getField (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Get the field value for a given coordinate and desired scale. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Single, std::optional< se::field_t > > getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Single-res get field interpolation functions. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_t > > getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Multi-res get field interpolation functions. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_t > > getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, int &scale_returned)
 Get the interplated field value for a given coordinate [float voxel coordinates]. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::fld_==se::Field::Occupancy &&OctreeT::res_==se::Res::Multi, std::optional< se::field_t > > getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int scale_desired, int &scale_returned)
 Get the interplated field value for a given coordinate [float voxel coordinates] and desired scale. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Single, std::optional< se::field_vec_t > > getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Single-res get gradient functions. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_vec_t > > getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Multi-res get gradient functions. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_vec_t > > getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, int &scale_returned)
 Get the field gradient for a given coordinate [float voxel coordinates]. More...
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==se::Res::Multi, std::optional< se::field_vec_t > > getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int scale_desired, int &scale_returned)
 Get the field gradient for a given coordinate [float voxel coordinates] and desired scale. More...
 

Variables

template<typename OctreeT >
std::enable_if_t<(OctreeT::fld_==se::Field::TSDF &&OctreeT::res_==se::Res::Multi), std::optional< se::field_t > > getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int scale_desired, int &scale_returned)
 Get the interplated field value for a given coordinate [float voxel coordinates] and desired scale. More...
 

Function Documentation

◆ getData() [1/4]

template<typename OctreeT >
OctreeT::DataType se::visitor::getData ( const OctreeT &  octree,
const Eigen::Vector3i &  voxel_coord 
)
inline

Single/multi-res get data functions.

Get the voxel data for a given coordinate. The function returns init data if the data is not allocated.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coordThe voxel coordinates to be accessed
Returns
The data in the voxel to be accessed Returns init data if block is not allocated

◆ getData() [2/4]

template<typename OctreeT , typename BlockT >
OctreeT::DataType se::visitor::getData ( const OctreeT &  octree,
BlockT *  block_ptr,
const Eigen::Vector3i &  voxel_coord 
)
inline

Get the voxel data for a given coordinate.

The function checks first if the voxel coordinates are contained in the provided block pointer. If this is not the case the function fetches the correct block. The function returns init data if the data is not allocated.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]block_ptrThe pointer to the block to checked first
[in]voxel_coordThe voxel coordinates to be accessed
Returns
The data in the voxel to be accessed Returns init data if block is not allocated

◆ getData() [3/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, typename OctreeT::DataType> se::visitor::getData ( const OctreeT &  octree,
const Eigen::Vector3i &  voxel_coord,
const int  scale_desired,
int &  scale_returned 
)
inline

Multi-res get data functions.

Get the voxel data for a given coordinate and desired scale. The function returns init data if the data is not allocated.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octree_ptrThe pointer to the octree
[in]voxel_coordThe voxel coordinates to be accessed
[in]scale_desiredThe scale to fetch the data from (init data for MultiresTSDF at node level)
[in]scale_returnedThe scale the data is returned from (max (scale desired, finest scale with valid data)
Returns
The data in octant at the returned scale

◆ getData() [4/4]

template<typename OctreeT , typename BlockT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, typename OctreeT::DataType> se::visitor::getData ( const OctreeT &  octree,
BlockT *  block_ptr,
const Eigen::Vector3i &  voxel_coord,
const int  scale_desired,
int &  scale_returned 
)
inline

Get the voxel data for a given coordinate and desired scale.

The function checks first if the voxel coordinates are contained in the provided block pointer. If this is not the case the function fetches the correct block. The function returns init data if the data is not allocated.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]block_ptrThe pointer to the block to checked first
[in]voxel_coordThe voxel coordinates to be accessed
[in]scale_desiredThe scale to fetch the data from (init data for MultiresTSDF at node level)
[in]scale_returnedThe scale the data is returned from (max (scale desired, finest scale with valid data)
Returns
The data in octant at the returned scale

◆ getMaxData()

template<typename OctreeT >
std::enable_if_t<OctreeT::DataType::fld_ == se::Field::Occupancy, typename OctreeT::DataType> se::visitor::getMaxData ( const OctreeT &  octree,
const Eigen::Vector3i &  voxel_coord,
const int  scale_desired 
)
inline

Get the max occupancy data at a given scale.

Template Parameters
OctreeTThe type of octree used (has to be of field type occupancy and multi-res)
Parameters
octreeThe reference to the octree
voxel_coordThe voxel coordinates in [voxel] to be accessed
scale_desiredThe scale to be accessed
Returns
The max data at the requested scale.

◆ getField() [1/4]

template<typename OctreeT >
std::optional<se::field_t> se::visitor::getField ( const OctreeT &  octree,
const Eigen::Vector3i &  voxel_coord 
)
inline

Single/Multi-res get field functions.

Get the field value for a given coordinate. The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coordThe voxel coordinates to be accessed
Returns
The field value to be accessed if the data is valid, {}/invalid otherwise

◆ getField() [2/4]

template<typename OctreeT , typename BlockT >
std::optional<se::field_t> se::visitor::getField ( const OctreeT &  octree,
BlockT *  block_ptr,
const Eigen::Vector3i &  voxel_coord 
)
inline

Get the field value for a given coordinate.

The function returns {}/invalid if the data is invalid. The function checks first if the voxel coordinates are contained in the provided block pointer. If this is not the case the function fetches the correct octant.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]block_ptrThe pointer to the block to checked first
[in]voxel_coordThe voxel coordinates to be accessed
Returns
The field value to be accessed if the data is valid, {}/invalid otherwise

◆ getField() [3/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_t> > se::visitor::getField ( const OctreeT &  octree,
const Eigen::Vector3i &  voxel_coord,
const int  scale_desired,
int &  scale_returned 
)
inline

Multi-res get field functions.

Get the field value for a given coordinate and desired scale. The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coordThe voxel coordinates to be accessed
[in]scale_desiredThe scale to fetch the data from (init data for MultiresTSDF at node level)
[in]scale_returnedThe scale the field value is returned from (max (scale desired, finest scale with valid data)
Returns
The field value at the returned scale if the data is valid, {}/invalid otherwise

◆ getField() [4/4]

template<typename OctreeT , typename BlockT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_t> > se::visitor::getField ( const OctreeT &  octree,
BlockT *  block_ptr,
const Eigen::Vector3i &  voxel_coord,
const int  scale_desired,
int &  scale_returned 
)
inline

Get the field value for a given coordinate and desired scale.

The function returns {}/invalid if the data is invalid. The function checks first if the voxel coordinates are contained in the provided block pointer. If this is not the case the function fetches the correct octant.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]block_ptrThe pointer to the block to checked first
[in]voxel_coordThe voxel coordinates to be accessed
[in]scale_desiredThe scale to fetch the data from (init data for MultiresTSDF at node level)
[in]scale_returnedThe scale the field value is returned from (max (scale desired, finest scale with valid data)
Returns
The field value at the returned scale if the data is valid, {}/invalid otherwise

◆ getFieldInterp() [1/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Single, std::optional<se::field_t> > se::visitor::getFieldInterp ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f 
)
inline

Single-res get field interpolation functions.

Get the interplated field value for a given coordinate [float voxel coordinates]. The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octree_ptrThe pointer to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
Returns
The interpolated field value if the data is valid, {}/invalid otherwise

◆ getFieldInterp() [2/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_t> > se::visitor::getFieldInterp ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f 
)
inline

Multi-res get field interpolation functions.

Get the interplated field value for a given coordinate [float voxel coordinates]. The value is interpolated at the finest common scale. The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octree_ptrThe pointer to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
Returns
The interpolated field value if the data is valid, {}/invalid otherwise

◆ getFieldInterp() [3/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_t> > se::visitor::getFieldInterp ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f,
int &  scale_returned 
)
inline

Get the interplated field value for a given coordinate [float voxel coordinates].

The value is interpolated at the finest common scale (scale_returned). The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
[in]scale_returnedThe scale the field value has been interpolated at
Returns
The interpolated field value at the returned scale if the data is valid, {}/invalid otherwise

◆ getFieldInterp() [4/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::fld_ == se::Field::Occupancy && OctreeT::res_ == se::Res::Multi, std::optional<se::field_t> > se::visitor::getFieldInterp ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f,
const int  scale_desired,
int &  scale_returned 
)
inline

Get the interplated field value for a given coordinate [float voxel coordinates] and desired scale.

The value is interpolated at the finest common scale (scale_returned). The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
[in]scale_desiredThe finest scale to interpolate the data at
[in]scale_returnedThe scale the field value has been interpolated at (max (scale desired, finest common neighbour scale)
Returns
The interpolated field value at the returned scale if the data is valid, {}/invalid otherwise

◆ getFieldGrad() [1/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Single, std::optional<se::field_vec_t> > se::visitor::getFieldGrad ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f 
)
inline

Single-res get gradient functions.

Get the field gradient for a given coordinate [float voxel coordinates]. The function returns {}/invalid if the gradient is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
Returns
The field gradient if the gradient is valid, {}/invalid otherwise

◆ getFieldGrad() [2/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_vec_t> > se::visitor::getFieldGrad ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f 
)
inline

Multi-res get gradient functions.

Get the field gradient for a given coordinate [float voxel coordinates]. The function returns {}/invalid if the gradient is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
Returns
The field gradient if the gradient is valid, {}/invalid otherwise

◆ getFieldGrad() [3/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_vec_t> > se::visitor::getFieldGrad ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f,
int &  scale_returned 
)
inline

Get the field gradient for a given coordinate [float voxel coordinates].

The function returns {}/invalid if the gradient is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
[in]scale_returnedThe scale the gradient has been computed at
Returns
The field gradient if the gradient is valid, {}/invalid otherwise

◆ getFieldGrad() [4/4]

template<typename OctreeT >
std::enable_if_t<OctreeT::res_ == se::Res::Multi, std::optional<se::field_vec_t> > se::visitor::getFieldGrad ( const OctreeT &  octree,
const Eigen::Vector3f &  voxel_coord_f,
const int  scale_desired,
int &  scale_returned 
)
inline

Get the field gradient for a given coordinate [float voxel coordinates] and desired scale.

The function returns {}/invalid if the gradient is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
[in]scale_desiredThe finest scale to compute the gradient at
[in]scale_returnedThe scale the gradient has been computed at (max (scale desired, finest common neighbour scale)
Returns
The field gradient if the gradient is valid, {}/invalid otherwise

Variable Documentation

◆ getFieldInterp

template<typename OctreeT >
std::enable_if_t<(OctreeT::fld_ == se::Field::TSDF && OctreeT::res_ == se::Res::Multi), std::optional<se::field_t> > se::visitor::getFieldInterp(const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int scale_desired, int &scale_returned)
inline

Get the interplated field value for a given coordinate [float voxel coordinates] and desired scale.

The value is interpolated at the finest common scale (scale_returned). The function returns {}/invalid if the data is invalid.

Template Parameters
OctreeTThe type of the octree used
Parameters
[in]octreeThe reference to the octree
[in]voxel_coord_fThe voxel coordinates to be accessed [float voxel coordiantes]
[in]scale_desiredThe finest scale to interpolate the data at
[in]scale_returnedThe scale the field value has been interpolated at (max (scale desired, finest common neighbour scale)
Returns
The interpolated field value at the returned scale if the data is valid, {}/invalid otherwise