CGAL 4.9 - 3D Mesh Generation
|
#include <CGAL/Polyhedral_mesh_domain_with_features_3.h>
The class Polyhedral_mesh_domain_with_features_3
implements a domain whose boundary is a simplicial polyhedral surface.
This surface must be free of intersection. It can either be closed, included inside another polyhedral surface which is closed and free of intersection, or open. In the latter case, the meshing process will only take care of the quality of the 1D (features and boundaries) and 2D (surfaces) components of the mesh.
It is a model of the concept MeshDomainWithFeatures_3
. It also provides a member function to automatically detect sharp features and boundaries from the input polyhedral surface(s).
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 . |
CGAL::Mesh_domain_with_polyline_features_3<MeshDomain>
CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor>
CGAL::Mesh_polyhedron_3<IGT>
Types | |
typedef unspecified_type | FT |
Numerical type. | |
Creation | |
template<typename Polyhedron > | |
Polyhedral_mesh_domain_with_features_3 (Polyhedron bounding_polyhedron) | |
Constructs a Polyhedral_mesh_domain_with_features_3 from a polyhedral surface of type Polyhedron . More... | |
Polyhedral_mesh_domain_with_features_3 (const std::string &filename) | |
Constructs a Polyhedral_mesh_domain_with_features_3 from an off file. More... | |
template<typename Polyhedron > | |
Polyhedral_mesh_domain_with_features_3 (Polyhedron polyhedron, Polyhedron bounding_polyhedron) | |
Constructs a Polyhedral_mesh_domain_with_features_3 from a polyhedral surface, and a bounding polyhedral surface. More... | |
Operations | |
void | detect_features (FT angle_bound=120) |
Detects sharp features and boundaries of the internal bounding polyhedron (and the potential internal polyhedron) and inserts them as features of the domain. More... | |
void | detect_borders () |
Detects border edges of the bounding polyhedron and inserts them as features of the domain. More... | |
Additional Inherited Members | |
Public Types inherited from CGAL::Mesh_domain_with_polyline_features_3< CGAL::Polyhedral_mesh_domain_3< CGAL::Mesh_polyhedron_3< IGT >::type, IGT > > | |
typedef int | Corner_index |
Corner_index type. | |
typedef int | Curve_segment_index |
Curve_segment_index type. | |
Public Member Functions inherited from CGAL::Mesh_domain_with_polyline_features_3< CGAL::Polyhedral_mesh_domain_3< CGAL::Mesh_polyhedron_3< IGT >::type, IGT > > | |
Mesh_domain_with_polyline_features_3 (T...t) | |
Constructor. More... | |
void | add_features (InputIterator begin, InputIterator beyond) |
Add 1-dimensional features in the domain. More... | |
void | add_features_and_incidences (InputIterator begin, InputIterator beyond) |
Add 1-dimensional features in the domain with their incidences with 2-dimensional features of the domain. More... | |
Public Member Functions inherited from CGAL::Polyhedral_mesh_domain_3< CGAL::Mesh_polyhedron_3< IGT >::type, IGT > | |
Polyhedral_mesh_domain_3 (CGAL::Mesh_polyhedron_3< IGT >::typebounding_polyhedron) | |
Construction from a bouding polyhedral surface which should be closed, and free of intersections. More... | |
Polyhedral_mesh_domain_3 (CGAL::Mesh_polyhedron_3< IGT >::typepolyhedron, CGAL::Mesh_polyhedron_3< IGT >::typebounding_polyhedron) | |
Construction from a polyhedral surface, and a bounding polyhedral surface,. More... | |
CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::Polyhedral_mesh_domain_with_features_3 | ( | Polyhedron | bounding_polyhedron) |
Constructs a Polyhedral_mesh_domain_with_features_3
from a polyhedral surface of type Polyhedron
.
The only requirement on type Polyhedron
is that CGAL::Mesh_polyhedron_3<IGT>::type
should be constructible from Polyhedron
. No feature detection is done at this level. Note that a copy of bounding_polyhedron
will be done. The polyhedron bounding_polyhedron
has to be closed and free of intersections. Its interior of bounding_polyhedron
will be meshed.
CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::Polyhedral_mesh_domain_with_features_3 | ( | const std::string & | filename) |
Constructs a Polyhedral_mesh_domain_with_features_3
from an off file.
No feature detection is done at this level.
CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::Polyhedral_mesh_domain_with_features_3 | ( | Polyhedron | polyhedron, |
Polyhedron | bounding_polyhedron | ||
) |
Constructs a Polyhedral_mesh_domain_with_features_3
from a polyhedral surface, and a bounding polyhedral surface.
CGAL::Mesh_polyhedron_3<IGT>::type
should be constructible from Polyhedron
. The first polyhedron should be entirely included inside bounding_polyhedron
, which has to be closed and free of intersections. Using this constructor allows to mesh a polyhedral surface which is not closed, or has holes. The inside of bounding_polyhedron
will be meshed.
void CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::detect_borders | ( | ) |
Detects border edges of the bounding polyhedron and inserts them as features of the domain.
This function should be called alone only, and not before or after detect_features()
.
void CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::detect_features | ( | FT | angle_bound = 120 ) |
Detects sharp features and boundaries of the internal bounding polyhedron (and the potential internal polyhedron) and inserts them as features of the domain.
angle_bound
gives the maximum angle (in degrees) between the two normal vectors of adjacent triangles. For an edge of the polyhedron, if the angle between the two normal vectors of its incident facets is bigger than the given bound, then the edge is considered as a feature edge.