10#ifndef SE_VOXEL_BLOCK_RAY_ITERATOR_HPP
11#define SE_VOXEL_BLOCK_RAY_ITERATOR_HPP
15#define CAST_STACK_DEPTH 23
21template<
typename MapT>
23 typedef typename MapT::OctreeType::NodeType NodeType;
24 typedef typename MapT::OctreeType::BlockType BlockType;
30 const float near_plane,
31 const float far_plane);
76 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
86 enum STATE { INIT, ADVANCE, FINISHED };
90 const typename MapT::OctreeType& octree_;
91 Eigen::Vector3f ray_origin_M_;
92 Eigen::Vector3f ray_dir_M_;
94 Eigen::Vector3f t_coef_;
95 Eigen::Vector3f t_bias_;
96 Eigen::Vector3f t_corner_;
98 NodeType* parent_ptr_;
118 static inline int floatAsInt(
const float value)
134 static inline float intAsFloat(
const int value)
148 inline void advance_ray();
153 inline void descend();
162#include "impl/voxel_block_ray_iterator_impl.hpp"
The base class of all octants (se::Node and se::Block) in an se::Octree.
Definition octant.hpp:19
Definition voxel_block_ray_iterator.hpp:22
float tmin() const
The distance along the ray until the octree is entered.
VoxelBlockRayIterator(const MapT &map, const Eigen::Vector3f &ray_origin_M, const Eigen::Vector3f &ray_dir_M, const float near_plane, const float far_plane)
float tcmax() const
The distance along the ray until the current se::VoxelBlock is exited.
BlockType * next()
Return a pointer to the next se::VoxelBlock along the ray.
float tcmin() const
The distance along the ray until the current se::VoxelBlock is entered.
float tmax() const
The distance along the ray until the octree is exited.
Helper wrapper to allocate and de-allocate octants in the octree.
Definition bounded_vector.hpp:14
#define CAST_STACK_DEPTH
Definition voxel_block_ray_iterator.hpp:15