supereight
Loading...
Searching...
No Matches
Namespaces | Functions
visitor.hpp File Reference
#include <optional>
#include <se/map/octree/allocator.hpp>
#include <se/map/octree/fetcher.hpp>
#include "impl/visitor_impl.hpp"
Include dependency graph for visitor.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  se
 Helper wrapper to allocate and de-allocate octants in the octree.
 
namespace  se::visitor
 

Functions

template<typename OctreeT >
OctreeT::DataType se::visitor::getData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord)
 Single/multi-res get data functions.
 
template<typename OctreeT , typename BlockT >
OctreeT::DataType se::visitor::getData (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord)
 Get the voxel data for a given coordinate.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, typename OctreeT::DataType > se::visitor::getData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Multi-res get data functions.
 
template<typename OctreeT , typename BlockT >
std::enable_if_t< OctreeT::res_==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)
 Get the voxel data for a given coordinate and desired scale.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::DataType::fld_==se::Field::Occupancy, typename OctreeT::DataType > se::visitor::getMinData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired)
 Get the min occupancy data at a given scale.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::DataType::fld_==Field::Occupancy, typename OctreeT::DataType > se::visitor::getMaxData (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired)
 Get the max occupancy data at a given scale.
 
template<typename OctreeT >
std::optional< field_tse::visitor::getField (const OctreeT &octree, const Eigen::Vector3i &voxel_coord)
 Single/Multi-res get field functions.
 
template<typename OctreeT , typename BlockT >
std::optional< field_tse::visitor::getField (const OctreeT &octree, BlockT *block_ptr, const Eigen::Vector3i &voxel_coord)
 Get the field value for a given coordinate.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_t > > se::visitor::getField (const OctreeT &octree, const Eigen::Vector3i &voxel_coord, const int scale_desired, int &scale_returned)
 Multi-res get field functions.
 
template<typename OctreeT , typename BlockT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_t > > se::visitor::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.
 
template<typename OctreeT , typename ValidF , typename GetF >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< std::invoke_result_t< GetF, typename OctreeT::DataType > > > se::visitor::getInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, ValidF valid, GetF get, const int desired_scale=0, int *const returned_scale=nullptr)
 Interpolate a member of se::Octree::DataType at the supplied voxel coordinates and desired scale.
 
template<typename OctreeT , typename ValidF , typename GetF >
std::enable_if_t< OctreeT::res_==Res::Single, std::optional< std::invoke_result_t< GetF, typename OctreeT::DataType > > > se::visitor::getInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, ValidF valid, GetF get)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_t > > se::visitor::getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int desired_scale=0, int *const returned_scale=nullptr)
 Interpolate the field at the supplied voxel coordinates and desired scale.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Single, std::optional< field_t > > se::visitor::getFieldInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi &&OctreeT::col_==Colour::On, std::optional< colour_t > > se::visitor::getColourInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, const int desired_scale=0, int *const returned_scale=nullptr)
 Interpolate the colour at the supplied voxel coordinates and desired scale.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Single &&OctreeT::col_==Colour::On, std::optional< colour_t > > se::visitor::getColourInterp (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Single, std::optional< field_vec_t > > se::visitor::getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Single-res get gradient functions.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_vec_t > > se::visitor::getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f)
 Multi-res get gradient functions.
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_vec_t > > se::visitor::getFieldGrad (const OctreeT &octree, const Eigen::Vector3f &voxel_coord_f, int &scale_returned)
 Get the field gradient for a given coordinate [float voxel coordinates].
 
template<typename OctreeT >
std::enable_if_t< OctreeT::res_==Res::Multi, std::optional< field_vec_t > > se::visitor::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.