mirror of https://github.com/CGAL/cgal
Clarify predicate names
This commit is contained in:
parent
71a99270df
commit
9a77173ab9
|
|
@ -40,7 +40,7 @@ subdivide space further. This method uses a split predicate which
|
||||||
takes a node as input and returns `true` is this node should be
|
takes a node as input and returns `true` is this node should be
|
||||||
split, `false` otherwise: this enables users to choose on what
|
split, `false` otherwise: this enables users to choose on what
|
||||||
criterion should the orthtree be refined. Predefined predicates are
|
criterion should the orthtree be refined. Predefined predicates are
|
||||||
provided such as [Max_depth](@ref CGAL::Orthtrees::Split_predicate::Max_depth) or [Bucket_size](@ref CGAL::Orthtrees::Split_predicate::Bucket_size).
|
provided such as [Maximum_depth](@ref CGAL::Orthtrees::Split_predicate::Maximum_depth) or [Maximum_number_of_inliers](@ref CGAL::Orthtrees::Split_predicate::Maximum_number_of_inliers).
|
||||||
|
|
||||||
\subsection Section_Orthtree_Orthtree_Point_Vector Building an Orthtree
|
\subsection Section_Orthtree_Orthtree_Point_Vector Building an Orthtree
|
||||||
|
|
||||||
|
|
@ -82,7 +82,7 @@ map type and object. This example illustrates how to create an %octree from a `P
|
||||||
It also shows a more explicit way of setting the split predicate when refining the tree.
|
It also shows a more explicit way of setting the split predicate when refining the tree.
|
||||||
|
|
||||||
An octree is constructed from the point set and its map.
|
An octree is constructed from the point set and its map.
|
||||||
The tree is refined with a max depth (deepest node allowed) of 10,
|
The tree is refined with a maximum depth (deepest node allowed) of 10,
|
||||||
and a bucket size (maximum number of points contained by a single node) of 20.
|
and a bucket size (maximum number of points contained by a single node) of 20.
|
||||||
The tree is then printed to the standard output.
|
The tree is then printed to the standard output.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,9 @@
|
||||||
- `CGAL::Orthtree_traits_d<GeomTraits, Dimension>`
|
- `CGAL::Orthtree_traits_d<GeomTraits, Dimension>`
|
||||||
|
|
||||||
\cgalCRPSection{Split Predicates}
|
\cgalCRPSection{Split Predicates}
|
||||||
- `CGAL::Orthtrees::Split_predicate::Bucket_size`
|
- `CGAL::Orthtrees::Split_predicate::Maximum_number_of_inliers`
|
||||||
- `CGAL::Orthtrees::Split_predicate::Max_depth`
|
- `CGAL::Orthtrees::Split_predicate::Maximum_depth`
|
||||||
- `CGAL::Orthtrees::Split_predicate::Max_depth_or_bucket_size`
|
- `CGAL::Orthtrees::Split_predicate::Maximum_depth_and_maximum_number_of_inliers`
|
||||||
|
|
||||||
\cgalCRPSection{%Traversal}
|
\cgalCRPSection{%Traversal}
|
||||||
- `CGAL::Orthtrees::Traversal::Preorder`
|
- `CGAL::Orthtrees::Traversal::Preorder`
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ int main(int argc, char **argv) {
|
||||||
Octree octree(points, points.point_map());
|
Octree octree(points, points.point_map());
|
||||||
|
|
||||||
// Build the octree with a small bucket size, using a more verbose method
|
// Build the octree with a small bucket size, using a more verbose method
|
||||||
octree.refine(CGAL::Orthtrees::Split_predicate::Max_depth_or_bucket_size(5, 10));
|
octree.refine(CGAL::Orthtrees::Split_predicate::Maximum_depth_and_maximum_number_of_inliers(5, 10));
|
||||||
|
|
||||||
// Print out the tree
|
// Print out the tree
|
||||||
std::cout << octree;
|
std::cout << octree;
|
||||||
|
|
|
||||||
|
|
@ -286,18 +286,19 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\brief convenience overload that refines an orthtree using a max
|
\brief convenience overload that refines an orthtree using a
|
||||||
depth and max number of points in a node as split predicate.
|
maximum depth and maximum number of points in a node as split
|
||||||
|
predicate.
|
||||||
|
|
||||||
This is equivalent to calling
|
This is equivalent to calling
|
||||||
`refine(Split_predicate::Max_depth_or_bucket_size(max_depth,
|
`refine(Split_predicate::Maximum_depth_and_maximum_number_of_inliers(min_depth,
|
||||||
bucket_size))`
|
bucket_size))`
|
||||||
|
|
||||||
\param max_depth deepest a tree is allowed to be (nodes at this depth will not be split).
|
\param max_depth deepest a tree is allowed to be (nodes at this depth will not be split).
|
||||||
\param bucket_size maximum points a node is allowed to contain.
|
\param bucket_size maximum points a node is allowed to contain.
|
||||||
*/
|
*/
|
||||||
void refine(size_t max_depth = 10, size_t bucket_size = 20) {
|
void refine(size_t max_depth = 10, size_t bucket_size = 20) {
|
||||||
refine(Orthtrees::Split_predicate::Max_depth_or_bucket_size(max_depth, bucket_size));
|
refine(Orthtrees::Split_predicate::Maximum_depth_and_maximum_number_of_inliers(max_depth, bucket_size));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
||||||
|
|
@ -24,17 +24,17 @@ namespace Split_predicate {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgOrthtreeSplitPredicates
|
\ingroup PkgOrthtreeSplitPredicates
|
||||||
\brief predicate to split nodes of an orthtree when they contain more than a certain number of items
|
\brief bucket size predicate that splits a node if it contains more than a certain number of items.
|
||||||
*/
|
*/
|
||||||
class Bucket_size {
|
class Maximum_number_of_inliers {
|
||||||
|
|
||||||
std::size_t m_bucket_size;
|
std::size_t m_bucket_size;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
\brief creates a bucket size predicate.
|
\brief creates a predicate based on the number of inliers (bucket size).
|
||||||
*/
|
*/
|
||||||
Bucket_size(std::size_t bucket_size) :
|
Maximum_number_of_inliers(std::size_t bucket_size) :
|
||||||
m_bucket_size(bucket_size) {}
|
m_bucket_size(bucket_size) {}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -48,18 +48,18 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgOrthtreeSplitPredicates
|
\ingroup PkgOrthtreeSplitPredicates
|
||||||
\brief predicate to split nodes of an orthtree when they are less than a certain depth.
|
\brief predicate that splits a node if its depth is lower than a certain limit.
|
||||||
*/
|
*/
|
||||||
class Max_depth {
|
class Maximum_depth {
|
||||||
|
|
||||||
std::size_t m_max_depth;
|
std::size_t m_max_depth;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief creates a max depth predicate.
|
\brief creates a maximum depth predicate.
|
||||||
*/
|
*/
|
||||||
Max_depth(std::size_t max_depth) : m_max_depth(max_depth) {}
|
Maximum_depth(std::size_t max_depth) : m_max_depth(max_depth) {}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief returns `true` if `n` should be splitted, `false` otherwise.
|
\brief returns `true` if `n` should be splitted, `false` otherwise.
|
||||||
|
|
@ -72,18 +72,21 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\ingroup PkgOrthtreeSplitPredicates
|
\ingroup PkgOrthtreeSplitPredicates
|
||||||
\brief predicate to split nodes when they are less than a depth and they contain more than a number of items.
|
|
||||||
|
\brief predicate that splits a node if it contains more than a
|
||||||
|
certain number of items and if its depth is lower than a certain
|
||||||
|
limit.
|
||||||
*/
|
*/
|
||||||
class Max_depth_or_bucket_size {
|
class Maximum_depth_and_maximum_number_of_inliers {
|
||||||
|
|
||||||
std::size_t m_max_depth, m_bucket_size;
|
std::size_t m_max_depth, m_bucket_size;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief creates a predicate using max depth or bucket size.
|
\brief creates a predicate using minimum depth or bucket size.
|
||||||
*/
|
*/
|
||||||
Max_depth_or_bucket_size(std::size_t max_depth, std::size_t bucket_size) :
|
Maximum_depth_and_maximum_number_of_inliers(std::size_t max_depth, std::size_t bucket_size) :
|
||||||
m_max_depth(max_depth), m_bucket_size(bucket_size) {}
|
m_max_depth(max_depth), m_bucket_size(bucket_size) {}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue