CGAL 5.0.1 - 3D Mesh Generation
|
#include <CGAL/Mesh_domain_with_polyline_features_3.h>
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.
MeshDomain_3 | is the type of the domain which should be extended. It has to be a model of the MeshDomain_3 concept. |
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>
Types | |
typedef MeshDomain_3::Surface_patch_index | Surface_patch_index |
typedef MeshDomain_3::Subdomain_index | Subdomain_index |
typedef int | Curve_index |
typedef int | Corner_index |
typedef Mesh_3::internal::Index_generator_with_features< typename MeshDomain_3::Subdomain_index, Surface_patch_index, Curve_index, Corner_index >::type | Index |
typedef CGAL::Tag_true | Has_features |
typedef MeshDomain_3::R::FT | FT |
Creation | |
Forwards the arguments to the constructor of the base class. | |
Mesh_domain_with_polyline_features_3 () | |
template<typename T1 > | |
Mesh_domain_with_polyline_features_3 (const T1 &o1, typename boost::disable_if< boost::is_same< T1, Self >, CGAL::Tag_false >::type *=0) | |
template<typename T1 , typename T2 , typename ... T> | |
Mesh_domain_with_polyline_features_3 (const T1 &o1, const T2 &o2, const T &...o) | |
Operations | |
template<typename InputIterator > | |
void | add_features (InputIterator first, InputIterator end) |
Add 1-dimensional features in the domain. More... | |
template<typename InputIterator , typename PolylinePMap , typename IncidentPatchesIndicesPMap > | |
void | add_features_and_incidences (InputIterator first, InputIterator end, PolylinePMap polyline_pmap, IncidentPatchesIndicesPMap incident_patches_indices_pmap) |
Add 1-dimensional features (curves) from the range [first, end) in the domain with their incidences with 2-dimensional features (patches) of the domain. More... | |
Implementation of the concept MeshDomainWithFeatures_3 | |
The following methods implement the requirement of the concept | |
template<typename OutputIterator > | |
OutputIterator | get_corners (OutputIterator out) const |
Implements MeshDomainWithFeatures_3::get_corners() . More... | |
template<typename OutputIterator > | |
OutputIterator | get_curves (OutputIterator out) const |
Implements MeshDomainWithFeatures_3::get_curves() . More... | |
FT | curve_segment_length (const Point_3 &p, const Point_3 q, const Curve_index &curve_index, CGAL::Orientation orientation) const |
Implements MeshDomainWithFeatures_3::curve_segment_length() . | |
FT | curve_length (const Curve_index &curve_index) const |
Implements MeshDomainWithFeatures_3::curve_length() . | |
Point_3 | construct_point_on_curve (const Point_3 &starting_point, const Curve_index &curve_index, FT distance) const |
Implements MeshDomainWithFeatures_3::construct_point_on_curve() . | |
CGAL::Sign | distance_sign_along_loop (const Point_3 &p, const Point_3 &q, const Point_3 &r, const Curve_index &index) const |
Implements MeshDomainWithFeatures_3::distance_sign_along_loop() . | |
CGAL::Sign | distance_sign (const Point_3 &p, const Point_3 &q, const Curve_index &index) const |
Implements MeshDomainWithFeatures_3::distance_sign() . | |
bool | is_loop (const Curve_index &index) const |
Implements MeshDomainWithFeatures_3::is_loop() . | |
bool | is_curve_segment_covered (const Curve_index &index, CGAL::Orientation orientation, const Point_3 &c1, const Point_3 &c2, const FT sq_r1, const FT sq_r2) const |
Implements MeshDomainWithFeatures_3::is_curve_segment_covered() . | |
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 . | |
Index | index_from_curve_index (const Curve_index &index) const |
Returns an Index from a Curve_index | |
Index | index_from_corner_index (const Corner_index &index) const |
Returns an Index from a Corner_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 . | |
Curve_index | curve_index (const Index &index) const |
Returns a Curve_index from an Index | |
Corner_index | corner_index (const Index &index) const |
Returns a Corner_index from an Index | |
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 std::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 . | |
IndicesOutputIterator CGAL::Mesh_domain_with_polyline_features_3< MD_ >::add_features | ( | InputIterator | first, |
InputIterator | end | ||
) |
Add 1-dimensional features in the domain.
InputIterator
value type must be a model of the concept MeshPolyline_3
.
IndicesOutputIterator CGAL::Mesh_domain_with_polyline_features_3< MD_ >::add_features_and_incidences | ( | InputIterator | first, |
InputIterator | end, | ||
PolylinePMap | polyline_pmap, | ||
IncidentPatchesIndicesPMap | incident_patches_indices_pmap | ||
) |
Add 1-dimensional features (curves) from the range [first, end)
in the domain with their incidences with 2-dimensional features (patches) of the domain.
InputIterator | input iterator over curves |
PolylinePMap | is a model of ReadablePropertyMap with key type std::iterator_traits<InputIterator>::reference and a value type that is a model of MeshPolyline_3 . |
IncidentPatchesIndicesPMap | is a model of ReadablePropertyMap with key type std::iterator_traits<InputIterator>::reference and a value type that is a range of Surface_patch_index . |
first | iterator to the first curve of the sequence |
end | past-the-end iterator of the sequence of curves |
polyline_pmap | the property map that provides access to the polyline, model of MeshPolyline_3 , from the reference type of the iterator |
incident_patches_indices_pmap | the property map that provides access to the set of indices of the surface patches that are incident to a given 1D-feature (curve) |
OutputIterator CGAL::Mesh_domain_with_polyline_features_3< MD_ >::get_corners | ( | OutputIterator | out | ) | const |
Implements MeshDomainWithFeatures_3::get_corners()
.
OutputIterator value type is std::pair<Corner_index, Point_3>
OutputIterator CGAL::Mesh_domain_with_polyline_features_3< MD_ >::get_curves | ( | OutputIterator | out | ) | const |
Implements MeshDomainWithFeatures_3::get_curves()
.
OutputIterator value type is std::tuple<Curve_index, std::pair<Point_3,Index>, std::pair<Point_3,Index> >