mirror of https://github.com/CGAL/cgal
Apply suggestions from review
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
This commit is contained in:
parent
43823988c9
commit
cbfeb98b38
|
|
@ -1,4 +1,4 @@
|
|||
@INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS}
|
||||
|
||||
PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 2D Conforming Triangulations and Meshes"
|
||||
INPUT += ${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/lloyd_optimize_mesh_2.h
|
||||
INPUT += ${CGAL_PACKAGE_INCLUDE_DIR}/CGAL/lloyd_optimize_mesh_2.h
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ public:
|
|||
/** \name Functions to manage clusters during the refinement process. */
|
||||
|
||||
/**
|
||||
* Update the cluster of `[va,vb]`, putting `vm` instead of `vb`.
|
||||
* Updates the cluster of `[va,vb]`, putting `vm` instead of `vb`.
|
||||
* If reduction=false, the edge [va,vm] is not set reduced.
|
||||
*/
|
||||
void update_cluster(Cluster& c, iterator it,
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ public:
|
|||
|
||||
private:
|
||||
/**
|
||||
* Returns moves for vertices of set `moving_vertices`
|
||||
* Returns moves for vertices of set `moving_vertices`.
|
||||
*/
|
||||
Moves_vector compute_moves(Vertex_set& moving_vertices)
|
||||
{
|
||||
|
|
@ -260,7 +260,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the move for vertex `v`
|
||||
* Returns the move for vertex `v`.
|
||||
*/
|
||||
Vector_2 compute_move(const Vertex_handle& v)
|
||||
{
|
||||
|
|
@ -284,7 +284,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the minimum cicumradius length of faces incident to `v`
|
||||
* Returns the minimum cicumradius length of faces incident to `v`.
|
||||
*/
|
||||
FT min_sq_circumradius(const Vertex_handle& v) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public:
|
|||
|
||||
private:
|
||||
/**
|
||||
* Returns size at point `p`, by interpolation inside facet
|
||||
* Returns size at point `p`, by interpolation inside facet.
|
||||
*/
|
||||
FT interpolate_on_face_vertices(const Point_2&
|
||||
#ifdef CGAL_MESH_2_SIZING_FIELD_USE_BARYCENTRIC_COORDINATES
|
||||
|
|
|
|||
|
|
@ -63,12 +63,12 @@ namespace CGAL
|
|||
* the bounded connected components including at least
|
||||
* one seed. If `seeds_are_in_domain==false`, the domain is the
|
||||
* union of the bounded components including no seed.}
|
||||
* \cgalParamType{a class model of `ConstRange` with iterator being a model of `InputIterator` with `CDT::Point_2` as value type.}
|
||||
* \cgalParamType{a class model of `ConstRange` whose iterator is a model of `InputIterator` with `CDT::Point_2` as value type.}
|
||||
* \cgalParamDefault{No seed.}
|
||||
* \cgalParamNEnd
|
||||
*
|
||||
* \cgalParamNBegin{seeds_are_in_domain}
|
||||
* \cgalParamDescription{specified if seeds indicates bounded connected components inside or outside of the domain.}
|
||||
* \cgalParamDescription{specified if seeds indicate bounded connected components inside or outside of the domain.}
|
||||
* \cgalParamType{`bool`}
|
||||
* \cgalParamDefault{false}
|
||||
* \cgalParamNEnd
|
||||
|
|
@ -82,7 +82,7 @@ namespace CGAL
|
|||
* \cgalParamNEnd
|
||||
*
|
||||
* \cgalParamNBegin{time_limit}
|
||||
* \cgalParamDescription{to set up, in seconds, a CPU time limit after which the optimization process is stopped.
|
||||
* \cgalParamDescription{CPU time limit (in seconds) after which the optimization process is stopped.
|
||||
* This time is measured using `CGAL::Real_timer`. 0 means that there is no time limit.}
|
||||
* \cgalParamType{`double`}
|
||||
* \cgalParamPrecondition{`time_limit` \f$ \geq\f$ 0}
|
||||
|
|
@ -127,7 +127,7 @@ lloyd_optimize_mesh_2(CDT& cdt, const CGAL_NP_CLASS& np = parameters::default_va
|
|||
|
||||
int max_iterations = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 0);
|
||||
const double convergence_ratio = choose_parameter(get_parameter(np, internal_np::convergence_ratio), 0.001);
|
||||
const double freeze_bound = 0.001; /* choose_parameter(get_parameter(np, internal_np::freeze_bound), 0.001); */
|
||||
const double freeze_bound = choose_parameter(get_parameter(np, internal_np::freeze_bound), 0.001);
|
||||
const double time_limit = choose_parameter(get_parameter(np, internal_np::maximum_running_time), 0.);
|
||||
// Seeds
|
||||
// {
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ unspecified_type manifold_with_boundary();
|
|||
* refine_mesh_3(c3t3,
|
||||
* domain,
|
||||
* criteria,
|
||||
* parameters::exude(parameters::time_limit=10));
|
||||
* parameters::exude(parameters::time_limit(10)));
|
||||
* \endcode
|
||||
*
|
||||
* \sa `CGAL::parameters::no_exude()`
|
||||
|
|
@ -282,7 +282,7 @@ unspecified_type no_lloyd();
|
|||
* \ingroup PkgMesh3Parameters
|
||||
*
|
||||
* The function `parameters::no_odt()` allows the user to tell the mesh generation functions
|
||||
* `make_mesh_3()` and `refine_mesh_3()` that no odt optimization must be done.
|
||||
* `make_mesh_3()` and `refine_mesh_3()` that no ODT optimization must be done.
|
||||
*
|
||||
* \cgalHeading{Example}
|
||||
*
|
||||
|
|
@ -423,7 +423,7 @@ unspecified_type odt(const Named_function_parameters& np = parameters::default_v
|
|||
* is stopped. This time is measured using the `Real_timer` class. The default value is
|
||||
* 0 and means that there is no time limit.}
|
||||
* \cgalParamType{`double`}
|
||||
* \cgalParamPrecondition{`0 <= sliver_bound <= 180`}
|
||||
* \cgalParamPrecondition{`time_limit >= 0`}
|
||||
* \cgalParamDefault{0}
|
||||
* \cgalParamNEnd
|
||||
* \cgalParamNBegin{sliver_bound}
|
||||
|
|
@ -434,7 +434,7 @@ unspecified_type odt(const Named_function_parameters& np = parameters::default_v
|
|||
* default value is 0 and means that there is no targeted bound: the exuder then runs as long
|
||||
* as it can improve the smallest dihedral angles of the set of cells incident to some vertices.}
|
||||
* \cgalParamType{`double`}
|
||||
* \cgalParamPrecondition{`time_limit >= 0`}
|
||||
* \cgalParamPrecondition{`0 <= sliver_bound <= 180`}
|
||||
* \cgalParamDefault{0}
|
||||
* \cgalParamNEnd
|
||||
* \cgalNamedParamsEnd
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ int main()
|
|||
// (Warning: Sphere_3 constructor uses square radius !)
|
||||
Implicit_domain sphere_domain =
|
||||
Implicit_domain::create_implicit_mesh_domain(sphere_centered_at_111,
|
||||
K::Sphere_3(K::Point_3(1, 1, 1), 2.));
|
||||
K::Sphere_3(K::Point_3(1, 1, 1), K::FT(2)));
|
||||
|
||||
Domain domain(sphere_domain, polyhedron_domain);
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ int main()
|
|||
v.push_back(f2);
|
||||
|
||||
// Domain (Warning: Sphere_3 constructor uses square radius !)
|
||||
Mesh_domain domain(Function_wrapper(v), K::Sphere_3(CGAL::ORIGIN, 5.*5.),
|
||||
Mesh_domain domain(Function_wrapper(v), K::Sphere_3(CGAL::ORIGIN, CGAL::square(K::FT(5))),
|
||||
params::relative_error_bound(1e-6));
|
||||
|
||||
// Set mesh criteria
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ int main()
|
|||
/// [Domain creation] (Warning: Sphere_3 constructor uses square radius !)
|
||||
namespace params = CGAL::parameters;
|
||||
Mesh_domain domain(Function_wrapper(v, vps),
|
||||
K::Sphere_3(CGAL::ORIGIN,5.*5.),
|
||||
K::Sphere_3(CGAL::ORIGIN, CGAL::square(K::FT(5))),
|
||||
params::relative_error_bound(1e-6));
|
||||
/// [Domain creation]
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ int main()
|
|||
/// [Domain creation] (Warning: Sphere_3 constructor uses squared radius !)
|
||||
Mesh_domain domain =
|
||||
Mesh_domain::create_implicit_mesh_domain( sphere_function,
|
||||
K::Sphere_3(CGAL::ORIGIN, 2.));
|
||||
K::Sphere_3(CGAL::ORIGIN, K::FT(2)));
|
||||
/// [Domain creation]
|
||||
|
||||
// Mesh criteria
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ int main()
|
|||
{
|
||||
/// [Domain creation] (Warning: Sphere_3 constructor uses squared radius !)
|
||||
Mesh_domain domain = Mesh_domain::create_implicit_mesh_domain
|
||||
(sphere_function, K::Sphere_3(CGAL::ORIGIN, 2.)
|
||||
(sphere_function, K::Sphere_3(CGAL::ORIGIN, K::FT(2))
|
||||
);
|
||||
/// [Domain creation]
|
||||
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ if there are several components to mesh.
|
|||
|
||||
The function type can be any model of the concept `Callable` compatible with the signature `Subdomain_index(const Point_3&)`: it can be a function, a function object, a lambda expression... that takes a `%Point_3` as argument, and returns a type convertible to `Subdomain_index`.
|
||||
|
||||
\cgalModels MeshDomain_3
|
||||
\cgalModels `MeshDomain_3`
|
||||
|
||||
\sa `Implicit_multi_domain_to_labeling_function_wrapper`
|
||||
\sa `CGAL::make_mesh_3()`.
|
||||
|
|
@ -509,7 +509,7 @@ public:
|
|||
auto value_outside_ = choose_parameter(get_parameter(np, internal_np::voxel_value), 0);
|
||||
FT relative_error_bound_ = choose_parameter(get_parameter(np, internal_np::error_bound), FT(1e-3));
|
||||
auto image_values_to_subdomain_indices_ = choose_parameter(get_parameter(np, internal_np::image_subdomain_index), Null_functor());
|
||||
CGAL::Random* p_rng_ = choose_parameter(get_parameter(np, internal_np::rng), (CGAL::Random*)(0));
|
||||
CGAL::Random* p_rng_ = choose_parameter(get_parameter(np, internal_np::rng), nullptr);
|
||||
auto null_subdomain_index_ = choose_parameter(get_parameter(np, internal_np::null_subdomain_index_param), Null_functor());
|
||||
auto construct_surface_patch_index_ = choose_parameter(get_parameter(np, internal_np::surface_patch_index), Null_functor());
|
||||
namespace p = CGAL::parameters;
|
||||
|
|
@ -746,9 +746,6 @@ public:
|
|||
* \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below:
|
||||
*
|
||||
* \cgalNamedParamsBegin
|
||||
* \cgalParamNBegin{function}
|
||||
* \cgalParamDescription{the .}
|
||||
* \cgalParamNEnd
|
||||
* \cgalParamNBegin{relative_error_bound}
|
||||
* \cgalParamDescription{ is the relative error
|
||||
* bound, relative to the diameter of the box of the image.}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public:
|
|||
~Image_plus_weights_to_labeled_function_wrapper() {}
|
||||
|
||||
/**
|
||||
* Returns an int corresponding to the label at point `p`
|
||||
* Returns an int corresponding to the label at point `p`.
|
||||
* @param p the input point
|
||||
* @return the label at point `p`
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public:
|
|||
~Image_to_labeled_function_wrapper() {}
|
||||
|
||||
/**
|
||||
* Returns an int corresponding to the label at point `p`
|
||||
* Returns an int corresponding to the label at point `p`.
|
||||
* @param p the input point
|
||||
* @return the label at point `p`
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public:
|
|||
typedef SizingField Sizing_field;
|
||||
|
||||
/**
|
||||
* @brief Return the move to apply on `v` according to Lloyd optimization
|
||||
* @brief Returns the move to apply on `v` according to Lloyd optimization
|
||||
* function.
|
||||
*/
|
||||
Vector_3 operator()(const Vertex_handle& v,
|
||||
|
|
@ -162,7 +162,7 @@ private:
|
|||
|
||||
|
||||
/**
|
||||
* Return the move for the inside vertex `v`.
|
||||
* Returns the move for the inside vertex `v`.
|
||||
*/
|
||||
Vector_3 lloyd_move_inside_domain(const Vertex_handle& v,
|
||||
const Cell_vector& incident_cells,
|
||||
|
|
@ -210,7 +210,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the move for the on-boundary vertex `v`.
|
||||
* Returns the move for the on-boundary vertex `v`.
|
||||
*/
|
||||
Vector_3 lloyd_move_on_boundary(const Vertex_handle& v,
|
||||
const C3T3& c3t3,
|
||||
|
|
@ -298,7 +298,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the move from `v` to the centroid of the segment [a,b].
|
||||
* Returns the move from `v` to the centroid of the segment `[a,b]`.
|
||||
*/
|
||||
Vector_3 centroid_segment_move(const Vertex_handle& v,
|
||||
const Bare_point& a,
|
||||
|
|
@ -320,7 +320,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the move from `v` to the centroid of triangle [a,b,c].
|
||||
* Returns the move from `v` to the centroid of triangle `[a,b,c]`.
|
||||
*/
|
||||
Vector_3 centroid_triangle_move(const Vertex_handle& v,
|
||||
const Bare_point& a,
|
||||
|
|
@ -397,7 +397,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the move from `v` to the centroid of polygon[first,last].
|
||||
* Returns the move from `v` to the centroid of polygon `[first,last]`.
|
||||
* The polygon has to be convex.
|
||||
*/
|
||||
template <typename ForwardIterator>
|
||||
|
|
@ -523,7 +523,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Turn around the edge `edge` and add the values computed from tets made by
|
||||
* Turns around the edge `edge` and adds the values computed from tets made by
|
||||
* `v` and the circumcenters of cells incident to `edge`.
|
||||
*
|
||||
* Note that this function abundantly uses dual() calls and using a cell base
|
||||
|
|
|
|||
|
|
@ -313,12 +313,12 @@ public:
|
|||
|
||||
private:
|
||||
/**
|
||||
* Returns moves for vertices of set `moving_vertices`
|
||||
* Returns moves for vertices of set `moving_vertices`.
|
||||
*/
|
||||
Moves_vector compute_moves(Moving_vertices_set& moving_vertices);
|
||||
|
||||
/**
|
||||
* Returns the move for vertex `v`
|
||||
* Returns the move for vertex `v`.
|
||||
* \warning This function should be called only on moving vertices
|
||||
* even for frozen vertices, it could return a non-zero vector
|
||||
*/
|
||||
|
|
@ -343,17 +343,17 @@ private:
|
|||
bool check_convergence() const;
|
||||
|
||||
/**
|
||||
* Returns the average circumradius length of cells incident to `v`
|
||||
* Returns the average circumradius length of cells incident to `v`.
|
||||
*/
|
||||
FT average_circumradius_length(const Vertex_handle& v) const;
|
||||
|
||||
/**
|
||||
* Returns the minimum cicumradius length of cells incident to `v`
|
||||
* Returns the minimum cicumradius length of cells incident to `v`.
|
||||
*/
|
||||
FT min_circumradius_sq_length(const Vertex_handle& v, const Cell_vector& incident_cells) const;
|
||||
|
||||
/**
|
||||
* Returns the squared circumradius length of cell `cell`
|
||||
* Returns the squared circumradius length of cell `cell`.
|
||||
*/
|
||||
FT sq_circumradius_length(const Cell_handle& cell,
|
||||
const Vertex_handle& v) const;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public:
|
|||
Mesh_sizing_field(Tr& tr);
|
||||
|
||||
/**
|
||||
* Fill sizing field, using size associated to point in `value_map`
|
||||
* Fills sizing field, using size associated to point in `value_map`
|
||||
*/
|
||||
void fill(const std::map<Bare_point, FT>& value_map);
|
||||
|
||||
|
|
|
|||
|
|
@ -55,21 +55,21 @@ public:
|
|||
Mesh_surface_cell_base_3_base()
|
||||
: bits_(0) {}
|
||||
|
||||
/// Marks `facet` as visited
|
||||
/// Marks `facet` as visited.
|
||||
void set_facet_visited (const int facet)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet <4);
|
||||
bits_ |= (1 << facet);
|
||||
}
|
||||
|
||||
/// Marks `facet` as not visited
|
||||
/// Marks `facet` as not visited.
|
||||
void reset_visited (const int facet)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
bits_ &= (15 & ~(1 << facet));
|
||||
}
|
||||
|
||||
/// Returns `true` if `facet` is marked as visited
|
||||
/// Returns `true` if `facet` is marked as visited.
|
||||
bool is_facet_visited (const int facet) const
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
|
|
@ -92,7 +92,7 @@ public:
|
|||
bits_ = 0;
|
||||
}
|
||||
|
||||
/// Marks `facet` as visited
|
||||
/// Marks `facet` as visited.
|
||||
void set_facet_visited (const int facet)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
|
|
@ -103,7 +103,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
/// Marks `facet` as not visited
|
||||
/// Marks `facet` as not visited.
|
||||
void reset_visited (const int facet)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
|
|
@ -114,7 +114,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns `true` if `facet` is marked as visited
|
||||
/// Returns `true` if `facet` is marked as visited.
|
||||
bool is_facet_visited (const int facet) const
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
|
|
@ -187,42 +187,42 @@ public:
|
|||
|
||||
// Default copy constructor and assignment operator are ok
|
||||
|
||||
/// Set surface index of `facet` to `index`
|
||||
/// Sets surface index of `facet` to `index`
|
||||
void set_surface_patch_index(const int facet, const Surface_patch_index& index)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
surface_index_table_[facet] = index;
|
||||
}
|
||||
|
||||
/// Returns surface index of facet `facet`
|
||||
/// Returns surface index of facet `facet`.
|
||||
Surface_patch_index surface_patch_index(const int facet) const
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
return surface_index_table_[facet];
|
||||
}
|
||||
|
||||
/// Sets surface center of `facet` to `point`
|
||||
/// Sets surface center of `facet` to `point`.
|
||||
void set_facet_surface_center(const int facet, const Point& point)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
surface_center_table_[facet] = point;
|
||||
}
|
||||
|
||||
/// Returns surface center of `facet`
|
||||
/// Returns surface center of `facet`.
|
||||
Point get_facet_surface_center(const int facet) const
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
return surface_center_table_[facet];
|
||||
}
|
||||
|
||||
/// Sets surface center index of `facet` to `index`
|
||||
/// Sets surface center index of `facet` to `index`.
|
||||
void set_facet_surface_center_index(const int facet, const Index& index)
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
surface_center_index_table_[facet] = index;
|
||||
}
|
||||
|
||||
/// Returns surface center of `facet`
|
||||
/// Returns surface center of `facet`.
|
||||
Index get_facet_surface_center_index(const int facet) const
|
||||
{
|
||||
CGAL_precondition(facet>=0 && facet<4);
|
||||
|
|
@ -245,7 +245,7 @@ public:
|
|||
void set_surface_index(const int facet, const Surface_index& index)
|
||||
{ set_surface_patch_index(facet,index); }
|
||||
|
||||
/// Returns surface index of facet `facet`
|
||||
/// Returns surface index of facet `facet`.
|
||||
Surface_index surface_index(const int facet) const
|
||||
{ return surface_patch_index(facet); }
|
||||
#endif // CGAL_MESH_3_NO_DEPRECATED_SURFACE_INDEX
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ public:
|
|||
type is made of two booleans:
|
||||
- the first one tells if the point can be inserted,
|
||||
- in case of, the first one is `false`, the second one tells if
|
||||
the tested element should be reconsidered latter.
|
||||
the tested element should be reconsidered later.
|
||||
This function is called by the superior level, if any.
|
||||
*/
|
||||
Mesher_level_conflict_status
|
||||
|
|
@ -805,7 +805,7 @@ public:
|
|||
type is made of two booleans:
|
||||
- the first one tells if the point can be inserted,
|
||||
- in case of, the first one is `false`, the second one tells if
|
||||
the tested element should be reconsidered latter.
|
||||
the tested element should be reconsidered later.
|
||||
This function is called by the superior level, if any.
|
||||
*/
|
||||
template <class Mesh_visitor>
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ private:
|
|||
Vertex_handle get_vertex_corner_from_point(const Bare_point& p,
|
||||
const Index& p_index) const;
|
||||
|
||||
/// Insert point(p,w) into the triangulation and set its dimension to `dim`
|
||||
/// Inserts `point(p,w)` into the triangulation and set its dimension to `dim`
|
||||
/// and its index to `index`.
|
||||
/// The handle of the newly created vertex is returned.
|
||||
Vertex_handle insert_point(const Bare_point& p,
|
||||
|
|
@ -206,7 +206,7 @@ private:
|
|||
const bool special_ball = false);
|
||||
|
||||
/**
|
||||
* Insert point(p,w) into the triangulation and set its dimension to `dim` and
|
||||
* Inserts `point(p,w)` into the triangulation and set its dimension to `dim` and
|
||||
* its index to `index`.
|
||||
* The handle of the newly created vertex is returned.
|
||||
*
|
||||
|
|
@ -223,7 +223,7 @@ private:
|
|||
const Index& index,
|
||||
ErasedVeOutIt out);
|
||||
|
||||
/// Insert balls between the points identified by the handles `vp` and `vq`
|
||||
/// Inserts balls between the points identified by the handles `vp` and `vq`
|
||||
/// on the curve identified by `curve_index`.
|
||||
///
|
||||
/// \param orientation Orientation of the curve segment between `vp` and
|
||||
|
|
@ -251,22 +251,22 @@ private:
|
|||
const Curve_index& curve_index,
|
||||
ErasedVeOutIt out);
|
||||
|
||||
/// Return `true` if the balls of `va` and `vb` intersect, and `(va,vb)` is not
|
||||
/// Returns `true` if the balls of `va` and `vb` intersect, and `(va,vb)` is not
|
||||
/// an edge of the complex.
|
||||
bool non_adjacent_but_intersect(const Vertex_handle& va,
|
||||
const Vertex_handle& vb) const;
|
||||
|
||||
/// Return `true` if the balls of `va` and `vb` intersect.
|
||||
/// Returns `true` if the balls of `va` and `vb` intersect.
|
||||
bool do_balls_intersect(const Vertex_handle& va,
|
||||
const Vertex_handle& vb) const;
|
||||
|
||||
/// Change the size of the ball of the vertex `v`.
|
||||
/// Changes the size of the ball of the vertex `v`.
|
||||
Vertex_handle change_ball_size(const Vertex_handle& v,
|
||||
const FT squared_size,
|
||||
const bool special_ball = false);
|
||||
|
||||
|
||||
/// Return `true` if balls of v1 and v2 intersect "enough".
|
||||
/// Returns `true` if balls of v1 and v2 intersect "enough".
|
||||
/// \param orientation Orientation of the curve segment between `v1` and
|
||||
/// `v2`, given the orientation of the curve of index
|
||||
/// `curve_index`
|
||||
|
|
@ -280,15 +280,15 @@ private:
|
|||
/// of those vertices is ok. If not, fix it.
|
||||
void check_and_repopulate_edges();
|
||||
|
||||
/// Check if the vertex `v` is well sampled, and if its not the case, fix it.
|
||||
/// Fill `out` with deleted vertices during this process. The value type of `out`
|
||||
/// Checks if the vertex `v` is well sampled, and if its not the case, fix it.
|
||||
/// Fills `out` with deleted vertices during this process. The value type of `out`
|
||||
/// is `Vertex_handle`.
|
||||
template <typename ErasedVeOutIt>
|
||||
ErasedVeOutIt
|
||||
check_and_fix_vertex_along_edge(const Vertex_handle& v, ErasedVeOutIt out);
|
||||
|
||||
/// Given two vertices `start` and `next` inserted on the curve with
|
||||
/// index `curve_index`, return `CGAL::POSITIVE` if the curve arc from
|
||||
/// index `curve_index`, returns `CGAL::POSITIVE` if the curve arc from
|
||||
/// `start` to `next` is oriented in the same orientation as the curve
|
||||
/// segment with index `curve_index`, or `CGAL::NEGATIVE` otherwise.
|
||||
///
|
||||
|
|
@ -298,7 +298,7 @@ private:
|
|||
const Vertex_handle& next,
|
||||
Curve_index curve_index) const;
|
||||
|
||||
/// Walk along the edge from `start`, following the direction `start` to
|
||||
/// Walks along the edge from `start`, following the direction `start` to
|
||||
/// `next`, and fills `out` with the vertices which do not fulfill
|
||||
/// the sampling conditions.
|
||||
///
|
||||
|
|
@ -315,7 +315,7 @@ private:
|
|||
const CGAL::Orientation orientation,
|
||||
ErasedVeOutIt out) const;
|
||||
|
||||
/// Return the next vertex along edge, i.e the vertex after `start`, following
|
||||
/// Returns the next vertex along edge, i.e the vertex after `start`, following
|
||||
/// the direction from `previous` to `start`.
|
||||
/// \pre (previous,start) is in c3t3
|
||||
/// \pre `c3t3.curve_index(start, previous) == curve_index`
|
||||
|
|
@ -324,7 +324,7 @@ private:
|
|||
const Vertex_handle& previous,
|
||||
const Curve_index& curve_index) const;
|
||||
|
||||
/// Replace the vertices between ]begin,last[ with new vertices, along the curve
|
||||
/// Replaces the vertices within `]begin,last[` with new vertices, along the curve
|
||||
/// identified by `curve_index`.
|
||||
/// The value type of `InputIterator` is `Vertex_handle`.
|
||||
///
|
||||
|
|
@ -346,7 +346,7 @@ private:
|
|||
const CGAL::Orientation orientation,
|
||||
ErasedVeOutIt out);
|
||||
|
||||
/// Check if the size of `v2` is compatible (i.e. greater) with the linear
|
||||
/// Checks if the size of `v2` is compatible (i.e. greater) with the linear
|
||||
/// interpolation of the sizes of `v1` and `v3`.
|
||||
bool is_sizing_field_correct(const Vertex_handle& v1,
|
||||
const Vertex_handle& v2,
|
||||
|
|
@ -354,25 +354,25 @@ private:
|
|||
const Curve_index& index,
|
||||
const CGAL::Orientation orientation) const;
|
||||
|
||||
/// Repopulate all incident curves around the corner `v`.
|
||||
/// Repopulates all incident curves around the corner `v`.
|
||||
/// \pre `v` is a corner of c3t3
|
||||
template <typename ErasedVeOutIt>
|
||||
ErasedVeOutIt
|
||||
repopulate_edges_around_corner(const Vertex_handle& v, ErasedVeOutIt out);
|
||||
|
||||
/// Return `true` if the edge with index `curve_index` is already treated.
|
||||
/// Returns `true` if the edge with index `curve_index` is already treated.
|
||||
bool is_treated(const Curve_index& curve_index) const
|
||||
{
|
||||
return ( treated_edges_.find(curve_index) != treated_edges_.end() );
|
||||
}
|
||||
|
||||
/// Set the edge with index `curve_index` as treated.
|
||||
/// Sets the edge with index `curve_index` as treated.
|
||||
void set_treated(const Curve_index& curve_index)
|
||||
{
|
||||
treated_edges_.insert(curve_index);
|
||||
}
|
||||
|
||||
/// Compute the Euclidean distance between the bare points of `va` and `vb`.
|
||||
/// Computes the Euclidean distance between the bare points of `va` and `vb`.
|
||||
FT compute_distance(const Vertex_handle& va, const Vertex_handle& vb) const
|
||||
{
|
||||
typename C3T3::Triangulation::Geom_traits::Construct_point_3 cp =
|
||||
|
|
@ -384,14 +384,14 @@ private:
|
|||
return compute_distance(cp(wpa), cp(wpb));
|
||||
}
|
||||
|
||||
/// Compute the Euclidean distance between the bare points `p` and `q`.
|
||||
/// Computes the Euclidean distance between the bare points `p` and `q`.
|
||||
FT compute_distance(const Bare_point& p, const Bare_point& q) const
|
||||
{
|
||||
return CGAL::sqrt(c3t3_.triangulation().geom_traits().
|
||||
compute_squared_distance_3_object()(p,q));
|
||||
}
|
||||
|
||||
/// Return the radius of the ball of vertex `v`.
|
||||
/// Returns the radius of the ball of vertex `v`.
|
||||
FT get_radius(const Vertex_handle& v) const
|
||||
{
|
||||
typename Gt::Compute_weight_3 cw =
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ public:
|
|||
// Parallel: it's always lazy, so do nothing
|
||||
void remove_element_from_refinement_queue(Cell_handle, Parallel_tag) {}
|
||||
|
||||
/// Handle cells contained in `zone` (before their destruction by insertion)
|
||||
/// Handles cells contained in `zone` (before their destruction by insertion)
|
||||
void before_insertion_handle_cells_in_conflict_zone(Zone& zone);
|
||||
|
||||
bool try_lock_element(const Cell_handle &ch, int lock_radius = 0) const
|
||||
|
|
@ -479,7 +479,7 @@ public:
|
|||
return sstr.str();
|
||||
}
|
||||
|
||||
/// Adds `cell` to the refinement queue if needed
|
||||
/// Adds `cell` to the refinement queue if needed.
|
||||
void treat_new_cell(const Cell_handle& cell);
|
||||
|
||||
#ifdef CGAL_MESH_3_MESHER_STATUS_ACTIVATED
|
||||
|
|
@ -531,20 +531,20 @@ private:
|
|||
// Updates cells incident to vertex, and add them to queue if needed
|
||||
void update_star_self(const Vertex_handle& vertex);
|
||||
|
||||
/// Set `cell` to domain, with subdomain index `index`
|
||||
/// Sets `cell` to domain, with subdomain index `index`.
|
||||
void set_cell_in_domain(const Cell_handle& cell,
|
||||
const Subdomain_index& index)
|
||||
{
|
||||
r_c3t3_.add_to_complex(cell, index);
|
||||
}
|
||||
|
||||
/// Removes `cell` from domain
|
||||
/// Removes `cell` from domain.
|
||||
void remove_cell_from_domain(const Cell_handle& cell)
|
||||
{
|
||||
r_c3t3_.remove_from_complex(cell);
|
||||
}
|
||||
|
||||
/// Sets index and dimension of vertex `v`
|
||||
/// Sets index and dimension of vertex `v`.
|
||||
void set_vertex_properties(Vertex_handle& v, const Index& index)
|
||||
{
|
||||
r_c3t3_.set_index(v, index);
|
||||
|
|
|
|||
|
|
@ -409,19 +409,19 @@ protected:
|
|||
return ( (facet < mirror)?facet:mirror );
|
||||
}
|
||||
|
||||
/// Returns true if `f` has already been visited
|
||||
/// Returns true if `f` has already been visited.
|
||||
bool is_facet_visited(const Facet& f) const
|
||||
{
|
||||
return f.first->is_facet_visited(f.second);
|
||||
}
|
||||
|
||||
/// Sets facet `f` to visited
|
||||
/// Sets facet `f` to visited.
|
||||
void set_facet_visited(Facet& f) const
|
||||
{
|
||||
f.first->set_facet_visited(f.second);
|
||||
}
|
||||
|
||||
/// Sets the facet `f` and its mirrored facet's surface centers to `p`
|
||||
/// Sets the facet `f` and its mirrored facet's surface centers to `p`.
|
||||
void set_facet_surface_center(const Facet& f,
|
||||
const Bare_point& p,
|
||||
const Index& index) const
|
||||
|
|
@ -435,13 +435,13 @@ protected:
|
|||
mirror.first->set_facet_surface_center_index(mirror.second,index);
|
||||
}
|
||||
|
||||
/// Returns facet surface center of `f`
|
||||
/// Returns facet surface center of `f`.
|
||||
Bare_point get_facet_surface_center(const Facet& f) const
|
||||
{
|
||||
return f.first->get_facet_surface_center(f.second);
|
||||
}
|
||||
|
||||
/// Returns index of surface center of facet `f`
|
||||
/// Returns index of surface center of facet `f`.
|
||||
Index get_facet_surface_center_index(const Facet& f) const
|
||||
{
|
||||
return f.first->get_facet_surface_center_index(f.second);
|
||||
|
|
@ -454,13 +454,13 @@ protected:
|
|||
r_c3t3_.add_to_complex(f, index);
|
||||
}
|
||||
|
||||
/// Returns index of facet `f`
|
||||
/// Returns index of facet `f`.
|
||||
Surface_patch_index get_facet_surface_index(const Facet& f) const
|
||||
{
|
||||
return r_c3t3_.surface_patch_index(f.first, f.second);
|
||||
}
|
||||
|
||||
/// Sets index and dimension of vertex `v`
|
||||
/// Sets index and dimension of vertex `v`.
|
||||
void set_vertex_properties(Vertex_handle& v, const Index& index)
|
||||
{
|
||||
r_c3t3_.set_index(v, index);
|
||||
|
|
@ -560,7 +560,7 @@ protected:
|
|||
return r_c3t3_.is_in_complex(f) ;
|
||||
}
|
||||
|
||||
/// Removes `f` from surface facets
|
||||
/// Removes `f` from surface facets.
|
||||
void remove_facet_from_surface(const Facet& f)
|
||||
{
|
||||
r_c3t3_.remove_from_complex(f);
|
||||
|
|
@ -595,7 +595,7 @@ protected:
|
|||
void treat_new_facet(Facet& facet);
|
||||
|
||||
/**
|
||||
* Computes at once is_facet_on_surface and facet_surface_center.
|
||||
* Computes simultaneously `is_facet_on_surface` and `facet_surface_center`.
|
||||
* @param facet The input facet
|
||||
* @return `true` if `facet` is on surface, `false` otherwise
|
||||
*/
|
||||
|
|
@ -835,12 +835,12 @@ public:
|
|||
Container_::get_next_local_element_impl());
|
||||
}
|
||||
|
||||
/// Tests if `p` encroaches facet from zone
|
||||
/// Tests if `p` encroaches facet from `zone`.
|
||||
// For sequential
|
||||
Mesher_level_conflict_status
|
||||
test_point_conflict_from_superior_impl(const Weighted_point& p, Zone& zone);
|
||||
|
||||
/// Tests if `p` encroaches facet from zone
|
||||
/// Tests if `p` encroaches facet from `zone`.
|
||||
// For parallel
|
||||
template <typename Mesh_visitor>
|
||||
Mesher_level_conflict_status
|
||||
|
|
@ -875,7 +875,7 @@ public:
|
|||
, bool &facet_is_in_its_cz
|
||||
, bool &could_lock_zone);
|
||||
|
||||
/// Insert `p` into the triangulation
|
||||
/// Inserts `p` into the triangulation.
|
||||
Vertex_handle insert_impl(const Weighted_point& p, const Zone& zone);
|
||||
|
||||
bool try_lock_element(const Facet &f, int lock_radius = 0) const
|
||||
|
|
|
|||
|
|
@ -553,7 +553,7 @@ private:
|
|||
int build_priority_queue(const FT& sliver_bound, PQueue& pqueue) const;
|
||||
|
||||
/**
|
||||
* Updates priority queue for all vertices of `vertices`
|
||||
* Updates priority queue for all vertices of `vertices`.
|
||||
*/
|
||||
// Sequential
|
||||
int update_priority_queue(const Vertex_vector& vertices,
|
||||
|
|
@ -568,7 +568,7 @@ private:
|
|||
#endif
|
||||
|
||||
/**
|
||||
* Updates `pv` in priority queue
|
||||
* Updates `pv` in priority queue.
|
||||
*/
|
||||
int update_priority_queue(const PVertex& pv, PQueue& pqueue) const;
|
||||
|
||||
|
|
@ -582,7 +582,7 @@ private:
|
|||
) const;
|
||||
|
||||
/**
|
||||
* Returns a pvertex from a vertex handle `vh`, using id `pv_id`
|
||||
* Returns a pvertex from a vertex handle `vh`, using the id `pv_id`.
|
||||
*/
|
||||
PVertex
|
||||
make_pvertex(const Vertex_handle& vh,
|
||||
|
|
@ -595,13 +595,13 @@ private:
|
|||
const typename PVertex::id_type& pv_id) const;
|
||||
|
||||
/**
|
||||
* Updates a pvertex `pv`
|
||||
* Updates a pvertex `pv`.
|
||||
*/
|
||||
void update_pvertex(PVertex& pv, const FT& sliver_bound) const;
|
||||
void update_pvertex__concurrent(PVertex& pv, const FT& sliver_bound) const;
|
||||
|
||||
/**
|
||||
* Returns `vh` pvertex id
|
||||
* Returns `vh` pvertex id.
|
||||
*/
|
||||
typename PVertex::id_type get_pvertex_id(const Vertex_handle& vh) const
|
||||
{
|
||||
|
|
@ -609,7 +609,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Update bad vertices vector, wrt `sliver_bound`
|
||||
* Updates bad vertices vector, wrt. `sliver_bound`.
|
||||
*/
|
||||
// Sequential
|
||||
void update_bad_vertices(std::vector<Vertex_handle> &bad_vertices,
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ protected:
|
|||
};
|
||||
|
||||
/**
|
||||
* Delete cells of `cells` from `cells_queue`
|
||||
* Deletes cells of `cells` from `cells_queue`.
|
||||
*/
|
||||
void delete_cells_from_queue(const Cell_vector& cells)
|
||||
{
|
||||
|
|
@ -300,7 +300,7 @@ protected:
|
|||
};
|
||||
|
||||
/**
|
||||
* Delete cells of `cells` from `cells_queue`
|
||||
* Deletes cells of `cells` from `cells_queue`.
|
||||
*/
|
||||
void delete_cells_from_queue(const Cell_vector& cells)
|
||||
{
|
||||
|
|
@ -595,7 +595,7 @@ private:
|
|||
|
||||
/**
|
||||
* Returns the `Boundary_facets_from_outside` object containing mirror facets
|
||||
* of `facets`
|
||||
* of `facets`.
|
||||
*/
|
||||
Boundary_facets_from_outside
|
||||
get_boundary_facets_from_outside(const Facet_vector& facets) const
|
||||
|
|
@ -616,7 +616,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* Add a cell `ch` to `cells_queue`
|
||||
* Adds a cell `ch` to `cells_queue`.
|
||||
*/
|
||||
template <bool pump_vertices_on_surfaces>
|
||||
void add_cell_to_queue(Cell_handle ch, FT criterion_value)
|
||||
|
|
@ -651,7 +651,7 @@ private:
|
|||
};
|
||||
|
||||
/**
|
||||
* Removes objects of [begin,end[ range from `c3t3_`
|
||||
* Removes objects of [begin,end[ range from `c3t3_`.
|
||||
*/
|
||||
template<typename ForwardIterator>
|
||||
void remove_from_c3t3(ForwardIterator begin, ForwardIterator end)
|
||||
|
|
@ -853,7 +853,7 @@ private:
|
|||
|
||||
/**
|
||||
* Checks if the sliver criterion values from `criterion_values` are the same as
|
||||
* those that will be found if wp is inserted in the triangulation
|
||||
* those that will be found if wp is inserted in the triangulation.
|
||||
*/
|
||||
bool check_ratios(const Sliver_values& criterion_values,
|
||||
const Weighted_point& wp,
|
||||
|
|
|
|||
|
|
@ -109,8 +109,8 @@ public:
|
|||
~Triangulation_helpers() {}
|
||||
|
||||
/**
|
||||
* Returns true if moving `v` to `p` makes no topological
|
||||
* change in `tr`
|
||||
* Returns `true` if moving `v` to `p` makes no topological
|
||||
* change in `tr`.
|
||||
*/
|
||||
bool no_topological_change(Tr& tr,
|
||||
const Vertex_handle v,
|
||||
|
|
@ -137,7 +137,7 @@ public:
|
|||
const Bare_point& p) const;
|
||||
|
||||
/**
|
||||
* Returns the squared distance from `vh` to its closest vertex
|
||||
* Returns the squared distance from `vh` to its closest vertex.
|
||||
*
|
||||
* \pre `vh` is not the infinite vertex
|
||||
*/
|
||||
|
|
@ -156,7 +156,7 @@ public:
|
|||
|
||||
private:
|
||||
/**
|
||||
* Returns true if `v` is well_oriented on each cell of `cell_tos`
|
||||
* Returns `true` if `v` is well_oriented on each cell of `cell_tos`.
|
||||
*/
|
||||
// For sequential version
|
||||
bool well_oriented(const Tr& tr,
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public:
|
|||
Triangulation_sizing_field(const Tr& tr);
|
||||
|
||||
/**
|
||||
* Fill sizing field, using size associated to point in `value_map`.
|
||||
* Fills the sizing field, using size associated to point in `value_map`.
|
||||
*/
|
||||
void fill(const std::map<Weighted_point, FT>& value_map);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@ namespace parameters {
|
|||
} } // end of CGAL::parameters namespace
|
||||
|
||||
|
||||
#endif //CGAL_MESH_3_PARAMETERS_H
|
||||
#endif //CGAL_MESH_3_PARAMETERS_H
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ angle_in_radian(const Vector_3& u, const Vector_3& v)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the squared length of edge `e`
|
||||
* @brief Returns the squared length of edge `e`.
|
||||
*/
|
||||
template <typename Tr>
|
||||
typename Tr::Geom_traits::FT
|
||||
|
|
@ -134,7 +134,7 @@ edge_sq_length(const typename Tr::Edge& e,
|
|||
|
||||
/**
|
||||
* @brief Returns the minimal incident edge length of `v`
|
||||
* in triangulation `tr`
|
||||
* in triangulation `tr`.
|
||||
*/
|
||||
template <typename Tr>
|
||||
typename Tr::Geom_traits::FT
|
||||
|
|
@ -1054,7 +1054,7 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief returns the cotangent of `value`
|
||||
* @brief returns the cotangent of `value`.
|
||||
*/
|
||||
FT cotangent(const FT& value) const
|
||||
{
|
||||
|
|
@ -1062,8 +1062,8 @@ private:
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief returns the normal of facet (ch,i), oriented from inside to outside
|
||||
* of `ch`
|
||||
* @brief returns the normal of facet `(ch,i)`, oriented from inside to outside
|
||||
* of `ch`.
|
||||
*/
|
||||
Vector_3 normal_estimate(const C3T3& c3t3, const Cell_handle& ch, const int i) const
|
||||
{
|
||||
|
|
@ -1157,7 +1157,7 @@ protected:
|
|||
FT sphere_sq_radius() const { return sphere_sq_radius_; }
|
||||
|
||||
/**
|
||||
* @brief returns a FT between `min` and `max`
|
||||
* @brief returns a FT between `min` and `max`.
|
||||
*/
|
||||
FT random_ft(const FT& min = FT(0.), const FT& max = FT(1.)) const
|
||||
{
|
||||
|
|
@ -1166,7 +1166,7 @@ protected:
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief returns a random vector with size `vector_size`
|
||||
* @brief returns a random vector with size `vector_size`.
|
||||
*/
|
||||
Vector_3 random_vector_fixed_size(const C3T3& c3t3,
|
||||
const FT& vector_sq_size) const
|
||||
|
|
@ -1184,7 +1184,7 @@ protected:
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief returns a random vector with size between 0 and `vector_size`
|
||||
* @brief returns a random vector with size between 0 and `vector_size`.
|
||||
*/
|
||||
Vector_3 random_vector_max_size(const C3T3& c3t3,
|
||||
const FT& vector_max_sq_size) const
|
||||
|
|
@ -1299,7 +1299,7 @@ private:
|
|||
// -----------------------------------
|
||||
|
||||
/**
|
||||
* @brief try to improve mesh using random moves of `v`
|
||||
* @brief tries to improve mesh using random moves of `v`.
|
||||
*/
|
||||
std::pair<bool,Vertex_handle>
|
||||
apply_perturbation(const Vertex_handle& v,
|
||||
|
|
@ -1410,7 +1410,7 @@ private:
|
|||
}
|
||||
|
||||
private:
|
||||
// If set to `true`, then random point will be generated on sphere surface.
|
||||
// If set to `true`, then random points will be generated on sphere surface.
|
||||
bool on_sphere_;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public:
|
|||
return d_;
|
||||
}
|
||||
|
||||
/// Sets size at any point of dimension `dim` and index `index`
|
||||
/// Sets size at any point of dimension `dim` and index `index`.
|
||||
void set_size(const FT& size, const int dim, const Index& index)
|
||||
{
|
||||
values_.insert(std::make_pair(std::make_pair(dim,index),size));
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ and `MeshCriteriaWithFeatures_3`.
|
|||
It gathers the refinement criteria for mesh tetrahedra and
|
||||
surface facets where
|
||||
surface facets are facets in the mesh approximating the domain surface patches.
|
||||
In addition, for domain with exposed 1-dimensional features,
|
||||
In addition, for domains with exposed 1-dimensional features,
|
||||
the class `Mesh_criteria_3`
|
||||
handles the definition of a sizing field to guide the discretization of
|
||||
1-dimensional features.
|
||||
|
|
@ -228,7 +228,7 @@ typedef Mesh_cell_criteria_3<Tr> Cell_criteria;
|
|||
: Base(facet_criteria,
|
||||
cell_criteria) {}
|
||||
|
||||
/// Constructor from edge, face and cell criteria.
|
||||
/// Constructor from edge, face, and cell criteria.
|
||||
Mesh_criteria_3(Edge_criteria edge_criteria,
|
||||
Facet_criteria facet_criteria,
|
||||
Cell_criteria cell_criteria)
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ public:
|
|||
return result;
|
||||
}
|
||||
|
||||
/// Returns signed geodesic distance between `p` and `q`
|
||||
/// Returns signed geodesic distance between `p` and `q`.
|
||||
FT signed_geodesic_distance(const Point_3& p, const Point_3& q) const
|
||||
{
|
||||
// Locate p & q on polyline
|
||||
|
|
@ -587,7 +587,7 @@ public:
|
|||
/// Add a 0-dimensional feature in the domain.
|
||||
Corner_index add_corner(const Point_3& p);
|
||||
|
||||
/// Overloads where the last parameter `out` is not `CGAL::Emptyset_iterator()`.
|
||||
/// Overload where the last parameter `out` is not `CGAL::Emptyset_iterator()`.
|
||||
template <typename InputIterator, typename IndicesOutputIterator>
|
||||
IndicesOutputIterator
|
||||
add_corners(InputIterator first, InputIterator end,
|
||||
|
|
|
|||
|
|
@ -391,14 +391,14 @@ struct C3t3_initializer < C3T3, MD, MC, true, CGAL::Tag_false >
|
|||
* \cgalParamDescription{`exude_mesh_3()` can optionally be called after the meshing process.
|
||||
* Two named parameters control this behavior:
|
||||
* <UL>
|
||||
* <LI> `parameters::exude()`
|
||||
* <LI> `parameters::no_exude()`
|
||||
* <LI> `parameters::exude()`
|
||||
* </UL>}
|
||||
* \cgalParamDefault{`parameters::exude()`}
|
||||
* \cgalParamSectionEnd
|
||||
* \cgalNamedParamsEnd
|
||||
*
|
||||
* Note that whatever may be the optimization processes activated,
|
||||
* Note that regardless of which optimization processes are activated,
|
||||
* they are always launched in the order that is a suborder
|
||||
* of the following (see user manual for further
|
||||
* details): *ODT-smoother*, *Lloyd-smoother*, *perturber*, and *exuder*.
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ private:
|
|||
* etc.
|
||||
*
|
||||
* The optimization phase is a sequence of optimization processes,
|
||||
* amongst the following available optimizers: an ODT-smoothing,
|
||||
* amongst the following available optimizers: an ODT smoothing,
|
||||
* a Lloyd smoothing, a sliver perturber, and a sliver exuder.
|
||||
* Each optimization process
|
||||
* can be activated or not,
|
||||
|
|
@ -231,7 +231,7 @@ private:
|
|||
* The optimization parameters can be passed in arbitrary order. If one parameter
|
||||
* is not passed, its default value is used. The default values are
|
||||
* `no_lloyd()`, `no_odt()`, `perturb()` and `exude()`.
|
||||
* Note that whatever may be the optimization processes activated,
|
||||
* Note that regardless of which optimization processes are activated,
|
||||
* they are always launched in the order that is a suborder
|
||||
* of the following (see user manual for further
|
||||
* details): *ODT-smoother*, *Lloyd-smoother*, *perturber*, and *exuder*.
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ struct C3t3_initializer<C3T3, MeshDomain, MeshCriteria, true, CGAL::Tag_true>
|
|||
* is not passed, its default value is used. The default values are
|
||||
* `no_lloyd()`, `no_odt()`, `perturb()` and `exude()`.
|
||||
*
|
||||
* Note that whatever may be the optimization processes activated,
|
||||
* Note that regardless of which optimization processes are activated,
|
||||
* they are always launched in the order that is a suborder
|
||||
* of the following (see user manual for further
|
||||
* details): *ODT-smoother*, *Lloyd-smoother*, *perturber*, and *exuder*.
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace CGAL {
|
|||
* improves the quality of a Delaunay mesh by changing the positions of some vertices of the mesh.
|
||||
*
|
||||
* This function directly calls `perturb_mesh_3()`, but is provided for convenience.
|
||||
* Further information can be found on the documentation of the function `perturb_mesh_3()`.
|
||||
* Further information can be found in the documentation of the function `perturb_mesh_3()`.
|
||||
*/
|
||||
template<typename C3T3, typename MeshDomain, typename CGAL_NP_TEMPLATE_PARAMETERS>
|
||||
Mesh_optimization_return_code perturb_periodic_3_mesh_3(C3T3& c3t3, MeshDomain& domain, const CGAL_NP_CLASS& np = parameters::default_values())
|
||||
|
|
@ -84,7 +84,7 @@ Mesh_optimization_return_code perturb_periodic_3_mesh_3(const CGAL_NP_CLASS_1&
|
|||
* this optimization has been performed, all improvements will be lost.
|
||||
*
|
||||
* This function directly calls `exude_mesh_3()`, but is provided for convenience.
|
||||
* Further information can be found on the documentation of the function `exude_mesh_3()`.
|
||||
* Further information can be found in the documentation of the function `exude_mesh_3()`.
|
||||
*/
|
||||
template<typename C3T3, typename CGAL_NP_TEMPLATE_PARAMETERS>
|
||||
Mesh_optimization_return_code exude_periodic_3_mesh_3(C3T3& c3t3,const CGAL_NP_CLASS& np = parameters::default_values())
|
||||
|
|
@ -128,7 +128,7 @@ Mesh_optimization_return_code exude_periodic_3_mesh_3(const CGAL_NP_CLASS_1& np
|
|||
* process based on the minimization of a global energy function.
|
||||
*
|
||||
* This function directly calls `odt_optimize_mesh_3()`, but is provided for convenience.
|
||||
* Further information can be found on the documentation of the function `odt_optimize_mesh_3()`.
|
||||
* Further information can be found in the documentation of the function `odt_optimize_mesh_3()`.
|
||||
*/
|
||||
template<typename C3T3,typename MeshDomain,typename CGAL_NP_TEMPLATE_PARAMETERS>
|
||||
Mesh_optimization_return_code odt_optimize_periodic_3_mesh_3(C3T3& c3t3, MeshDomain& domain, const CGAL_NP_CLASS& np = parameters::default_values())
|
||||
|
|
@ -175,7 +175,7 @@ Mesh_optimization_return_code odt_optimize_periodic_3_mesh_3(const CGAL_NP_CLASS
|
|||
* process based on the minimization of a global energy function.
|
||||
*
|
||||
* This function directly calls `lloyd_optimize_mesh_3()`, but is provided for convenience.
|
||||
* Further information can be found on the documentation of the function `lloyd_optimize_mesh_3()`.
|
||||
* Further information can be found in the documentation of the function `lloyd_optimize_mesh_3()`.
|
||||
*
|
||||
* \note This function requires the \ref thirdpartyEigen library.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue