\( \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.9 - 3D Mesh Generation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Mesh_domain_with_polyline_features_3< MeshDomain_3 > Class Template Reference

#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_3is 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_3D_image_with_features.cpp, and 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.