\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.13 - 3D Mesh Generation
IntersectionGeometricTraits_3 Concept Reference

Definition

The concept IntersectionGeometricTraits_3 provides types and functors required to implement a model of MeshDomain_3, when the domain is described by a simplicial surface mesh forming its boundary. The concept IntersectionGeometricTraits_3 mainly provides the detection and construction of intersections between segments and triangles.

Has Models:
Any CGAL::Kernel.
See also
BisectionGeometricTraits_3
CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor>

Types

typedef unspecified_type Point_3
 Point type.
 
typedef unspecified_type Segment_3
 Segment type.
 
typedef unspecified_type Triangle_3
 Triangle type.
 
typedef unspecified_type Do_intersect_3
 Function object that detects an intersection between a 3D segment and a 3D triangle. More...
 
typedef unspecified_type Intersect_3
 Function object that constructs the intersection between a 3D segment and a 3D triangle. More...
 

Operations

Do_intersect_3 do_intersect_3_object ()
 Returns the intersection detection functor.
 
Intersect_3 intersect_3_object ()
 Returns the intersection constructor.
 

Member Typedef Documentation

◆ Do_intersect_3

Function object that detects an intersection between a 3D segment and a 3D triangle.

Partial model of Kernel::DoIntersect_3. Provides the operators:

  • bool operator()(Segment_3 seg, Triangle_3 tr)
  • bool operator()(Triangle_3 tr, Segment_3 seg)

which returns true, iff the triangle and the segment have a non empty intersection.

◆ Intersect_3

Function object that constructs the intersection between a 3D segment and a 3D triangle.

Partial model of Kernel::Intersect_3. Provides the operators:

  • boost::optional< boost::variant< Point_3, Segment_3 > > operator()(Segment_3 seg, Triangle_3 tr)
  • boost::optional< boost::variant< Point_3, Segment_3 > > operator()(Triangle_3 tr, Segment_3 seg)

which computes the intersection between the triangle and the segment.