CGAL 6.3 - Quadtrees, Octrees, and Orthtrees
Loading...
Searching...
No Matches
Reference Manual

Jackson Campolattaro, Simon Giraudot, Cédric Portaneri, Tong Zhao, and Pierre Alliez
The Orthtree package provides a data structure that subdivides space, with specializations for 2D (Quadtree) and 3D (Octree), along with a collection of algorithms for operating on these structures.
Introduced in: CGAL 5.3
BibTeX: cgal:cpz-o-26a
License: GPL

Classified Reference Pages

Concepts

Classes

Traits

Split Predicates

Traversal

Topics

 Concepts
 Traits
 Split Predicates
 Traversal

Classes

class  CGAL::Orthtree< GeomTraits >
 A data structure using an axis-aligned hyperrectangle decomposition of dD space for efficient access and computation. More...

Typedefs

template<typename GeomTraits, typename PointRange, typename PointMap = Identity_property_map<typename std::iterator_traits<typename PointRange::iterator>::value_type>, bool cubic_nodes = false>
using CGAL::Octree = Orthtree<Orthtree_traits_point<GeomTraits, PointRange, PointMap, cubic_nodes, 3>>
 Alias that specializes the Orthtree class to a 3D octree storing 3D points.
template<typename GeomTraits, typename PointRange, typename PointMap = Identity_property_map <typename std::iterator_traits<typename PointRange::iterator>::value_type>, bool squared_nodes = false>
using CGAL::Quadtree = Orthtree<Orthtree_traits_point<GeomTraits, PointRange, PointMap, squared_nodes, 2>>
 Alias that specializes the Orthtree class to a 2D quadtree storing 2D points.

Typedef Documentation

◆ Octree

template<typename GeomTraits, typename PointRange, typename PointMap = Identity_property_map<typename std::iterator_traits<typename PointRange::iterator>::value_type>, bool cubic_nodes = false>
using CGAL::Octree = Orthtree<Orthtree_traits_point<GeomTraits, PointRange, PointMap, cubic_nodes, 3>>

#include <CGAL/Octree.h>

Alias that specializes the Orthtree class to a 3D octree storing 3D points.

Template Parameters
GeomTraitsa model of Kernel
PointRangea model of Range whose value type is the key type of PointMap and whose iterator type is a model of RandomAccessIterator
PointMapa model of ReadablePropertyMap whose value type is GeomTraits::Point_3
cubic_nodesBoolean to enforce cubic nodes
Examples
Orthtree/octree_build_from_point_set.cpp, Orthtree/octree_build_from_point_vector.cpp, Orthtree/octree_build_with_custom_split.cpp, Orthtree/octree_find_nearest_neighbor.cpp, Orthtree/octree_grade.cpp, Orthtree/octree_traversal_custom.cpp, Orthtree/octree_traversal_manual.cpp, and Orthtree/octree_traversal_preorder.cpp.

◆ Quadtree

template<typename GeomTraits, typename PointRange, typename PointMap = Identity_property_map <typename std::iterator_traits<typename PointRange::iterator>::value_type>, bool squared_nodes = false>
using CGAL::Quadtree = Orthtree<Orthtree_traits_point<GeomTraits, PointRange, PointMap, squared_nodes, 2>>

#include <CGAL/Quadtree.h>

Alias that specializes the Orthtree class to a 2D quadtree storing 2D points.

Template Parameters
GeomTraitsmust be a model of Kernel
PointRangemust be a model of Range whose value type is the key type of PointMap
PointMapmust be a model of ReadablePropertyMap whose value type is GeomTraits::Point_2
square_nodesBoolean to enforce square nodes
Examples
Orthtree/quadtree_build_from_point_vector.cpp.