Clarify predicate names

This commit is contained in:
Simon Giraudot 2021-01-19 09:17:40 +01:00
parent 71a99270df
commit 9a77173ab9
5 changed files with 26 additions and 22 deletions

View File

@ -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.

View File

@ -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`

View File

@ -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;

View File

@ -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));
} }
/*! /*!

View File

@ -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) {}
/*! /*!