CGAL 6.2 - Fast Intersection and Distance Computation (AABB Tree): CGAL::AABB_traits_3< GeomTraits, AABBPrimitive, BboxMap > Class Template Reference

CGAL 6.2 - Fast Intersection and Distance Computation (AABB Tree)

Loading...
Searching...
No Matches
List of all members | Classes | Public Member Functions
CGAL::AABB_traits_3< GeomTraits, AABBPrimitive, BboxMap > Class Template Reference
Reference Manual

`#include <CGAL/AABB_traits_3.h>`

## Definition

template<typename GeomTraits, typename AABBPrimitive, typename BboxMap = Default>
class CGAL::AABB_traits_3< GeomTraits, AABBPrimitive, BboxMap >

This traits class handles any type of 3D geometric primitives provided that the proper intersection tests and constructions are implemented.

It handles points, rays, lines and segments as query types for intersection detection and computations, and it handles points as query type for distance queries.

Is model of
  `AABBTraits`
  `AABBRayIntersectionTraits`

Template Parameters

  GeomTraits | must be a model of the concept AABBGeomTraits_3, and provide the geometric types as well as the intersection tests and computations.
  AABBPrimitive | provide the type of primitives stored in the AABB_tree. It is a model of the concept `AABBPrimitive` or `AABBPrimitiveWithSharedData`.
  BboxMap | must be a model of `ReadablePropertyMap` that has as key type a primitive id, and as value type a `Bounding_box`. If the type is `Default` the `Datum` must have the member function `bbox()` that returns the bounding box of the primitive.

If the argument `GeomTraits` is a model of the concept AABBRayIntersectionGeomTraits_3, this class is also a model of AABBRayIntersectionTraits.

See also
  `AABBTraits`
  `AABB_tree`
  `AABBPrimitive`
  `AABBPrimitiveWithSharedData`

Examples
  AABB_tree/AABB_custom_example.cpp, AABB_tree/AABB_custom_indexed_triangle_set_array_example.cpp, AABB_tree/AABB_custom_indexed_triangle_set_example.cpp, AABB_tree/AABB_custom_triangle_soup_example.cpp, AABB_tree/AABB_face_graph_triangle_example.cpp, AABB_tree/AABB_halfedge_graph_edge_example.cpp, AABB_tree/AABB_insertion_example.cpp, AABB_tree/AABB_polyhedron_edge_example.cpp, AABB_tree/AABB_polyhedron_facet_distance_example.cpp, AABB_tree/AABB_polyhedron_facet_intersection_example.cpp, AABB_tree/AABB_ray_shooting_example.cpp, AABB_tree/AABB_segment_3_example.cpp, and AABB_tree/AABB_triangle_3_example.cpp.

## Classes
class | Do_intersect
| Function object using `GeomTraits::Do_intersect`. More...
struct | Intersection_and_primitive_id
| `Intersection_and_primitive_id<Query>::Type::first_type` is found according to the result type of `GeomTraits::Intersect_3::operator()`. More...

## Public Member Functions
| AABB_traits_3 ()
| Default constructor.

## Types
typedef GeomTraits::Point_3 | Point
| Point type.
typedef GeomTraits::Point_3 | Point_3
| Deprecated point type.
typedef GeomTraits::Iso_cuboid_3 | Iso_cuboid_3
| additional types for the search tree, required by the RangeSearchTraits concept
typedef CGAL::Bbox_3 | Bounding_box
| Bounding box type.