#include <CGAL/Polyhedral_mesh_domain_3.h>
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
-
Polyhedron | stands for the type of the input polyhedral surface(s), model of FaceListGraph . |
IGT | stands 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.
|
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...
|
|
|
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 .
|
|
|
| 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.
|
|
◆ Polyhedral_mesh_domain_3() [1/4]
template<class Polyhedron , class IGT >
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 >
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
-
InputPolyhedraPtrIterator | must be a model of ForwardIterator and value type Polyhedron* |
- Parameters
-
begin | iterator for a sequence of pointers to polyhedra |
end | iterator for a sequence of pointers to polyhedra |
bounding_polyhedron | the bounding surface |
◆ Polyhedral_mesh_domain_3() [4/4]
template<class Polyhedron , class IGT >
template<typename InputPolyhedraPtrIterator >
Constructor from a sequence of polyhedral surfaces, without a bounding surface.
The domain will always answer false
to is_in_domain()
queries.
- Template Parameters
-
InputPolyhedraPtrIterator | must be a model of ForwardIterator and value type Polyhedron* |
- Parameters
-
begin | iterator for a sequence of pointers to polyhedra |
end | iterator for a sequence of pointers to polyhedra |