mirror of https://github.com/CGAL/cgal
doc
This commit is contained in:
parent
76662f75eb
commit
4ebd95c86a
|
|
@ -677,9 +677,10 @@ View of 3D meshes produced from a polyhedral domain with a nested surface.
|
||||||
\subsubsection Mesh_3RemeshingPolyhedralSurface Remeshing a Polyhedral Surface
|
\subsubsection Mesh_3RemeshingPolyhedralSurface Remeshing a Polyhedral Surface
|
||||||
|
|
||||||
The following code creates a polyhedral domain, with only one polyhedron,
|
The following code creates a polyhedral domain, with only one polyhedron,
|
||||||
and no "bounding polyhedron". Since the volumetric part of the domain may be empty,
|
and no "bounding polyhedron". The volumetric part of the domain may be empty
|
||||||
and should not be meshed,
|
and should not be meshed.
|
||||||
it is necessary to use the `CGAL::parameters::surface_only()` parameter to mesh the surface only.
|
In this case, it is recommended to use the `CGAL::parameters::surface_only()` parameter
|
||||||
|
to speedup the meshing of the surface only.
|
||||||
This enables to remesh a surface, and is equivalent to the function `make_surface_mesh()`.
|
This enables to remesh a surface, and is equivalent to the function `make_surface_mesh()`.
|
||||||
|
|
||||||
\cgalExample{Mesh_3/remesh_polyhedral_surface.cpp}
|
\cgalExample{Mesh_3/remesh_polyhedral_surface.cpp}
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,10 @@ several other components (closed or not)
|
||||||
that will be represented in the final mesh.
|
that will be represented in the final mesh.
|
||||||
This class is a model of the concept `MeshDomain_3`.
|
This class is a model of the concept `MeshDomain_3`.
|
||||||
|
|
||||||
|
\note When the given surface(s) are not closed, the surface only will be meshed.
|
||||||
|
It is then recommended to use the parameter `parameters::surface_only()` to speedup
|
||||||
|
the meshing process.
|
||||||
|
|
||||||
\tparam Polyhedron stands for the type of the input polyhedral surface(s),
|
\tparam Polyhedron stands for the type of the input polyhedral surface(s),
|
||||||
model of `FaceListGraph`.
|
model of `FaceListGraph`.
|
||||||
|
|
||||||
|
|
@ -239,11 +243,11 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Construction from a polyhedral surface which must and free of intersections.
|
Construction from a polyhedral surface which must be free of intersections.
|
||||||
If `polyhedron` is closed, the inside of `bounding_polyhedron` will be meshed,
|
If `polyhedron` is closed, its inside will be meshed,
|
||||||
otherwise there will be no interior and only the surface will be meshed.
|
otherwise there will be no interior and only the surface will be meshed.
|
||||||
*/
|
*/
|
||||||
Polyhedral_mesh_domain_3(const Polyhedron& bounding_polyhedron
|
Polyhedral_mesh_domain_3(const Polyhedron& polyhedron
|
||||||
#ifndef DOXYGEN_RUNNING
|
#ifndef DOXYGEN_RUNNING
|
||||||
, CGAL::Random* p_rng = nullptr
|
, CGAL::Random* p_rng = nullptr
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -252,14 +256,14 @@ public:
|
||||||
, bounding_tree_(&tree_) // the bounding tree is tree_
|
, bounding_tree_(&tree_) // the bounding tree is tree_
|
||||||
, p_rng_(p_rng)
|
, p_rng_(p_rng)
|
||||||
{
|
{
|
||||||
this->add_primitives(bounding_polyhedron);
|
this->add_primitives(polyhedron);
|
||||||
if(! is_triangle_mesh(bounding_polyhedron)) {
|
if(!is_triangle_mesh(polyhedron)) {
|
||||||
std::cerr << "Your input polyhedron must be triangulated!\n";
|
std::cerr << "Your input polyhedron must be triangulated!\n";
|
||||||
CGAL_error_msg("Your input polyhedron must be triangulated!");
|
CGAL_error_msg("Your input polyhedron must be triangulated!");
|
||||||
}
|
}
|
||||||
this->build();
|
this->build();
|
||||||
|
|
||||||
if(!is_closed(bounding_polyhedron))
|
if(!is_closed(polyhedron))
|
||||||
set_surface_only();
|
set_surface_only();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,10 @@ It is a model of the concept `MeshDomainWithFeatures_3`. It also provides
|
||||||
a member function to automatically detect sharp features and boundaries from
|
a member function to automatically detect sharp features and boundaries from
|
||||||
the input polyhedral surface(s).
|
the input polyhedral surface(s).
|
||||||
|
|
||||||
|
\note When the given surface(s) are not closed, the surface only will be meshed.
|
||||||
|
It is then recommended to use the parameter `parameters::surface_only()` to speedup
|
||||||
|
the meshing process.
|
||||||
|
|
||||||
\tparam IGT stands for a geometric traits class providing the types
|
\tparam IGT stands for a geometric traits class providing the types
|
||||||
and functors required to implement the intersection tests and intersection computations
|
and functors required to implement the intersection tests and intersection computations
|
||||||
for polyhedral boundary surfaces. This parameter has to be
|
for polyhedral boundary surfaces. This parameter has to be
|
||||||
|
|
@ -162,11 +166,12 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Constructor from a polyhedral surface.
|
Constructor from a polyhedral surface.
|
||||||
No feature detection is done at this level. Note that a copy of `bounding_polyhedron` will be done.
|
No feature detection is done at this level. Note that a copy of `polyhedron` will be done.
|
||||||
The polyhedron `bounding_polyhedron` has to be closed and free of intersections.
|
The polyhedron `polyhedron` must be free of intersections.
|
||||||
The interior of `bounding_polyhedron` will be meshed.
|
If `polyhedron` is closed, its inside will be meshed,
|
||||||
|
otherwise there will be no interior and only the surface will be meshed.
|
||||||
*/
|
*/
|
||||||
Polyhedral_mesh_domain_with_features_3(const Polyhedron& bounding_polyhedron
|
Polyhedral_mesh_domain_with_features_3(const Polyhedron& polyhedron
|
||||||
#ifndef DOXYGEN_RUNNING
|
#ifndef DOXYGEN_RUNNING
|
||||||
, CGAL::Random* p_rng = nullptr
|
, CGAL::Random* p_rng = nullptr
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -174,10 +179,13 @@ public:
|
||||||
: Base(p_rng) , borders_detected_(false)
|
: Base(p_rng) , borders_detected_(false)
|
||||||
{
|
{
|
||||||
stored_polyhedra.resize(1);
|
stored_polyhedra.resize(1);
|
||||||
stored_polyhedra[0] = bounding_polyhedron;
|
stored_polyhedra[0] = polyhedron;
|
||||||
get(face_patch_id_t<Patch_id>(), stored_polyhedra[0]);
|
get(face_patch_id_t<Patch_id>(), stored_polyhedra[0]);
|
||||||
this->add_primitives(stored_polyhedra[0]);
|
this->add_primitives(stored_polyhedra[0]);
|
||||||
this->build();
|
this->build();
|
||||||
|
|
||||||
|
if(!is_closed(polyhedron))
|
||||||
|
set_surface_only();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CGAL_NO_DEPRECATED_CODE
|
#ifndef CGAL_NO_DEPRECATED_CODE
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue