\( \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.8 - 3D Mesh Generation

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Polyhedral_mesh_domain_with_features_3< IGT > Class Template Reference
Domain Classes

`#include <CGAL/Polyhedral_mesh_domain_with_features_3.h>`

## Inherits from

CGAL::Mesh_domain_with_polyline_features_3< CGAL::Polyhedral_mesh_domain_3< CGAL::Mesh_polyhedron_3< IGT >::type, IGT > >.

## Definition

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 must also be either closed or included inside another polyhedral surface which is closed and free of intersection.

It is a model of the concept `MeshDomainWithFeatures_3`. It also provides a member function to automatically detect sharp features from the input polyhedral surface(s).

Template Parameters

  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:
  `MeshDomainWithFeatures_3`

See Also
  `CGAL::Mesh_domain_with_polyline_features_3<MeshDomain>`
  `CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor>`
  `CGAL::Mesh_polyhedron_3<IGT>`

Examples:
  Mesh_3/mesh_polyhedral_domain_with_features.cpp.

## 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` a polyhedral surface, and a bounding polyhedral surface,. More...

## Operations
void | detect_features (FT angle_bound=120)
| Detects sharp features of the internal bounding polyhedron (and the potential internal 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...

## Constructor & Destructor Documentation

template<typename IGT >
template<typename Polyhedron >

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 interior of `bounding_polyhedron` will be meshed.

template<typename IGT >

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.

template<typename IGT >
template<typename Polyhedron >

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` 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.

## Member Function Documentation

template<typename IGT >

void CGAL::Polyhedral_mesh_domain_with_features_3< IGT >::detect_features | ( | FT | angle_bound = `120`) |  |

Detects sharp features 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.