CGAL 6.0.1 - 3D Mesh Generation
Loading...
Searching...
No Matches
CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT > Class Template Reference

#include <CGAL/Polyhedral_mesh_domain_3.h>

Definition

template<class Polyhedron, class IGT>
class CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT >

The class Polyhedral_mesh_domain_3 implements a domain defined by a simplicial polyhedral surface.

The input polyhedral surface must be free of intersections. It must include (at least) one closed connected component that defines the boundary of the domain to be meshed. Inside this bounding component, the input polyhedral surface may contain several other components (closed or not) that will be represented in the final mesh. This class is a model of the concept MeshDomain_3.

Template Parameters
Polyhedronstands for the type of the input polyhedral surface(s), model of FaceListGraph.
IGTstands for a geometric traits class providing the types and functors required to implement the intersection tests and intersection computations for polyhedral boundary surfaces. This parameter has to be instantiated with a model of the concept IntersectionGeometricTraits_3.
Is model of
MeshDomain_3
See also
IntersectionGeometricTraits_3
CGAL::make_mesh_3().
Examples
Mesh_3/mesh_hybrid_mesh_domain.cpp, Mesh_3/mesh_polyhedral_domain.cpp, and Mesh_3/mesh_polyhedral_domain_sm.cpp.

Classes

struct  Construct_initial_points
 constructs a set of n points on the surface, and output them to the output iterator pts whose value type is required to be std::pair<Points_3, Index>. More...
 
struct  Construct_intersection
 Returns a point in the intersection of the primitive type with some boundary surface. More...
 
struct  Do_intersect_surface
 Returns true if the element type intersects properly any of the surface patches describing either the domain boundary or some subdomain boundary. More...
 
struct  Is_in_domain
 Returns true if point p is in the domain. More...
 

Public Member Functions

Bbox_3 bbox () const
 Returns a bounding box of the domain.
 
Index index_from_surface_patch_index (const Surface_patch_index &index) const
 Returns the index to be stored in a vertex lying on the surface identified by index.
 
Index index_from_subdomain_index (const Subdomain_index &index) const
 Returns the index to be stored in a vertex lying in the subdomain identified by index.
 
Surface_patch_index surface_patch_index (const Index &index) const
 Returns the Surface_patch_index of the surface patch where lies a vertex with dimension 2 and index index.
 
Subdomain_index subdomain_index (const Index &index) const
 Returns the index of the subdomain containing a vertex with dimension 3 and index index.
 

Creation

 Polyhedral_mesh_domain_3 (const Polyhedron &bounding_polyhedron)
 Construction from a bounding polyhedral surface which must be closed, and free of intersections.
 
 Polyhedral_mesh_domain_3 (const Polyhedron &p, const Polyhedron &bounding_polyhedron)
 Construction from a polyhedral surface, and a bounding polyhedral surface.
 
template<typename InputPolyhedraPtrIterator >
 Polyhedral_mesh_domain_3 (InputPolyhedraPtrIterator begin, InputPolyhedraPtrIterator end, const Polyhedron &bounding_polyhedron)
 Constructor from a sequence of polyhedral surfaces, and a bounding polyhedral surface.
 
template<typename InputPolyhedraPtrIterator >
 Polyhedral_mesh_domain_3 (InputPolyhedraPtrIterator begin, InputPolyhedraPtrIterator end)
 Constructor from a sequence of polyhedral surfaces, without a bounding surface.
 

Constructor & Destructor Documentation

◆ Polyhedral_mesh_domain_3() [1/4]

template<class Polyhedron , class IGT >
CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT >::Polyhedral_mesh_domain_3 ( const Polyhedron &  bounding_polyhedron)

Construction from a bounding polyhedral surface which must be closed, and free of intersections.

The inside of bounding_polyhedron will be meshed.

◆ Polyhedral_mesh_domain_3() [2/4]

template<class Polyhedron , class IGT >
CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT >::Polyhedral_mesh_domain_3 ( const Polyhedron &  p,
const Polyhedron &  bounding_polyhedron 
)

Construction from a polyhedral surface, and a bounding polyhedral surface.

The first polyhedron must be entirely included inside bounding_polyhedron, which must be closed and free of intersections. Using this constructor enables to mesh a polyhedral surface which is not closed, or has holes. The inside of bounding_polyhedron will be meshed.

◆ Polyhedral_mesh_domain_3() [3/4]

template<class Polyhedron , class IGT >
template<typename InputPolyhedraPtrIterator >
CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT >::Polyhedral_mesh_domain_3 ( InputPolyhedraPtrIterator  begin,
InputPolyhedraPtrIterator  end,
const Polyhedron &  bounding_polyhedron 
)

Constructor from a sequence of polyhedral surfaces, and a bounding polyhedral surface.

Template Parameters
InputPolyhedraPtrIteratormust be a model of ForwardIterator and value type Polyhedron*
Parameters
beginiterator for a sequence of pointers to polyhedra
enditerator for a sequence of pointers to polyhedra
bounding_polyhedronthe bounding surface

◆ Polyhedral_mesh_domain_3() [4/4]

template<class Polyhedron , class IGT >
template<typename InputPolyhedraPtrIterator >
CGAL::Polyhedral_mesh_domain_3< Polyhedron, IGT >::Polyhedral_mesh_domain_3 ( InputPolyhedraPtrIterator  begin,
InputPolyhedraPtrIterator  end 
)

Constructor from a sequence of polyhedral surfaces, without a bounding surface.

The domain will always answer false to is_in_domain() queries.

Template Parameters
InputPolyhedraPtrIteratormust be a model of ForwardIterator and value type Polyhedron*
Parameters
beginiterator for a sequence of pointers to polyhedra
enditerator for a sequence of pointers to polyhedra