9 #ifndef SE_ALLOCATOR_HPP 10 #define SE_ALLOCATOR_HPP 12 #include <Eigen/StdVector> 35 template<
typename OctreeT>
37 block(
const Eigen::Vector3i& voxel_coord, OctreeT& octree,
se::OctantBase* base_parent_ptr);
39 template<
typename OctreeT>
56 template<
typename OctreeT>
57 std::vector<se::OctantBase*>
58 blocks(
const std::vector<Eigen::Vector3i, Eigen::aligned_allocator<Eigen::Vector3i>>& voxel_coords,
61 const bool only_allocated =
false);
76 template<
typename OctreeT>
77 std::vector<se::OctantBase*>
blocks(std::vector<se::key_t>& voxel_keys,
80 const bool only_allocated =
false);
99 template<
typename OctreeT>
111 #include "impl/allocator_impl.hpp" 113 #endif // SE_ALLOCATOR_HPP std::vector< se::OctantBase * > blocks(const std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i >> &voxel_coords, OctreeT &octree, se::OctantBase *base_parent_ptr, const bool only_allocated=false)
Allocate Blocks at the provided voxel coordinates.
uint64_t key_t
key = 1 bit buffer + 57 bits of morton code + 6 bits of scale information The maxium scale is limited...
Definition: type_util.hpp:44
se::OctantBase * block(const Eigen::Vector3i &voxel_coord, OctreeT &octree, se::OctantBase *base_parent_ptr)
Allocate a block at the provided voxel coordinates.
bool allocate_key(const se::key_t key, OctreeT &octree, se::OctantBase *base_parent_ptr, se::OctantBase *&allocated_octant)
Allocate a given key in the octree.
This class only helps to dynamic cast the octant to the right type and builds the base of nodes and b...
Definition: octant.hpp:24
Helper wrapper to allocate and de-allocate octants in the octree.
Definition: colour_utils.hpp:17