diff --git a/Box_intersection_d/doc/Box_intersection_d/Box_intersection_d.txt b/Box_intersection_d/doc/Box_intersection_d/Box_intersection_d.txt index bf177696b2a..86904269977 100644 --- a/Box_intersection_d/doc/Box_intersection_d/Box_intersection_d.txt +++ b/Box_intersection_d/doc/Box_intersection_d/Box_intersection_d.txt @@ -40,7 +40,7 @@ and \cite cgal:ze-fsbi-02 for more details. \section secboxintersdef Definition A \f$ d\f$-dimensional iso-oriented box is defined as the -Cartesian product of \f$ d\f$ intervals. We call the +%Cartesian product of \f$ d\f$ intervals. We call the box half-open if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i) \,|\, 0 \leq i < d\}\f$ are half-open intervals, and we call the box closed if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i] \,|\, 0 \leq i < d\}\f$ are closed @@ -288,7 +288,7 @@ just converting from the `double` to the `float` representation incurs rounding that needs to be controlled properly, otherwise the box might shrink and one might miss intersections. -\section secboxintersparams Example Using the topology and the cutoff Parameters +\section secboxintersparams Example Using the Topology and the Cutoff Parameters Boxes can be interpreted by the box intersection algorithm as closed or as half-open boxes, see also Section \ref secboxintersdef. Closed @@ -411,7 +411,7 @@ remainder of the example stays the same and we omit the part from the previous example for brevity that illustrates the half-open box topology. The requirements for the box implementation are best studied on -page \ref ccRef_BoxIntersectionBox_d in the Reference Manual. In a +the reference manual page of `BoxIntersectionBox_d`. In a nutshell, we have to define the type `NT` for the box coordinates and the type `ID` for the `id`-number. Member functions give access to the coordinates and the `id`-number. A static @@ -435,7 +435,7 @@ from above, i.e., points are reported if their distance is smaller than `2*eps`. The requirements for the box traits class are best studied on -page \ref ccRef_BoxIntersectionTraits_d in the Reference Manual. In a +the reference manual page of `BoxIntersectionTraits_d`. In a nutshell, we have to define the type `NT` for the box coordinates, the type `ID` for the `id`-number, and the type `Box_parameter` similar to the box handle, here `Point_3*` since we work with the pointers. diff --git a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_d.h b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_d.h index da24cb5d82d..4ea8129d4d8 100644 --- a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_d.h +++ b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_d.h @@ -1,7 +1,7 @@ namespace CGAL { namespace Box_intersection_d { /*! -\ingroup PkgBoxIntersectionD +\ingroup PkgBoxIntersectionDClasses `Box_d` is a generic iso-oriented bounding box in dimension \f$ D\f$. It provides in each dimension an interval with lower and upper @@ -29,14 +29,14 @@ the box and automatically created and assigned at construction time of the box. Note that copying a box (copy-constructor and assignment) does not create a new `id`-number but keeps the old one, which is the behavior needed by the -`CGAL::box_self_intersection` algorithm. This is therefore +`CGAL::box_self_intersection_3()` algorithm. This is therefore the safe default implementation.
  • `ID_FROM_BOX_ADDRESS`: casts the address of the box into a `std::ptrdiff_t` to create the `id`-number. Works fine if the intersection algorithms work effectively with pointers to boxes, but not in the case where the algorithms work with box values, because the algorithms modify the order of the -boxes, and the `CGAL::box_self_intersection` algorithm +boxes, and the `CGAL::box_self_intersection_d()` algorithm creates copies of the boxes that would not have identical `id`-numbers. diff --git a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_traits_d.h b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_traits_d.h index 5fc296f41ef..ec093391614 100644 --- a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_traits_d.h +++ b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_traits_d.h @@ -1,7 +1,7 @@ namespace CGAL { namespace Box_intersection_d { /*! -\ingroup PkgBoxIntersectionD +\ingroup PkgBoxIntersectionDClasses This is the default traits class for the intersection algorithms for iso-oriented boxes. There are actually three versions depending on the @@ -24,9 +24,9 @@ const-pointer `const B*`, where `B` is a model of the \models ::BoxIntersectionTraits_d -\sa `CGAL::box_intersection_d` -\sa `CGAL::box_self_intersection_d` -\sa `CGAL::box_intersection_all_pairs_d` +\sa `CGAL::box_intersection_d()` +\sa `CGAL::box_self_intersection_d()` +\sa `CGAL::box_intersection_all_pairs_d()` \sa `BoxIntersectionBox_d` \sa `CGAL::Box_intersection_d::Box_d` @@ -46,5 +46,18 @@ Box_traits_d(); /// @} }; /* end Box_traits_d */ + + +/*! +\ingroup PkgBoxIntersectionDFunctions +*/ +enum Setting { COMPLETE, BIPARTITE }; + +/*! +\ingroup PkgBoxIntersectionDFunctions +*/ +enum Topology { HALF_OPEN, CLOSED }; + + } /* Box_intersection_d */ } /* end namespace CGAL */ diff --git a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_with_handle_d.h b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_with_handle_d.h index b4947d746b7..728a741da3f 100644 --- a/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_with_handle_d.h +++ b/Box_intersection_d/doc/Box_intersection_d/CGAL/Box_intersection_d/Box_with_handle_d.h @@ -2,7 +2,7 @@ namespace CGAL { namespace Box_intersection_d { /*! -\ingroup PkgBoxIntersectionD +\ingroup PkgBoxIntersectionDClasses `Box_with_handle_d` is a generic iso-oriented bounding box in dimension \f$ D\f$ that stores additionally a handle to some underlying geometric object. @@ -32,14 +32,14 @@ the box and automatically created and assigned at construction time of the box. Note that copying a box (copy-constructor and assignment) does not create a new `id`-number but keeps the old one, which is the behavior needed by the -`CGAL::box_self_intersection` algorithm. This is therefore +`CGAL::box_self_intersection_d()` algorithm. This is therefore the safe default implementation.
  • `ID_FROM_BOX_ADDRESS`: casts the address of the box into a `std::ptrdiff_t` to create the `id`-number. Works fine if the intersection algorithms work effectively with pointers to boxes, but not in the case where the algorithms work with box values, because the algorithms modify the order of the -boxes, and the `CGAL::box_self_intersection` algorithm +boxes, and the `CGAL::box_self_intersection_d()` algorithm creates copies of the boxes that would not have identical `id`-numbers.
  • `ID_FROM_HANDLE`: casts the address of the value of the @@ -98,8 +98,8 @@ Box_with_handle_d(); /*! initializes to the -complete or the empty space. If empty, all interval starting(end) -points will be set to positive(negative) infinity, sets handle to \f$ h\f$. +complete or the empty space. If empty, all interval starting (end) +points will be set to positive (negative) infinity, sets handle to \f$ h\f$. */ Box_with_handle_d(bool complete, Handle h); diff --git a/Box_intersection_d/doc/Box_intersection_d/CGAL/box_intersection_d.h b/Box_intersection_d/doc/Box_intersection_d/CGAL/box_intersection_d.h index b1c8f4c869f..000b5d3c13c 100644 --- a/Box_intersection_d/doc/Box_intersection_d/CGAL/box_intersection_d.h +++ b/Box_intersection_d/doc/Box_intersection_d/CGAL/box_intersection_d.h @@ -1,13 +1,12 @@ namespace CGAL { /*! - \page box_intersection_all_pairs_d box_intersection_all_pairs_d + \addtogroup PkgBoxIntersectionD_box_intersection_all_pairs_d The function `box_intersection_all_pairs_d` computes the pairwise intersecting boxes between two sequences of iso-oriented boxes in arbitrary dimension. It does so by comparing all possible pairs of boxes and is thus - inferior to the fast `CGAL::box_intersection_d` algorithm on page - \ref ccRef_CGALbox_intersection_d. + inferior to the fast `CGAL::box_intersection_d` algorithm. The sequences of boxes are given with two forward iterator ranges. The sequences are not modified. For each intersecting pair of boxes a @@ -21,7 +20,7 @@ namespace CGAL { either our box type or a pointer type to our box type. A \f$ d\f$-dimensional iso-oriented box is defined as the - Cartesian product of \f$ d\f$ intervals. We call the + %Cartesian product of \f$ d\f$ intervals. We call the box half-open if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i) \,|\, 0 \leq i < d\}\f$ are half-open intervals, and we call the box closed if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i] \,|\, 0 \leq i < d\}\f$ are closed @@ -65,7 +64,7 @@ namespace CGAL { */ /*! - \page box_intersection_d box_intersection_d + \addtogroup PkgBoxIntersectionD_box_intersection_d The function `box_intersection_d` computes the pairwise intersecting boxes between two sequences of iso-oriented boxes in arbitrary dimension. @@ -87,7 +86,7 @@ namespace CGAL { const pointer) to the box type. A \f$ d\f$-dimensional iso-oriented box is defined as the - Cartesian product of \f$ d\f$ intervals. We call the + %Cartesian product of \f$ d\f$ intervals. We call the box half-open if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i) \,|\, 0 \leq i < d\}\f$ are half-open intervals, and we call the box closed if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i] \,|\, 0 \leq i < d\}\f$ are closed @@ -210,14 +209,13 @@ namespace CGAL { */ /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_intersection_all_pairs_d Invocation of box intersection with default box traits `CGAL::Box_intersection_d::Box_traits_d`, where `Box_handle` corresponds to the iterator value type of `ForwardIterator1`. - See \ref box_intersection_all_pairs_d. */ template< class ForwardIterator1, class ForwardIterator2, @@ -226,14 +224,13 @@ void box_intersection_all_pairs_d( ForwardIterator1 begin1, ForwardIterator1 end1, ForwardIterator2 begin2, ForwardIterator2 end2, Callback callback, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_intersection_all_pairs_d Invocation with custom box traits. - See \ref box_intersection_all_pairs_d. */ template< class ForwardIterator1, class ForwardIterator2, @@ -243,21 +240,20 @@ void box_intersection_all_pairs_d( ForwardIterator2 begin2, ForwardIterator2 end2, Callback callback, BoxTraits box_traits, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); } /* namespace CGAL */ namespace CGAL { /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_intersection_d Invocation of box intersection with default box traits `CGAL::Box_intersection_d::Box_traits_d`, where `Box_handle` corresponds to the iterator value type of `RandomAccessIterator1`. - See \ref box_intersection_d. */ template< class RandomAccessIterator1, @@ -268,16 +264,14 @@ void box_intersection_d( RandomAccessIterator2 begin2, RandomAccessIterator2 end2, Callback callback, std::ptrdiff_t cutoff = 10, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED, - Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED, + CGAL::Box_intersection_d::Setting setting = CGAL::Box_intersection_d::BIPARTITE); /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_intersection_d Invocation with custom box traits. - See \ref box_intersection_d. - */ template< class RandomAccessIterator1, class RandomAccessIterator2, @@ -288,20 +282,19 @@ void box_intersection_d( Callback callback, BoxTraits box_traits, std::ptrdiff_t cutoff = 10, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED, - Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED, + CGAL::Box_intersection_d::Setting setting = CGAL::Box_intersection_d::BIPARTITE); } /* namespace CGAL */ namespace CGAL { /*! - \page box_self_intersection_all_pairs_d box_self_intersection_all_pairs_d + \addtogroup PkgBoxIntersectionD_box_self_intersection_all_pairs_d The function `box_self_intersection_all_pairs_d` computes the pairwise intersecting boxes in a sequence of iso-oriented boxes in arbitrary dimension. It does so by comparing all possible pairs of boxes and is thus - inferior to the fast `CGAL::box_self_intersection_d` algorithm on - page \ref ccRef_CGALbox_self_intersection_d. + inferior to the fast `CGAL::box_self_intersection_d` algorithm. The sequence of boxes is given with a forward iterator range. The sequences are not modified. For each intersecting pair of boxes a @@ -314,7 +307,7 @@ namespace CGAL { either our box type or a pointer type to our box type. A \f$ d\f$-dimensional iso-oriented box is defined as the - Cartesian product of \f$ d\f$ intervals. We call the + %Cartesian product of \f$ d\f$ intervals. We call the box half-open if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i) \,|\, 0 \leq i < d\}\f$ are half-open intervals, and we call the box closed if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i] \,|\, 0 \leq i < d\}\f$ are closed @@ -367,27 +360,25 @@ namespace CGAL { */ /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_self_intersection_all_pairs_d Invocation of box intersection with default box traits `CGAL::Box_intersection_d::Box_traits_d`, where `Box_handle` corresponds to the iterator value type of `ForwardIterator`. - See \ref box_self_intersection_all_pairs_d. */ template< class ForwardIterator, class Callback > void box_self_intersection_all_pairs_d( ForwardIterator begin, ForwardIterator end, Callback callback, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_self_intersection_all_pairs_d Invocation with custom box traits. - See \ref box_self_intersection_all_pairs_d. */ template< class ForwardIterator, @@ -396,14 +387,14 @@ void box_self_intersection_all_pairs_d( ForwardIterator begin, ForwardIterator end, Callback callback, BoxTraits box_traits, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); } /* namespace CGAL */ namespace CGAL { /*! - \page box_self_intersection_d box_self_intersection_d + \addtogroup PkgBoxIntersectionD_box_self_intersection_d The function `box_self_intersection_d` computes the pairwise intersecting boxes in a sequence of iso-oriented boxes in arbitrary dimension. The sequence of boxes is given with as a random-access iterator @@ -413,8 +404,7 @@ namespace CGAL { box from the sequence, the second argument is a copy of a box from the sequence. The performance of the algorithm can be tuned with a `cutoff` parameter, see the implementation section of the - `CGAL::box_intersection_d` function on page - \ref ccRef_CGALbox_intersection_d. + `CGAL::box_intersection_d` function. The algorithm creates a second copy of the boxes and reorders the boxes in the course of the algorithm. Now, depending on the size of a @@ -426,7 +416,7 @@ namespace CGAL { box type. A \f$ d\f$-dimensional iso-oriented box is defined as the - Cartesian product of \f$ d\f$ intervals. We call the + %Cartesian product of \f$ d\f$ intervals. We call the box half-open if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i) \,|\, 0 \leq i < d\}\f$ are half-open intervals, and we call the box closed if the \f$ d\f$ intervals \f$ \{ [lo_i,hi_i] \,|\, 0 \leq i < d\}\f$ are closed @@ -483,7 +473,7 @@ namespace CGAL { ### Implementation ### See the implementation section of the `CGAL::box_intersection_d` - function on page \ref ccRef_CGALbox_intersection_d. + function. ### Example ### @@ -505,30 +495,25 @@ namespace CGAL { */ /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_self_intersection_d Invocation of box intersection with default box traits `CGAL::Box_intersection_d::Box_traits_d`, where `Box_handle` corresponds to the iterator value type of `RandomAccessIterator`. - See \ref box_self_intersection_d. - */ template< class RandomAccessIterator, class Callback > void box_self_intersection_d( RandomAccessIterator begin, RandomAccessIterator end, Callback callback, std::ptrdiff_t cutoff = 10, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); /*! - \ingroup PkgBoxIntersectionD + \ingroup PkgBoxIntersectionD_box_self_intersection_d Invocation with custom box traits. - - See \ref box_self_intersection_d. - */ template< class RandomAccessIterator, class Callback, class BoxTraits > @@ -537,6 +522,6 @@ void box_self_intersection_d( Callback callback, BoxTraits box_traits, std::ptrdiff_t cutoff = 10, - Box_intersection_d::Topology topology = Box_intersection_d::CLOSED); + CGAL::Box_intersection_d::Topology topology = CGAL::Box_intersection_d::CLOSED); } /* namespace CGAL */ diff --git a/Box_intersection_d/doc/Box_intersection_d/PackageDescription.txt b/Box_intersection_d/doc/Box_intersection_d/PackageDescription.txt index 5496e93eef9..cc8941e53ef 100644 --- a/Box_intersection_d/doc/Box_intersection_d/PackageDescription.txt +++ b/Box_intersection_d/doc/Box_intersection_d/PackageDescription.txt @@ -1,9 +1,27 @@ /// \defgroup PkgBoxIntersectionD Intersecting Sequences of dD Iso-oriented Boxes Reference /// \defgroup PkgBoxIntersectionDConcepts Concepts /// \ingroup PkgBoxIntersectionD + +/// \defgroup PkgBoxIntersectionDClasses Classes +/// \ingroup PkgBoxIntersectionD + +/// \defgroup PkgBoxIntersectionD_box_intersection_d box_intersection_d +/// \ingroup PkgBoxIntersectionD + + +/// \defgroup PkgBoxIntersectionD_box_intersection_all_pairs_d box_intersection_all_pairs_d +/// \ingroup PkgBoxIntersectionD + +/// \defgroup PkgBoxIntersectionD_box_self_intersection_d box_self_intersection_d +/// \ingroup PkgBoxIntersectionD + +/// \defgroup PkgBoxIntersectionD_box_self_intersection_all_pairs_d box_self_intersection_all_pairs_d +/// \ingroup PkgBoxIntersectionD /*! \addtogroup PkgBoxIntersectionD -\todo check generated documentation + +\todo de-math and change D to d for the dimension + \PkgDescriptionBegin{Intersecting Sequences of dD Iso-oriented Boxes,PkgBoxIntersectionDSummary} \PkgPicture{box_inters-small.gif} \PkgAuthors{Lutz Kettner, Andreas Meyer, and Afra Zomorodian}