doc_tex -> doxygen of the AABB Tree documentation

This commit is contained in:
Andreas Fabri 2012-12-05 14:37:56 +01:00
parent 215ef53720
commit e0acf10424
3 changed files with 39 additions and 14 deletions

View File

@ -38,8 +38,11 @@ typedef Hidden_type Do_intersect_3;
/*! /*!
A functor object to construct the intersection between two geometric objects. A functor object to construct the intersection between two geometric objects.
Provides the nested type `Result<A, B>` where `Result<A, B>::Type` is the return
type of the `operator()(A, B)`.
Provides the operators: Provides the operators:
`CGAL::Object operator()(const Type_1& type_1, const Type_2& type_2);` where `Type_1` and `Type_2` are any relevant types among `Ray_3`, `Segment_3`, `Line_3`, `Triangle_3`, `Plane_3` and `Bbox_3`. Relevant herein means that a line primitive (ray, segment, line) is tested against a planar or solid primitive (plane, triangle, box). The operator computes a `CGAL::Object` which is the intersection between the objects `type_1` and `type_2`. `Result<A, B> operator()(const A& a, const B& b);` where `A` and `B` are any relevant types among `Ray_3`, `Segment_3`, `Line_3`, `Triangle_3`, `Plane_3` and `Bbox_3`. Relevant herein means that a line primitive (ray, segment, line) is tested against a planar or solid primitive (plane, triangle, box). A model of `Kernel::Intersect_3` fulfills those requirements.
*/ */
typedef Hidden_type Intersect_3; typedef Hidden_type Intersect_3;

View File

@ -53,10 +53,21 @@ typedef Hidden_type Bounding_box;
typedef std::pair<Point_3, Primitive::Id> Point_and_primitive_id; typedef std::pair<Point_3, Primitive::Id> Point_and_primitive_id;
/*! /*!
\deprecated
*/ */
typedef std::pair<Object, Primitive::Id> Object_and_primitive_id; typedef std::pair<Object, Primitive::Id> Object_and_primitive_id;
/*! A nested class template to aquire the pair of the return type of
intersections with an object of type `Query` and a
`Primitive::Id` through the member typedef `Type`.
This class is convertible to `Point_and_primitive_id`.
*/
template <typename Query>
struct Intersection_and_primitive_id{};
/// @} /// @}
/// \name Splitting /// \name Splitting
@ -112,7 +123,7 @@ typedef Hidden_type Do_intersect;
/*! /*!
A functor object to compute the intersection of a query and a primitive. Provides the operator: A functor object to compute the intersection of a query and a primitive. Provides the operator:
`boost::optional<Object_and_primitive_id> operator()(const Query & q, const Primitive& primitive);` which returns the intersection as a pair composed of an object and a primitive id, iff the query intersects the primitive. `boost::optional<Intersection_and_primitive_id<Query>::type operator()(const Query & q, const Primitive& primitive);` which returns the intersection as a pair composed of an object and a primitive id, iff the query intersects the primitive.
*/ */
typedef Hidden_type Intersect; typedef Hidden_type Intersect;

View File

@ -74,8 +74,16 @@ namespace CGAL {
typedef typename AABBTraits::Bounding_box Bounding_box; typedef typename AABBTraits::Bounding_box Bounding_box;
/// ///
typedef typename AABBTraits::Point_and_primitive_id Point_and_primitive_id; typedef typename AABBTraits::Point_and_primitive_id Point_and_primitive_id;
/// /// \deprecated
typedef typename AABBTraits::Object_and_primitive_id Object_and_primitive_id; typedef typename AABBTraits::Object_and_primitive_id Object_and_primitive_id;
/*!
\todo Fill in the types in the std::pair.
A nested type to aquire the return type of intersections
with an object of type `Query` through the member typedef
`Type` equal to `std::pair< >`
*/
template<typename Query> template<typename Query>
struct Intersection_and_primitive_id { struct Intersection_and_primitive_id {
typedef typename AABBTraits::template Intersection_and_primitive_id<Query>::Type Type; typedef typename AABBTraits::template Intersection_and_primitive_id<Query>::Type Type;
@ -232,22 +240,25 @@ public:
/// \name Intersections /// \name Intersections
///@{ ///@{
/// Outputs to the iterator the list of all intersections between /// Outputs the list of all intersections, as objects of
/// the query and input data, as objects of type /// `Intersection_and_primitive_id<Query>::Type`,
/// `Object_and_primitive_id`. Type `Query` must be a type /// between the query and the input data to
/// for which `do_intersect` predicates /// the iterator. `do_intersect()`
/// and intersections are defined in the traits class AABBTraits. /// predicates and intersections must be defined for Query`
/// in the `AABBTraits` class.
template<typename Query, typename OutputIterator> template<typename Query, typename OutputIterator>
OutputIterator all_intersections(const Query& query, OutputIterator out) const; OutputIterator all_intersections(const Query& query, OutputIterator out) const;
/// Returns the first encountered intersection, iff the query /// Returns the first encountered intersection. No particular
/// intersects at least one of the input primitives. No particular /// order is guaranteed over the tree traversal, e.g, the
/// order is guaranteed over the tree traversal, such that, e.g, /// primitive returned is not necessarily the closest from the
/// the primitive returned is not necessarily the closest from the
/// source point of a ray query. Type `Query` must be a type /// source point of a ray query. Type `Query` must be a type
/// for which `do_intersect` predicates /// for which `do_intersect` predicates
/// and intersections are defined in the traits class AABBTraits. /// and intersections are defined in the traits class AABBTraits.
template <typename Query> template <typename Query>
#if CGAL_INTERSECTION_VERSION < 2 #if CGAL_INTERSECTION_VERSION < 2
boost::optional<Object_and_primitive_id> boost::optional<Object_and_primitive_id>