\( \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::Mesh_domain_with_polyline_features_3< MeshDomain_3 > Class Template Reference
Domain Classes

`#include <CGAL/Mesh_domain_with_polyline_features_3.h>`

## Inherits from

MeshDomain_3.

## Definition

The class `Mesh_domain_with_polyline_features_3` is designed to allow the user to add some 0- and 1-dimensional features into any model of the `MeshDomain_3` concept.

The 1-dimensional features are described as polylines whose endpoints are the added corners.

Template Parameters

  MeshDomain_3 | is the type of the domain which should be extended. It has to be a model of the `MeshDomain_3` concept.

Is Model Of:
  `MeshDomainWithFeatures_3`

See Also
  `MeshDomain_3`
  `MeshPolyline_3`
  `CGAL::Implicit_mesh_domain_3<Function,BGT>`
  `CGAL::Polyhedral_mesh_domain_3<Polyhedron,IGT,TriangleAccessor>`
  `CGAL::Labeled_image_mesh_domain_3<Image,BGT>`

Examples:
  Mesh_3/mesh_two_implicit_spheres_with_balls.cpp.

## Types
typedef int | Corner_index
| `Corner_index` type.
typedef int | Curve_segment_index
| `Curve_segment_index` type.

## Creation
template<typename... T>
| Mesh_domain_with_polyline_features_3 (T...t)
| Constructor. More...

## Operations
template<typename InputIterator >
void | add_features (InputIterator begin, InputIterator beyond)
| Add 1-dimensional features in the domain. More...
template<typename InputIterator >
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...

## Additional Inherited Members
Public Types inherited from MeshDomain_3
typedef unspecified_type | R
| Geometric traits class. More...
typedef unspecified_type | Point_3
| Point type.
typedef unspecified_type | Segment_3
| Segment type.
typedef unspecified_type | Ray_3
| Ray type.
typedef unspecified_type | Line_3
| Line type.
typedef CGAL::Tag_false | Has_features
| A type to distinguish `MeshDomain_3` models from `MeshDomainWithFeatures_3` models.
typedef unspecified_type | Subdomain_index
| Type of indices for subdomains of the input domain. More...
typedef unspecified_type | Surface_patch_index
| Type of indices for surface patches (boundaries and interfaces) of the input domain. More...
typedef unspecified_type | Index
| Type of indices to be stored at mesh vertices to characterize the lowest dimensional face of the input complex on which the vertex lies. More...
typedef CGAL::cpp11::tuple < Point_3, Index, int > | Intersection
| Returns type of `Construct_intersection` queries. More...
typedef unspecified_type | Construct_initial_points
| A function object to construct a set of initial points on the surface of the domain. More...
typedef unspecified_type | Is_in_domain
| A function object to query whether a point is in the input domain or not. More...
typedef unspecified_type | Do_intersect_surface
| A function object which answers intersection queries between the surface patches of the domain and objects of type `Segment_3`, `Ray_3` or `Line_3`. More...
typedef unspecified_type | Construct_intersection
| A function object to construct the intersection between an object of type `Segment_3`, `Ray_3` or `Line_3` and an interface. More...
Public Member Functions inherited from MeshDomain_3
Bbox_3 | bbox () const
| Returns a bounding box of the domain.
Construct_initial_points | construct_initial_points_object ()
Is_in_domain | is_in_domain_object ()
Do_intersect_surface | do_intersect_surface_object ()
Construct_intersection | construct_intersection_object ()
Index | index_from_surface_patch_index (Surface_patch_index surface_patch_index)
| Returns the index to be stored at a vertex lying on the surface patch identified by `surface_patch_index`.
Index | index_from_subdomain_index (Subdomain_index subdomain_index)
| Returns the index to be stored at a vertex lying in the subdomain identified by `subdomain_index`.
Surface_patch_index | surface_patch_index (Index index)
| Returns the `Surface_patch_index` of the surface patch where lies a vertex with dimension 2 and index `index`.
Subdomain_index | subdomain_index (Index index)
| Returns the index of the subdomain containing a vertex with dimension 3 and index `index`.

## Constructor & Destructor Documentation

template<typename MeshDomain_3>
template<typename... T>

CGAL::Mesh_domain_with_polyline_features_3< MeshDomain_3 >::Mesh_domain_with_polyline_features_3 | ( | T... | t) |  |

Constructor.

Forwards the arguments to the constructor of the base class.

## Member Function Documentation

template<typename MeshDomain_3>
template<typename InputIterator >

void CGAL::Mesh_domain_with_polyline_features_3< MeshDomain_3 >::add_features | ( | InputIterator | begin,
|  | InputIterator | beyond
| ) |  |

Add 1-dimensional features in the domain.

`InputIterator` value type must be a model of the concept `MeshPolyline_3`.

template<typename MeshDomain_3>
template<typename InputIterator >

void CGAL::Mesh_domain_with_polyline_features_3< MeshDomain_3 >::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.

The `InputIterator` value type must be `std::pair<Polyline, std::pair<InputSurfacePatchIndexIterator, InputSurfacePatchIndexIterator> >` where `Polyline` must be a model of the concept `MeshPolyline_3` and the internal pair gives a range on surface patches indices which are incident to the polyline.