- a tag indicating if the task should be done using one or several threads.
-
Type: Either
CGAL::Sequential_tag
, orCGAL::Parallel_tag
, orCGAL::Parallel_if_available_tag
-
Default:
CGAL::Sequential_tag
CGAL 6.1 - Polygon Mesh Processing
|
Functions to corefine triangulated surface meshes and compute triangulated surface meshes of the union, difference and intersection of the bounded volumes.
Enumerations | |
enum | CGAL::Polygon_mesh_processing::Corefinement::Boolean_operation_type { UNION = 0 , INTERSECTION =1 , TM1_MINUS_TM2 =2 , TM2_MINUS_TM1 =3 , NONE } |
Integer identifiers to refer to a particular Boolean operation in the function corefine_and_compute_boolean_operations() . | |
Functions | |
template<class PointRange , class TriangleRange , class NamedParameters = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::autorefine_triangle_soup (PointRange &soup_points, TriangleRange &soup_triangles, const NamedParameters &np=parameters::default_values()) |
refines a soup of triangles so that no pair of triangles intersects. | |
template<class TriangleMesh , class NamedParameters = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::autorefine (TriangleMesh &tm, const NamedParameters &np=parameters::default_values()) |
refines a triangle mesh so that no triangles intersects in their interior. | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::clip (TriangleMesh &tm, TriangleMesh &clipper, const NamedParameters1 &np_tm=parameters::default_values(), const NamedParameters2 &np_c=parameters::default_values()) |
clips tm by keeping the part that is inside the volume bounded by clipper . | |
template<class TriangleMesh , class NamedParameters = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::clip (TriangleMesh &tm, const Plane_3 &plane, const NamedParameters &np=parameters::default_values()) |
clips tm by keeping the part that is on the negative side of plane (side opposite to its normal vector). | |
template<class TriangleMesh , class NamedParameters = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::clip (TriangleMesh &tm, const Iso_cuboid_3 &iso_cuboid, const NamedParameters &np=parameters::default_values()) |
clips tm by keeping the part that is inside iso_cuboid . | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::split (TriangleMesh &tm, TriangleMesh &splitter, const NamedParameters1 &np_tm=parameters::default_values(), const NamedParameters2 &np_s=parameters::default_values()) |
corefines tm and splitter and duplicates edges in tm that are on the intersection with splitter . | |
template<class TriangleMesh , class NamedParameters = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::split (TriangleMesh &tm, const Plane_3 &plane, const NamedParameters &np=parameters::default_values()) |
adds intersection edges of plane and tm in tm and duplicates those edges. | |
template<class TriangleMesh , class NamedParameters = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::split (TriangleMesh &tm, const Iso_cuboid_3 &iso_cuboid, const NamedParameters &np=parameters::default_values()) |
adds intersection edges of iso_cuboid and tm in tm and duplicates those edges. | |
template<class TriangleMesh , class NPIn1 = parameters::Default_named_parameters, class NPIn2 = parameters::Default_named_parameters, class NPOut0 = parameters::Default_named_parameters, class NPOut1 = parameters::Default_named_parameters, class NPOut2 = parameters::Default_named_parameters, class NPOut3 = parameters::Default_named_parameters> | |
std::array< bool, 4 > | CGAL::Polygon_mesh_processing::corefine_and_compute_boolean_operations (TriangleMesh &tm1, TriangleMesh &tm2, const std::array< std::optional< TriangleMesh * >, 4 > &output, const NPIn1 &np1=parameters::default_values(), const NPIn2 &np2=parameters::default_values(), const std::tuple< NPOut0, NPOut1, NPOut2, NPOut3 > &nps_out=std::tuple< NPOut0, NPOut1, NPOut2, NPOut3 >()) |
corefines tm1 and tm2 and for each triangle mesh tm_out passed as an optional in output different from std::nullopt , the triangulated surface mesh bounding the result of a particular Boolean operation between the volumes bounded by tm1 and tm2 will be put in the corresponding triangle mesh. | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters, class NamedParametersOut = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::corefine_and_compute_union (TriangleMesh &tm1, TriangleMesh &tm2, TriangleMesh &tm_out, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values(), const NamedParametersOut &np_out=parameters::default_values()) |
corefines tm1 and tm2 and puts in tm_out a triangulated surface mesh bounding the union of the volumes bounded by tm1 and tm2 . | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters, class NamedParametersOut = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::corefine_and_compute_intersection (TriangleMesh &tm1, TriangleMesh &tm2, TriangleMesh &tm_out, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values(), const NamedParametersOut &np_out=parameters::default_values()) |
corefines tm1 and tm2 and puts in tm_out a triangulated surface mesh bounding the intersection of the volumes bounded by tm1 and tm2 . | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters, class NamedParametersOut = parameters::Default_named_parameters> | |
bool | CGAL::Polygon_mesh_processing::corefine_and_compute_difference (TriangleMesh &tm1, TriangleMesh &tm2, TriangleMesh &tm_out, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values(), const NamedParametersOut &np_out=parameters::default_values()) |
corefines tm1 and tm2 and puts in tm_out a triangulated surface mesh bounding the volume bounded by tm1 minus the volume bounded by tm2 . | |
template<class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters> | |
void | CGAL::Polygon_mesh_processing::corefine (TriangleMesh &tm1, TriangleMesh &tm2, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values()) |
corefines tm1 and tm2 . | |
template<class OutputIterator , class TriangleMesh , class NamedParameters1 = parameters::Default_named_parameters, class NamedParameters2 = parameters::Default_named_parameters> | |
OutputIterator | CGAL::Polygon_mesh_processing::surface_intersection (const TriangleMesh &tm1, const TriangleMesh &tm2, OutputIterator polyline_output, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values()) |
computes the intersection of triangles of tm1 and tm2 . | |
void CGAL::Polygon_mesh_processing::autorefine | ( | TriangleMesh & | tm, |
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/autorefinement.h>
refines a triangle mesh so that no triangles intersects in their interior.
Note that this function is only provided as a shortcut for calling autorefine_triangle_soup()
with a mesh. For any advance usage the aforementioned function should be called directly.
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NamedParameters | a sequence of Named Parameters |
tm | input triangulated surface mesh |
np | an optional sequence of Named Parameters among the ones listed below |
clear(tm)
will be called before filling tm
with the refined mesh.
| |
| |
|
void CGAL::Polygon_mesh_processing::autorefine_triangle_soup | ( | PointRange & | soup_points, |
TriangleRange & | soup_triangles, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/autorefinement.h>
refines a soup of triangles so that no pair of triangles intersects.
Output triangles may share a common edge or a common vertex (but with the same indexed position in points
). Note that points in soup_points
can only be added (intersection points) at the end of the container, with the initial order preserved. Note that if soup_points
contains two or more identical points then only the first copy (following the order in the soup_points
) will be used in soup_triangles
. soup_triangles
will be updated to contain both the input triangles and the new subdivided triangles. Degenerate triangles will be removed. Also triangles in soup_triangles
will be triangles without intersection first, followed by triangles coming from a subdivision induced by an intersection. The named parameter visitor()
can be used to track
PointRange | a model of the concept RandomAccessContainer whose value type is the point type |
TriangleRange | a model of the concepts RandomAccessContainer , BackInsertionSequence and Swappable , whose value type is a model of the concept RandomAccessContainer whose value type is convertible to std::size_t and that is constructible from an std::initializer_list<std::size_t> of size 3. |
NamedParameters | a sequence of Named Parameters |
soup_points | points of the soup of polygons |
soup_triangles | each element in the range describes a triangle using the indexed position of the points in soup_points |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
|
bool CGAL::Polygon_mesh_processing::clip | ( | TriangleMesh & | tm, |
const Iso_cuboid_3 & | iso_cuboid, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
clips tm
by keeping the part that is inside iso_cuboid
.
If tm
is closed, the clipped part can be closed too if the named parameter clip_volume
is set to true
. See Subsection Clipping for more details.
Iso_cuboid_3
must be from the same Kernel as the point of the internal vertex point map of TriangleMesh
. Iso_cuboid_3
must be from the same Kernel as the point of the vertex point map of tm
.TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph and FaceListGraph . An internal property map for CGAL::vertex_point_t must be available. |
NamedParameters | a sequence of Named Parameters |
tm | input triangulated surface mesh |
iso_cuboid | iso-cuboid used to clip tm . |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
true
if the output surface mesh is manifold. If false
is returned tm
is only refined by the intersection with iso_cuboid
.split()
bool CGAL::Polygon_mesh_processing::clip | ( | TriangleMesh & | tm, |
const Plane_3 & | plane, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
clips tm
by keeping the part that is on the negative side of plane
(side opposite to its normal vector).
If tm
is closed, the clipped part can be closed too if the named parameter clip_volume
is set to true
. See Subsection Clipping for more details.
Plane_3
must be from the same Kernel as the point of the internal vertex point map of TriangleMesh
. Plane_3
must be from the same Kernel as the point of the vertex point map of tm
.TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph and FaceListGraph . An internal property map for CGAL::vertex_point_t must be available. |
NamedParameters | a sequence of Named Parameters |
tm | input triangulated surface mesh |
plane | plane whose negative side defines the half-space to intersect tm with. Plane_3 is the plane type for the same CGAL kernel as the point of the vertex point map of tm . |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
| |
|
true
if the output surface mesh is manifold. If false
is returned tm
is only refined by the intersection with plane
.split()
bool CGAL::Polygon_mesh_processing::clip | ( | TriangleMesh & | tm, |
TriangleMesh & | clipper, | ||
const NamedParameters1 & | np_tm = parameters::default_values() , |
||
const NamedParameters2 & | np_c = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
clips tm
by keeping the part that is inside the volume bounded by clipper
.
If tm
is closed, the clipped part can be closed too if the named parameter clip_volume
is set to true
. See Subsection Clipping for more details.
clipper
will be modified (refined with the intersection with tm
).!CGAL::Polygon_mesh_processing::does_self_intersect(tm)
!CGAL::Polygon_mesh_processing::does_self_intersect(clipper)
CGAL::Polygon_mesh_processing::does_bound_a_volume(clipper)
TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph and FaceListGraph . |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
tm | input triangulated surface mesh |
clipper | triangulated surface mesh used to clip tm |
np_tm | an optional sequence of Named Parameters among the ones listed below |
np_c | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
| |
| |
|
true
if the output surface mesh is manifold. If false
is returned tm
and clipper
are only corefined.split()
void CGAL::Polygon_mesh_processing::corefine | ( | TriangleMesh & | tm1, |
TriangleMesh & | tm2, | ||
const NamedParameters1 & | np1 = parameters::default_values() , |
||
const NamedParameters2 & | np2 = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/corefinement.h>
corefines tm1
and tm2
.
For each input triangulated surface mesh, if a constrained edge is provided, intersection edges will be marked as constrained. If an edge that was marked as constrained is split, its sub-edges will be marked as constrained as well.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
std::array< bool, 4 > CGAL::Polygon_mesh_processing::corefine_and_compute_boolean_operations | ( | TriangleMesh & | tm1, |
TriangleMesh & | tm2, | ||
const std::array< std::optional< TriangleMesh * >, 4 > & | output, | ||
const NPIn1 & | np1 = parameters::default_values() , |
||
const NPIn2 & | np2 = parameters::default_values() , |
||
const std::tuple< NPOut0, NPOut1, NPOut2, NPOut3 > & | nps_out = std::tuple<NPOut0,NPOut1,NPOut2,NPOut3>() |
||
) |
#include <CGAL/Polygon_mesh_processing/corefinement.h>
corefines tm1
and tm2
and for each triangle mesh tm_out
passed as an optional in output
different from std::nullopt
, the triangulated surface mesh bounding the result of a particular Boolean operation between the volumes bounded by tm1
and tm2
will be put in the corresponding triangle mesh.
The positions of the meshes in the array output
are specific to the Boolean operation to compute and Corefinement::Boolean_operation_type
encodes and describes the ordering. Constructing the default array means that no Boolean operation will be done. Overwriting a default value will trigger the corresponding operation. In such a case, the address to a valid surface mesh must be provided. The optional named parameters for all output meshes are provided as a tuple
and follow the same order as the array output
. A call to corefine_and_compute_boolean_operations()
with optional named parameters passed for output meshes should be done using make_tuple()
as the types of named parameters are unspecified.
If tm1
and/or tm2
are part of the output surface meshes, they will be updated to contain the output (in-place operation), in any other case, the corresponding result will be inserted into the mesh without clearing it first.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NPIn1 | a sequence of Named Parameters |
NPIn2 | a sequence of Named Parameters |
NPOut0 | a sequence of Named Parameters for computing the union of the volumes bounded by tm1 and tm2 |
NPOut1 | a sequence of Named Parameters for computing the intersection of the volumes bounded by tm1 and tm2 |
NPOut2 | a sequence of Named Parameters for computing the difference of the volumes bounded by tm1 and tm2 |
NPOut3 | a sequence of Named Parameters for computing the difference of the volumes bounded by tm2 and tm1 |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
output | an array of output surface meshes |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
nps_out | an optional tuple of sequences of Named Parameters each among the ones listed below (tm_out being used to refer to the output surface mesh in output corresponding to a given named parameter sequence) |
| |
|
true
iff the output surface mesh is manifold, and it is put in the surface mesh at the same position as in output
. Note that if an output surface mesh also was an input mesh but the output operation was generating a non-manifold mesh, the surface mesh will only be corefined. bool CGAL::Polygon_mesh_processing::corefine_and_compute_difference | ( | TriangleMesh & | tm1, |
TriangleMesh & | tm2, | ||
TriangleMesh & | tm_out, | ||
const NamedParameters1 & | np1 = parameters::default_values() , |
||
const NamedParameters2 & | np2 = parameters::default_values() , |
||
const NamedParametersOut & | np_out = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/corefinement.h>
corefines tm1
and tm2
and puts in tm_out
a triangulated surface mesh bounding the volume bounded by tm1
minus the volume bounded by tm2
.
If tm_out
is one of the input surface meshes, it will be updated to contain the output (in-place operation), otherwise the result will be inserted into tm_out
without clearing it first.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
NamedParametersOut | a sequence of Named Parameters |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
tm_out | output surface mesh |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
np_out | an optional sequence of Named Parameters among the ones listed below |
| |
|
true
if the output surface mesh is manifold and is put into tm_out
. If false
is returned and if tm_out
is one of the input surface meshes, then tm_out
is only corefined. bool CGAL::Polygon_mesh_processing::corefine_and_compute_intersection | ( | TriangleMesh & | tm1, |
TriangleMesh & | tm2, | ||
TriangleMesh & | tm_out, | ||
const NamedParameters1 & | np1 = parameters::default_values() , |
||
const NamedParameters2 & | np2 = parameters::default_values() , |
||
const NamedParametersOut & | np_out = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/corefinement.h>
corefines tm1
and tm2
and puts in tm_out
a triangulated surface mesh bounding the intersection of the volumes bounded by tm1
and tm2
.
If tm_out
is one of the input surface meshes, it will be updated to contain the output (in-place operation), otherwise the result will be inserted into tm_out
without clearing it first.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
NamedParametersOut | a sequence of Named Parameters |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
tm_out | output surface mesh |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
np_out | an optional sequence of Named Parameters among the ones listed below |
| |
|
true
if the output surface mesh is manifold and is put into tm_out
. If false
is returned and if tm_out
is one of the input surface meshes, then tm_out
is only corefined. bool CGAL::Polygon_mesh_processing::corefine_and_compute_union | ( | TriangleMesh & | tm1, |
TriangleMesh & | tm2, | ||
TriangleMesh & | tm_out, | ||
const NamedParameters1 & | np1 = parameters::default_values() , |
||
const NamedParameters2 & | np2 = parameters::default_values() , |
||
const NamedParametersOut & | np_out = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/corefinement.h>
corefines tm1
and tm2
and puts in tm_out
a triangulated surface mesh bounding the union of the volumes bounded by tm1
and tm2
.
If tm_out
is one of the input surface meshes, it will be updated to contain the output (in-place operation), otherwise the result will be inserted into tm_out
without clearing it first.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)
CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)
TriangleMesh | a model of HalfedgeListGraph , FaceListGraph , and MutableFaceGraph |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
NamedParametersOut | a sequence of Named Parameters |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
tm_out | output surface mesh |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
np_out | an optional sequence of Named Parameters among the ones listed below |
| |
|
true
if the output surface mesh is manifold and is put into tm_out
. If false
is returned and if tm_out
is one of the input surface meshes, then tm_out
is only corefined. void CGAL::Polygon_mesh_processing::split | ( | TriangleMesh & | tm, |
const Iso_cuboid_3 & | iso_cuboid, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
adds intersection edges of iso_cuboid
and tm
in tm
and duplicates those edges.
Iso_cuboid_3
must be from the same Kernel as the point of the internal vertex point map of TriangleMesh
. Iso_cuboid_3
must be from the same Kernel as the point of the vertex point map of tm
.TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph , and FaceListGraph . An internal property map for CGAL::vertex_point_t must be available. |
NamedParameters | a sequence of Named Parameters |
tm | input triangulated surface mesh |
iso_cuboid | iso-cuboid used to split tm . |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
|
|
clip()
void CGAL::Polygon_mesh_processing::split | ( | TriangleMesh & | tm, |
const Plane_3 & | plane, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
adds intersection edges of plane
and tm
in tm
and duplicates those edges.
Plane_3
must be from the same Kernel as the point of the internal vertex point map of TriangleMesh
. Plane_3
must be from the same Kernel as the point of the vertex point map of tm
.TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph , and FaceListGraph . An internal property map for CGAL::vertex_point_t must be available. |
NamedParameters | a sequence of Named Parameters |
tm | input triangulated surface mesh |
plane | the plane that will be used to split tm . Plane_3 is the plane type for the same CGAL kernel as the point of the vertex point map of tm . |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
|
clip()
void CGAL::Polygon_mesh_processing::split | ( | TriangleMesh & | tm, |
TriangleMesh & | splitter, | ||
const NamedParameters1 & | np_tm = parameters::default_values() , |
||
const NamedParameters2 & | np_s = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/clip.h>
corefines tm
and splitter
and duplicates edges in tm
that are on the intersection with splitter
.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm)
!CGAL::Polygon_mesh_processing::does_self_intersect(splitter)
TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph , and FaceListGraph . |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
tm | input triangulated surface mesh |
splitter | triangulated surface mesh used to split tm |
np_tm | an optional sequence of Named Parameters among the ones listed below |
np_s | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
|
clip()
OutputIterator CGAL::Polygon_mesh_processing::surface_intersection | ( | const TriangleMesh & | tm1, |
const TriangleMesh & | tm2, | ||
OutputIterator | polyline_output, | ||
const NamedParameters1 & | np1 = parameters::default_values() , |
||
const NamedParameters2 & | np2 = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/intersection.h>
computes the intersection of triangles of tm1
and tm2
.
The output is a set of polylines with all vertices but endpoints being of degree 2.
!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)
!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)
TriangleMesh | a model of MutableFaceGraph , HalfedgeListGraph and FaceListGraph |
NamedParameters1 | a sequence of Named Parameters |
NamedParameters2 | a sequence of Named Parameters |
OutputIterator | an output iterator in which std::vector of points can be put. The point type is the one from the vertex property map |
tm1 | first input triangulated surface mesh |
tm2 | second input triangulated surface mesh |
polyline_output | output iterator of polylines. Each polyline will be given as a vector of points |
np1 | an optional sequence of Named Parameters among the ones listed below |
np2 | an optional sequence of Named Parameters among the ones listed below |
| |
|
do_intersect()