40 #ifndef PCL_OUTOFCORE_OCTREE_BASE_NODE_H_
41 #define PCL_OUTOFCORE_OCTREE_BASE_NODE_H_
43 #include <pcl/common/io.h>
44 #include <pcl/PCLPointCloud2.h>
46 #include <pcl/outofcore/boost.h>
47 #include <pcl/outofcore/octree_base.h>
48 #include <pcl/outofcore/octree_disk_container.h>
49 #include <pcl/outofcore/outofcore_node_data.h>
51 #include <pcl/octree/octree_nodes.h>
58 template<
typename ContainerT,
typename Po
intT>
59 class OutofcoreOctreeBaseNode;
61 template<
typename ContainerT,
typename Po
intT>
62 class OutofcoreOctreeBase;
65 template<
typename ContainerT,
typename Po
intT> OutofcoreOctreeBaseNode<ContainerT, PointT>*
66 makenode_norec (
const boost::filesystem::path &path, OutofcoreOctreeBaseNode<ContainerT, PointT>* super);
69 template<
typename ContainerT,
typename Po
intT>
void
70 queryBBIntersects_noload (
const boost::filesystem::path &root_node,
const Eigen::Vector3d &min,
const Eigen::Vector3d &max,
const boost::uint32_t query_depth, std::list<std::string> &bin_name);
73 template<
typename ContainerT,
typename Po
intT>
void
74 queryBBIntersects_noload (OutofcoreOctreeBaseNode<ContainerT, PointT>* current,
const Eigen::Vector3d&,
const Eigen::Vector3d &max,
const boost::uint32_t query_depth, std::list<std::string> &bin_name);
91 template<
typename ContainerT = OutofcoreOctreeDiskContainer<pcl::Po
intXYZ>,
typename Po
intT = pcl::Po
intXYZ>
101 queryBBIntersects_noload<ContainerT, PointT> (
const boost::filesystem::path &rootnode,
const Eigen::Vector3d &min,
const Eigen::Vector3d &max,
const boost::uint32_t query_depth, std::list<std::string> &bin_name);
104 queryBBIntersects_noload<ContainerT, PointT> (
OutofcoreOctreeBaseNode<ContainerT, PointT>* current,
const Eigen::Vector3d &min,
const Eigen::Vector3d &max,
const boost::uint32_t query_depth, std::list<std::string> &bin_name);
143 const boost::filesystem::path&
149 const boost::filesystem::path&
156 queryFrustum (
const double planes[24], std::list<std::string>& file_names);
159 queryFrustum (
const double planes[24], std::list<std::string>& file_names,
const boost::uint32_t query_depth,
const bool skip_vfc_check =
false);
162 queryFrustum (
const double planes[24],
const Eigen::Vector3d &eye,
const Eigen::Matrix4d &view_projection_matrix, std::list<std::string>& file_names,
const boost::uint32_t query_depth,
const bool skip_vfc_check =
false);
202 queryBBIntersects (
const Eigen::Vector3d &min_bb,
const Eigen::Vector3d &max_bb,
const boost::uint32_t query_depth, std::list<std::string> &file_names);
214 virtual boost::uint64_t
217 virtual boost::uint64_t
218 addDataToLeaf (
const std::vector<const PointT*> &p,
const bool skip_bb_check =
true);
225 virtual boost::uint64_t
229 virtual boost::uint64_t
237 virtual boost::uint64_t
267 PCL_THROW_EXCEPTION (
PCLException,
"Not implemented\n");
271 virtual inline size_t
298 virtual boost::uint64_t
418 inBoundingBox (
const Eigen::Vector3d &min_bb,
const Eigen::Vector3d &max_bb)
const;
426 pointInBoundingBox (
const Eigen::Vector3d &min_bb,
const Eigen::Vector3d &max_bb,
const Eigen::Vector3d &point);
444 pointInBoundingBox (
const Eigen::Vector3d &min_bb,
const Eigen::Vector3d &max_bb,
const double x,
const double y,
const double z);
466 inline boost::uint64_t
531 enlargeToCube (Eigen::Vector3d &bb_min, Eigen::Vector3d &bb_max);
568 const static boost::uint32_t
rngseed = 0xAABBCCDD;
577 #endif //PCL_OUTOFCORE_OCTREE_BASE_NODE_H_