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.
Provides the nested type `Result<A, B>` where `Result<A, B>::Type` is the return
type of the `operator()(A, B)`.
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;

View File

@ -53,10 +53,21 @@ typedef Hidden_type Bounding_box;
typedef std::pair<Point_3, Primitive::Id> Point_and_primitive_id;
/*!
\deprecated
*/
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
@ -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:
`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;

View File

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