summaryrefslogtreecommitdiffstats
path: root/libdimension/prtree.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2010-11-14 21:20:43 -0500
committerTavian Barnes <tavianator@gmail.com>2010-11-14 21:20:43 -0500
commit8fe33a340b8979a73fa84f201c15519a9b5d0266 (patch)
tree12cdbb1c1b9a48f533ab36980602785be1e1deeb /libdimension/prtree.h
parent20a55aa78050d94b187d4edfaac91ea00efea505 (diff)
downloaddimension-8fe33a340b8979a73fa84f201c15519a9b5d0266.tar.xz
Document libdimension with Doxygen.
Diffstat (limited to 'libdimension/prtree.h')
-rw-r--r--libdimension/prtree.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/libdimension/prtree.h b/libdimension/prtree.h
index 7ab616d..a0f7651 100644
--- a/libdimension/prtree.h
+++ b/libdimension/prtree.h
@@ -18,11 +18,12 @@
* <http://www.gnu.org/licenses/>. *
*************************************************************************/
-/*
- * Priority R-Trees for storing bounding box hierarchies. PR-trees are a data
- * structure introduced by Arge, de Berg, Haverkort, and Yi, which provides
- * asymptotically optimal worst-case lookup, while remaining efficient with
- * real-world data. Their structure is derived from B-trees.
+/**
+ * @file.
+ * Priority R-trees. PR-trees are a data structure introduced by Arge, de Berg,
+ * Haverkort, and Yi, which provides asymptotically optimal worst-case lookup,
+ * while remaining efficient with real-world data. Their structure is derived
+ * from B-trees.
*/
#ifndef DIMENSION_IMPL_PRTREE_H
@@ -30,19 +31,25 @@
#include <stdbool.h>
+/** A PR-tree node. */
typedef struct dmnsn_prtree_node dmnsn_prtree_node;
+/** A priority R-tree. */
typedef struct dmnsn_prtree {
dmnsn_bounding_box bounding_box;
dmnsn_prtree_node *root;
dmnsn_array *unbounded;
} dmnsn_prtree;
+/** Create a PR-tree. */
dmnsn_prtree *dmnsn_new_prtree(const dmnsn_array *objects);
+/** Delete a PR-tree. */
void dmnsn_delete_prtree(dmnsn_prtree *tree);
+/** Find the closest ray-object intersection in the tree. */
bool dmnsn_prtree_intersection(const dmnsn_prtree *tree, dmnsn_line ray,
dmnsn_intersection *intersection);
+/** Determine whether a point is inside any object in the tree. */
bool dmnsn_prtree_inside(const dmnsn_prtree *tree, dmnsn_vector point);
#endif /* DIMENSION_IMPL_PRTREE_H */