From d61f26ea1104905f5fbfdb85a9975c3e891c75d9 Mon Sep 17 00:00:00 2001 From: Pierre Alliez Date: Wed, 24 Jun 2009 19:31:57 +0000 Subject: [PATCH] aabb tree: more on user manual --- AABB_tree/doc_tex/AABB_tree/PkgDescription.tex | 2 +- AABB_tree/doc_tex/AABB_tree/history.tex | 4 ++-- AABB_tree/doc_tex/AABB_tree/introduction.tex | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/AABB_tree/doc_tex/AABB_tree/PkgDescription.tex b/AABB_tree/doc_tex/AABB_tree/PkgDescription.tex index 1a2b4806e0c..95a364bfd6d 100644 --- a/AABB_tree/doc_tex/AABB_tree/PkgDescription.tex +++ b/AABB_tree/doc_tex/AABB_tree/PkgDescription.tex @@ -1,6 +1,6 @@ \begin{ccPkgDescription}{AABB tree \label{Pkg:AABB_tree}} %\ccPkgHowToCiteCgal{cgal:} -\ccPkgSummary{The AABB (axis-aligned bounding box) tree component offers a static data structure and algorithms to perform efficient intersection and distance queries against sets of 3D geometric objects.} +\ccPkgSummary{The AABB (axis-aligned bounding box) tree component offers a static data structure and algorithms to perform efficient intersection and distance queries against sets of finite 3D geometric objects.} \ccPkgIntroducedInCGAL{3.5} \ccPkgLicense{\ccLicenseQPL} diff --git a/AABB_tree/doc_tex/AABB_tree/history.tex b/AABB_tree/doc_tex/AABB_tree/history.tex index 7c9a5e5b3cc..d2a2205da7e 100644 --- a/AABB_tree/doc_tex/AABB_tree/history.tex +++ b/AABB_tree/doc_tex/AABB_tree/history.tex @@ -1,8 +1,8 @@ \section{Design and Implementation History} \label{AABB_tree_section_history} -Camille Wormser and Pierre Alliez started to work on this collision detection tool in 2007. The generic design for implementing both intersection and distance queries, and for generic queries and primitives was developed by Camille Wormser. +Camille Wormser and Pierre Alliez started working on a data structure for efficient collision detection in 2007. The generic design for implementing both intersection and distance queries, and for generic queries and primitives was developed by Camille Wormser. -In 2009, Pierre Alliez, St\'ephane Tayeb and Camille Wormser made the implementation CGAL-compliant, with the help of Laurent Rineau for optimizing the construction. +In 2009, Pierre Alliez, St\'ephane Tayeb and Camille Wormser made the implementation CGAL-compliant, with the help of Laurent Rineau for optimizing the tree construction. The authors wish to thank Andreas Fabri, Jane Tournois, Mariette Yvinec and Sylvain Lef\`ebvre for helpful comments and discussions. diff --git a/AABB_tree/doc_tex/AABB_tree/introduction.tex b/AABB_tree/doc_tex/AABB_tree/introduction.tex index b07cca4bb57..91f372cfa12 100644 --- a/AABB_tree/doc_tex/AABB_tree/introduction.tex +++ b/AABB_tree/doc_tex/AABB_tree/introduction.tex @@ -1,11 +1,12 @@ \section{Introduction} \label{AABB_tree_section_intro} -The AABB tree component offers a static data structure and algorithms to perform efficient intersection and distance queries against sets of 3D geometric objects. The set of geometric objects stored in the data structure may be queried for intersection detection, intersection computation and distance queries with any type of query, provided that the corresponding intersection and distance predicates and constructors are implemented in the traits class.\\ +The AABB tree component offers a static data structure and algorithms to perform efficient intersection and distance queries against sets of finite 3D geometric objects. The set of geometric objects stored in the data structure can be queried for intersection detection, intersection computation and distance queries with any type of query, provided that the corresponding intersection and distance predicates and constructors are implemented in the traits class.\\ -Examples of intersection queries include line objects (rays, lines or segments) against sets of triangles, or plane objects (planes or triangles) against sets of segments. An example of distance query consists of finding the closest point from a point query to a set of triangles.\\ +Examples of intersection queries include line objects (rays, lines, segments) against sets of triangles, or plane objects (planes, triangles) against sets of segments. An example of distance query consists of finding the closest point from a point query to a set of triangles.\\ -The AABB tree data structure takes as input an iterator range of geometric data, which are then converted into primitives, where each primitive gives access to both one input geometric object (so-called datum) and one reference id to this object. A typical example primitive wraps a 3D triangle as datum and a face handle of a polyhedral surface as id. Each intersection query can return the intersection objects (e.g., 3D points and/or segments for ray queries) as well the id (here the face handle) of the intersected primitives. Similarly, each distance query can return the closest point from the point query as well the id of the closest primitive. The reference id is used by the AABB tree to refer to the primitive in the results provided to the user. It is not at all used internally. It follows that, while in most cases each reference id would correspond to a unique primitive, this is not a requirement of the package: a user may very well use these reference ids as labels, each of them shared by several geometric object. From these primitives a hierarchy of axis-aligned bounding boxes (AABBs) is constructed and used to speed up intersection and distance queries (see Figure~\ref{fig:AABB-tree-anchor}). +The AABB tree data structure takes as input an iterator range of geometric data, which are then converted into primitives. From these primitives a hierarchy of axis-aligned bounding boxes (AABBs) is constructed and used to speed up intersection and distance queries (see Figure~\ref{fig:AABB-tree-anchor}). +Each primitive gives access to both one input geometric object (so-called datum) and one reference id to this object. A typical example primitive wraps a 3D triangle as datum and a face handle of a polyhedral surface as id. Each intersection query can return the intersection objects (e.g., 3D points or segments for ray queries) as well the id (here the face handle) of the intersected primitives. Similarly, each distance query can return the closest point from the point query as well the id of the closest primitive. The reference id is not used internally but simply used by the AABB tree to refer to the primitive in the results provided to the user. It follows that, while in most cases each reference id corresponds to a unique primitive, this is not a requirement of the component. This way a user may use these reference ids as labels, each of them being shared by several geometric object. % AABB tree over anchor triangle surface mesh model. \begin{center}