mirror of https://github.com/CGAL/cgal
Merge branch 'releases/CGAL-4.13-branch'
This commit is contained in:
commit
f5836b2206
|
|
@ -556,11 +556,11 @@ namespace internal {
|
||||||
(boost::make_transform_iterator (input.begin(), CGAL::Property_map_to_unary_function<ItemMap>(item_map)),
|
(boost::make_transform_iterator (input.begin(), CGAL::Property_map_to_unary_function<ItemMap>(item_map)),
|
||||||
boost::make_transform_iterator (input.end(), CGAL::Property_map_to_unary_function<ItemMap>(item_map)));
|
boost::make_transform_iterator (input.end(), CGAL::Property_map_to_unary_function<ItemMap>(item_map)));
|
||||||
|
|
||||||
float Dx = float(bbox.xmax() - bbox.xmin());
|
double Dx = double(bbox.xmax() - bbox.xmin());
|
||||||
float Dy = float(bbox.ymax() - bbox.ymin());
|
double Dy = double(bbox.ymax() - bbox.ymin());
|
||||||
float A = Dx * Dy;
|
double A = Dx * Dy;
|
||||||
float a = A / min_number_of_subdivisions;
|
double a = A / min_number_of_subdivisions;
|
||||||
float l = std::sqrt(a);
|
double l = std::sqrt(a);
|
||||||
std::size_t nb_x = std::size_t(Dx / l) + 1;
|
std::size_t nb_x = std::size_t(Dx / l) + 1;
|
||||||
std::size_t nb_y = std::size_t((A / nb_x) / a) + 1;
|
std::size_t nb_y = std::size_t((A / nb_x) / a) + 1;
|
||||||
std::size_t nb = nb_x * nb_y;
|
std::size_t nb = nb_x * nb_y;
|
||||||
|
|
@ -571,11 +571,11 @@ namespace internal {
|
||||||
for (std::size_t y = 0; y < nb_y; ++ y)
|
for (std::size_t y = 0; y < nb_y; ++ y)
|
||||||
{
|
{
|
||||||
bboxes.push_back
|
bboxes.push_back
|
||||||
(CGAL::Bbox_3 (bbox.xmin() + Dx * (x / float(nb_x)),
|
(CGAL::Bbox_3 (bbox.xmin() + Dx * (x / double(nb_x)),
|
||||||
bbox.ymin() + Dy * (y / float(nb_y)),
|
bbox.ymin() + Dy * (y / double(nb_y)),
|
||||||
bbox.zmin(),
|
bbox.zmin(),
|
||||||
bbox.xmin() + Dx * ((x+1) / float(nb_x)),
|
(x == nb_x - 1 ? bbox.xmax() : bbox.xmin() + Dx * ((x+1) / double(nb_x))),
|
||||||
bbox.ymin() + Dy * ((y+1) / float(nb_y)),
|
(y == nb_y - 1 ? bbox.ymax() : bbox.ymin() + Dy * ((y+1) / double(nb_y))),
|
||||||
bbox.zmax()));
|
bbox.zmax()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -591,13 +591,15 @@ namespace internal {
|
||||||
{
|
{
|
||||||
CGAL::Bbox_3 b = get(item_map, *(input.begin() + s)).bbox();
|
CGAL::Bbox_3 b = get(item_map, *(input.begin() + s)).bbox();
|
||||||
|
|
||||||
for (std::size_t i = 0; i < bboxes.size(); ++ i)
|
std::size_t i = 0;
|
||||||
|
for (; i < bboxes.size(); ++ i)
|
||||||
if (CGAL::do_overlap (b, bboxes[i]))
|
if (CGAL::do_overlap (b, bboxes[i]))
|
||||||
{
|
{
|
||||||
input_to_indices[s] = std::make_pair (i, indices[i].size());
|
input_to_indices[s] = std::make_pair (i, indices[i].size());
|
||||||
indices[i].push_back (s);
|
indices[i].push_back (s);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
CGAL_assertion_msg (i != bboxes.size(), "Point was not assigned to any subdivision.");
|
||||||
}
|
}
|
||||||
|
|
||||||
internal::Classify_functor_graphcut<ItemRange, ItemMap, Classifier, NeighborQuery, LabelIndexRange>
|
internal::Classify_functor_graphcut<ItemRange, ItemMap, Classifier, NeighborQuery, LabelIndexRange>
|
||||||
|
|
|
||||||
|
|
@ -266,6 +266,8 @@ ALIASES = "sc{1}=<span style=\"font-variant: small-caps;\">\1</sp
|
||||||
"cgalAdvancedEnd=\htmlonly </div> \endhtmlonly" \
|
"cgalAdvancedEnd=\htmlonly </div> \endhtmlonly" \
|
||||||
"cgalAdvancedFunction=This is an advanced function." \
|
"cgalAdvancedFunction=This is an advanced function." \
|
||||||
"cgalAdvancedClass=This is an advanced class." \
|
"cgalAdvancedClass=This is an advanced class." \
|
||||||
|
"cgalAdvancedType=This is an advanced type." \
|
||||||
|
"cgalAdvancedConcept=This is an advanced concept." \
|
||||||
"cgalRequiresCPP11=\warning This function requires a C++11 compiler." \
|
"cgalRequiresCPP11=\warning This function requires a C++11 compiler." \
|
||||||
"cgalPkgPicture{1}=<div class=\"PkgImage\"> \n \image html \1 \n</div>" \
|
"cgalPkgPicture{1}=<div class=\"PkgImage\"> \n \image html \1 \n</div>" \
|
||||||
"cgalPkgSummaryBegin=<div class=\"PkgSummary\">" \
|
"cgalPkgSummaryBegin=<div class=\"PkgSummary\">" \
|
||||||
|
|
|
||||||
|
|
@ -267,6 +267,8 @@ ALIASES = "sc{1}=<span style=\"font-variant: small-caps;\">\1</sp
|
||||||
"cgalAdvancedEnd=\htmlonly[block] </div> \endhtmlonly" \
|
"cgalAdvancedEnd=\htmlonly[block] </div> \endhtmlonly" \
|
||||||
"cgalAdvancedFunction=This is an advanced function." \
|
"cgalAdvancedFunction=This is an advanced function." \
|
||||||
"cgalAdvancedClass=This is an advanced class." \
|
"cgalAdvancedClass=This is an advanced class." \
|
||||||
|
"cgalAdvancedType=This is an advanced type." \
|
||||||
|
"cgalAdvancedConcept=This is an advanced concept." \
|
||||||
"cgalRequiresCPP11=\warning This function requires a C++11 compiler." \
|
"cgalRequiresCPP11=\warning This function requires a C++11 compiler." \
|
||||||
"cgalPkgPicture{1}=<div class=\"PkgImage\"> ^^ \image html \1 ^^</div>" \
|
"cgalPkgPicture{1}=<div class=\"PkgImage\"> ^^ \image html \1 ^^</div>" \
|
||||||
"cgalPkgSummaryBegin=<div class=\"PkgSummary\">" \
|
"cgalPkgSummaryBegin=<div class=\"PkgSummary\">" \
|
||||||
|
|
|
||||||
|
|
@ -251,6 +251,8 @@ ALIASES += "cgalAdvancedBegin=\htmlonly <div class=\"CGALAdvanced\"> <div>Advanc
|
||||||
ALIASES += "cgalAdvancedEnd=\htmlonly </div> \endhtmlonly"
|
ALIASES += "cgalAdvancedEnd=\htmlonly </div> \endhtmlonly"
|
||||||
ALIASES += "cgalAdvancedFunction=This is an advanced function."
|
ALIASES += "cgalAdvancedFunction=This is an advanced function."
|
||||||
ALIASES += "cgalAdvancedClass=This is an advanced class."
|
ALIASES += "cgalAdvancedClass=This is an advanced class."
|
||||||
|
ALIASES += "cgalAdvancedType=This is an advanced type."
|
||||||
|
ALIASES += "cgalAdvancedConcept=This is an advanced concept."
|
||||||
|
|
||||||
ALIASES += "cgalRequiresCPP11=\warning This function requires a C++11 compiler."
|
ALIASES += "cgalRequiresCPP11=\warning This function requires a C++11 compiler."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,12 @@
|
||||||
\ingroup PkgInscribedAreasConcepts
|
\ingroup PkgInscribedAreasConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
|
\cgalAdvancedConcept
|
||||||
|
\cgalAdvancedBegin
|
||||||
The concept `ExtremalPolygonTraits_2` provides the types and
|
The concept `ExtremalPolygonTraits_2` provides the types and
|
||||||
operations needed to compute a maximal \f$ k\f$-gon that can be
|
operations needed to compute a maximal \f$ k\f$-gon that can be
|
||||||
inscribed into a given convex polygon.
|
inscribed into a given convex polygon.
|
||||||
|
\cgalAdvancedEnd
|
||||||
|
|
||||||
\note `ExtremalPolygonTraits_2::Less_xy_2` and
|
\note `ExtremalPolygonTraits_2::Less_xy_2` and
|
||||||
`ExtremalPolygonTraits_2::Orientation_2` are used for (expensive)
|
`ExtremalPolygonTraits_2::Orientation_2` are used for (expensive)
|
||||||
|
|
|
||||||
|
|
@ -818,8 +818,12 @@ output_to_medit(std::ostream& os,
|
||||||
typename C3T3::Facet f = (*fit);
|
typename C3T3::Facet f = (*fit);
|
||||||
|
|
||||||
// Apply priority among subdomains, to get consistent facet orientation per subdomain-pair interface.
|
// Apply priority among subdomains, to get consistent facet orientation per subdomain-pair interface.
|
||||||
if (f.first->subdomain_index() < f.first->neighbor(f.second)->subdomain_index())
|
if ( print_each_facet_twice )
|
||||||
f = tr.mirror_facet(f);
|
{
|
||||||
|
// NOTE: We mirror a facet when needed to make it consistent with No_patch_facet_pmap_first/second.
|
||||||
|
if (f.first->subdomain_index() > f.first->neighbor(f.second)->subdomain_index())
|
||||||
|
f = tr.mirror_facet(f);
|
||||||
|
}
|
||||||
|
|
||||||
// Get facet vertices in CCW order.
|
// Get facet vertices in CCW order.
|
||||||
Vertex_handle vh1 = f.first->vertex((f.second + 1) % 4);
|
Vertex_handle vh1 = f.first->vertex((f.second + 1) % 4);
|
||||||
|
|
@ -833,10 +837,10 @@ output_to_medit(std::ostream& os,
|
||||||
os << V[vh1] << ' ' << V[vh2] << ' ' << V[vh3] << ' ';
|
os << V[vh1] << ' ' << V[vh2] << ' ' << V[vh3] << ' ';
|
||||||
os << get(facet_pmap, *fit) << '\n';
|
os << get(facet_pmap, *fit) << '\n';
|
||||||
|
|
||||||
// Print triangle again if needed
|
// Print triangle again if needed, with opposite orientation
|
||||||
if ( print_each_facet_twice )
|
if ( print_each_facet_twice )
|
||||||
{
|
{
|
||||||
os << V[vh1] << ' ' << V[vh2] << ' ' << V[vh3] << ' ';
|
os << V[vh3] << ' ' << V[vh2] << ' ' << V[vh1] << ' ';
|
||||||
os << get(facet_twice_pmap, *fit) << '\n';
|
os << get(facet_twice_pmap, *fit) << '\n';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -305,6 +305,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Checks the combinatorial validity of the triangulation and the
|
Checks the combinatorial validity of the triangulation and the
|
||||||
validity of its geometric embedding (see
|
validity of its geometric embedding (see
|
||||||
|
|
@ -319,6 +320,7 @@ public:
|
||||||
is_valid(bool verbose = false) const;
|
is_valid(bool verbose = false) const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Checks the combinatorial and geometric validity of the cell (see
|
Checks the combinatorial and geometric validity of the cell (see
|
||||||
Section \ref P2Triangulation2secintro). Also checks that the
|
Section \ref P2Triangulation2secintro). Also checks that the
|
||||||
|
|
|
||||||
|
|
@ -438,6 +438,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Returns a reference to the triangulation data structure.
|
Returns a reference to the triangulation data structure.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
|
|
@ -473,6 +474,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
The current triangulation remains a triangulation in the 1-sheeted
|
The current triangulation remains a triangulation in the 1-sheeted
|
||||||
covering space even after adding points if this method returns
|
covering space even after adding points if this method returns
|
||||||
|
|
@ -486,6 +488,7 @@ public:
|
||||||
bool is_extensible_triangulation_in_1_sheet_h1() const;
|
bool is_extensible_triangulation_in_1_sheet_h1() const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
The same as `is_extensible_triangulation_in_1_sheet_h1()` but with
|
The same as `is_extensible_triangulation_in_1_sheet_h1()` but with
|
||||||
a more precise heuristic, i.e. it might answer `true` in cases in which
|
a more precise heuristic, i.e. it might answer `true` in cases in which
|
||||||
|
|
@ -498,6 +501,7 @@ public:
|
||||||
bool is_extensible_triangulation_in_1_sheet_h2() const;
|
bool is_extensible_triangulation_in_1_sheet_h2() const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Returns `true` if the current triangulation would still be a
|
Returns `true` if the current triangulation would still be a
|
||||||
triangulation in the 1-sheeted covering space, returns `false` otherwise.
|
triangulation in the 1-sheeted covering space, returns `false` otherwise.
|
||||||
|
|
@ -506,6 +510,7 @@ public:
|
||||||
bool is_triangulation_in_1_sheet() const;
|
bool is_triangulation_in_1_sheet() const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Converts the current triangulation into the same periodic
|
Converts the current triangulation into the same periodic
|
||||||
triangulation in the 1-sheeted covering space.
|
triangulation in the 1-sheeted covering space.
|
||||||
|
|
@ -515,6 +520,7 @@ public:
|
||||||
void convert_to_1_sheeted_covering();
|
void convert_to_1_sheeted_covering();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Converts the current triangulation into the same periodic
|
Converts the current triangulation into the same periodic
|
||||||
triangulation in the 9-sheeted covering space.
|
triangulation in the 9-sheeted covering space.
|
||||||
|
|
@ -971,6 +977,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Inserts the first vertex.
|
Inserts the first vertex.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
|
|
@ -978,6 +985,7 @@ public:
|
||||||
Vertex_handle insert_first(const Point& p);
|
Vertex_handle insert_first(const Point& p);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Inserts vertex `v` in face
|
Inserts vertex `v` in face
|
||||||
`f`. Face `f` is modified,
|
`f`. Face `f` is modified,
|
||||||
|
|
@ -988,6 +996,7 @@ public:
|
||||||
Vertex_handle insert_in_face(const Point& p, Face_handle f);
|
Vertex_handle insert_in_face(const Point& p, Face_handle f);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes a vertex of degree three. Two of the incident faces are
|
Removes a vertex of degree three. Two of the incident faces are
|
||||||
destroyed, the third one is modified. \pre Vertex `v` is a vertex with degree three.
|
destroyed, the third one is modified. \pre Vertex `v` is a vertex with degree three.
|
||||||
|
|
@ -996,6 +1005,7 @@ public:
|
||||||
void remove_degree_3(Vertex_handle v);
|
void remove_degree_3(Vertex_handle v);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes the unique vertex in the
|
Removes the unique vertex in the
|
||||||
triangulation.
|
triangulation.
|
||||||
|
|
@ -1006,10 +1016,11 @@ public:
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedFunction
|
||||||
creates a new vertex `v` and use it to star the hole
|
\cgalAdvancedBegin
|
||||||
whose boundary is described by the sequence of edges
|
creates a new vertex `v` and use it to star the hole
|
||||||
`[edge_begin, edge_end]`. Returns a handle to the new vertex.
|
whose boundary is described by the sequence of edges
|
||||||
|
`[edge_begin, edge_end]`. Returns a handle to the new vertex.
|
||||||
|
|
||||||
\pre The triangulation is a triangulation of 1 sheet
|
\pre The triangulation is a triangulation of 1 sheet
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
|
|
@ -1020,6 +1031,7 @@ public:
|
||||||
EdgeIt edge_end);
|
EdgeIt edge_end);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
same as above, except that the algorithm
|
same as above, except that the algorithm
|
||||||
first recycles faces in the sequence `[face_begin, face_end]`
|
first recycles faces in the sequence `[face_begin, face_end]`
|
||||||
|
|
@ -1036,6 +1048,7 @@ public:
|
||||||
FaceIt face_end);
|
FaceIt face_end);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Changes the domain. Note that this function calls `clear()`,
|
Changes the domain. Note that this function calls `clear()`,
|
||||||
i.e., it erases the existing triangulation.
|
i.e., it erases the existing triangulation.
|
||||||
|
|
@ -1084,6 +1097,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Checks the combinatorial validity of the triangulation and
|
Checks the combinatorial validity of the triangulation and
|
||||||
also the validity of its geometric embedding.
|
also the validity of its geometric embedding.
|
||||||
|
|
|
||||||
|
|
@ -1043,6 +1043,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
#ifdef DOXYGEN_RUNNING
|
#ifdef DOXYGEN_RUNNING
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Model of `OutputIterator` used to insert elements by defining
|
/// Model of `OutputIterator` used to insert elements by defining
|
||||||
/// the value of the property `Property`.
|
/// the value of the property `Property`.
|
||||||
|
|
@ -1050,6 +1051,7 @@ public:
|
||||||
template <class Property>
|
template <class Property>
|
||||||
using Property_back_inserter = unspecified_type;
|
using Property_back_inserter = unspecified_type;
|
||||||
|
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Model of `WritablePropertyMap` based on `Property` and that
|
/// Model of `WritablePropertyMap` based on `Property` and that
|
||||||
/// is allowed to push new items to the point set if needed.
|
/// is allowed to push new items to the point set if needed.
|
||||||
|
|
@ -1129,26 +1131,30 @@ public:
|
||||||
};
|
};
|
||||||
/// \endcond
|
/// \endcond
|
||||||
|
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Back inserter on indices
|
/// Back inserter on indices
|
||||||
/// \cgalAdvancedEnd
|
/// \cgalAdvancedEnd
|
||||||
typedef Property_back_inserter<Index_map> Index_back_inserter;
|
typedef Property_back_inserter<Index_map> Index_back_inserter;
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Back inserter on points
|
/// Back inserter on points
|
||||||
/// \cgalAdvancedEnd
|
/// \cgalAdvancedEnd
|
||||||
typedef Property_back_inserter<Point_map> Point_back_inserter;
|
typedef Property_back_inserter<Point_map> Point_back_inserter;
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Property map for pushing new points
|
/// Property map for pushing new points
|
||||||
/// \cgalAdvancedEnd
|
/// \cgalAdvancedEnd
|
||||||
typedef Push_property_map<Point_map> Point_push_map;
|
typedef Push_property_map<Point_map> Point_push_map;
|
||||||
|
/// \cgalAdvancedType
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Property map for pushing new vectors
|
/// Property map for pushing new vectors
|
||||||
/// \cgalAdvancedEnd
|
/// \cgalAdvancedEnd
|
||||||
typedef Push_property_map<Vector_map> Vector_push_map;
|
typedef Push_property_map<Vector_map> Vector_push_map;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
|
||||||
\cgalAdvancedFunction
|
\cgalAdvancedFunction
|
||||||
|
\cgalAdvancedBegin
|
||||||
\brief Returns the push property map of the given property.
|
\brief Returns the push property map of the given property.
|
||||||
|
|
||||||
\tparam T type of the property.
|
\tparam T type of the property.
|
||||||
|
|
@ -1167,8 +1173,8 @@ public:
|
||||||
return Push_property_map<Property_map<T> > (this, &prop, size());
|
return Push_property_map<Property_map<T> > (this, &prop, size());
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
|
||||||
\cgalAdvancedFunction
|
\cgalAdvancedFunction
|
||||||
|
\cgalAdvancedBegin
|
||||||
\brief Returns the push property map of the point property.
|
\brief Returns the push property map of the point property.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
*/
|
*/
|
||||||
|
|
@ -1177,8 +1183,8 @@ public:
|
||||||
return Point_push_map (this, &m_points, size());
|
return Point_push_map (this, &m_points, size());
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
|
||||||
\cgalAdvancedFunction
|
\cgalAdvancedFunction
|
||||||
|
\cgalAdvancedBegin
|
||||||
\brief Returns the push property map of the normal property.
|
\brief Returns the push property map of the normal property.
|
||||||
|
|
||||||
\note The normal property must have been added to the point set
|
\note The normal property must have been added to the point set
|
||||||
|
|
@ -1190,8 +1196,8 @@ public:
|
||||||
return Vector_push_map (this, &m_normals, size());
|
return Vector_push_map (this, &m_normals, size());
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
|
||||||
\cgalAdvancedFunction
|
\cgalAdvancedFunction
|
||||||
|
\cgalAdvancedBegin
|
||||||
\brief Returns the back inserter on the index property.
|
\brief Returns the back inserter on the index property.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
*/
|
*/
|
||||||
|
|
@ -1200,8 +1206,8 @@ public:
|
||||||
return Index_back_inserter (this, &m_indices, size());
|
return Index_back_inserter (this, &m_indices, size());
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
|
||||||
\cgalAdvancedFunction
|
\cgalAdvancedFunction
|
||||||
|
\cgalAdvancedBegin
|
||||||
\brief Returns the back inserter on the point property.
|
\brief Returns the back inserter on the point property.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@
|
||||||
\ingroup PkgSpatialSearchingDConcepts
|
\ingroup PkgSpatialSearchingDConcepts
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
|
\cgalAdvancedConcept
|
||||||
|
\cgalAdvancedBegin
|
||||||
The concept `Splitter` defines the requirements for a function object class implementing a splitting rule.
|
The concept `Splitter` defines the requirements for a function object class implementing a splitting rule.
|
||||||
|
\cgalAdvancedEnd
|
||||||
|
|
||||||
\cgalHasModel `CGAL::Fair<Traits, SpatialSeparator>`
|
\cgalHasModel `CGAL::Fair<Traits, SpatialSeparator>`
|
||||||
\cgalHasModel `CGAL::Median_of_rectangle<Traits, SpatialSeparator>`
|
\cgalHasModel `CGAL::Median_of_rectangle<Traits, SpatialSeparator>`
|
||||||
|
|
|
||||||
|
|
@ -463,6 +463,7 @@ public:
|
||||||
/// \name Vertex Motion Parameters
|
/// \name Vertex Motion Parameters
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
/// \cgalAdvancedFunction
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Controls the velocity of movement and approximation quality:
|
/// Controls the velocity of movement and approximation quality:
|
||||||
/// decreasing this value makes the mean curvature flow based contraction converge
|
/// decreasing this value makes the mean curvature flow based contraction converge
|
||||||
|
|
@ -483,6 +484,7 @@ public:
|
||||||
return m_is_medially_centered;
|
return m_is_medially_centered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// \cgalAdvancedFunction
|
||||||
/// \cgalAdvancedBegin
|
/// \cgalAdvancedBegin
|
||||||
/// Controls the smoothness of the medial approximation:
|
/// Controls the smoothness of the medial approximation:
|
||||||
/// increasing this value results in a (less smooth) skeleton closer
|
/// increasing this value results in a (less smooth) skeleton closer
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ Can be `CGAL::Sequential_tag` or `CGAL::Parallel_tag`. If it is
|
||||||
typedef unspecified_type Concurrency_tag;
|
typedef unspecified_type Concurrency_tag;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedType
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
This template class allows to get the type of a triangulation
|
This template class allows to get the type of a triangulation
|
||||||
data structure that only changes the vertex type. It has to define a type
|
data structure that only changes the vertex type. It has to define a type
|
||||||
|
|
@ -130,6 +131,7 @@ template <typename Vb2>
|
||||||
using Rebind_vertex = unspecified_type;
|
using Rebind_vertex = unspecified_type;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedType
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
This template class allows to get the type of a triangulation
|
This template class allows to get the type of a triangulation
|
||||||
data structure that only changes the cell type. It has to define a type
|
data structure that only changes the cell type. It has to define a type
|
||||||
|
|
|
||||||
|
|
@ -253,6 +253,7 @@ Returns a const reference to the underlying triangulation data structure.
|
||||||
const Triangulation_ds & tds() const;
|
const Triangulation_ds & tds() const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Returns a non-const
|
Returns a non-const
|
||||||
reference to the underlying triangulation data structure.
|
reference to the underlying triangulation data structure.
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ bool is_valid(bool verbose = true) const;
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedType
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
This template class allows to get the type of a triangulation
|
This template class allows to get the type of a triangulation
|
||||||
data structure that only changes the vertex type. It has to define a type
|
data structure that only changes the vertex type. It has to define a type
|
||||||
|
|
@ -103,6 +104,7 @@ using Rebind_full_cell = unspecified_type;
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
A set `C` of full cells satisfying the same condition as in method
|
A set `C` of full cells satisfying the same condition as in method
|
||||||
`Triangulation_data_structure::insert_in_hole()` is assumed to be marked. This
|
`Triangulation_data_structure::insert_in_hole()` is assumed to be marked. This
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Implements the validity checks required by the concept
|
Implements the validity checks required by the concept
|
||||||
`TriangulationDSFullCell`.
|
`TriangulationDSFullCell`.
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Implements the validity checks required by the concept
|
Implements the validity checks required by the concept
|
||||||
`TriangulationDSVertex`. Does not implement additional checks.
|
`TriangulationDSVertex`. Does not implement additional checks.
|
||||||
|
|
|
||||||
|
|
@ -431,6 +431,7 @@ Inserts a vertex in the triangulation data structure by subdividing the
|
||||||
Vertex_handle insert_in_facet(const Facet & ft);
|
Vertex_handle insert_in_facet(const Facet & ft);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes the full cells in the range \f$ C=\f$`[s, e)`, inserts a vertex
|
Removes the full cells in the range \f$ C=\f$`[s, e)`, inserts a vertex
|
||||||
at position `p` and fills the hole by connecting
|
at position `p` and fills the hole by connecting
|
||||||
|
|
|
||||||
|
|
@ -406,7 +406,7 @@ The simplification algorithm uses the following types and functions.
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
An iterator on the points of the of the original constraint
|
An iterator on the points of the original constraint
|
||||||
before simplification steps are applied. The value type of this iterator is `Point`.
|
before simplification steps are applied. The value type of this iterator is `Point`.
|
||||||
A \link Constrained_triangulation_plus_2::Vertices_in_constraint_iterator `Vertices_in_constraint_iterator`\endlink can be converted into
|
A \link Constrained_triangulation_plus_2::Vertices_in_constraint_iterator `Vertices_in_constraint_iterator`\endlink can be converted into
|
||||||
a `Points_in_constraint_iterator`, but not the other way around.
|
a `Points_in_constraint_iterator`, but not the other way around.
|
||||||
|
|
@ -416,6 +416,7 @@ typedef unspecified_type Points_in_constraint_iterator;
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Returns an iterator to the first point on the constraint before any simplification step.
|
Returns an iterator to the first point on the constraint before any simplification step.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
|
|
@ -423,6 +424,7 @@ Returns an iterator to the first point on the constraint before any simplificati
|
||||||
Points_in_constraint_iterator points_in_constraint_begin(Constraint_id cid) const;
|
Points_in_constraint_iterator points_in_constraint_begin(Constraint_id cid) const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Returns an iterator past the last point on the constraint before any simplification step.
|
Returns an iterator past the last point on the constraint before any simplification step.
|
||||||
\cgalAdvancedEnd
|
\cgalAdvancedEnd
|
||||||
|
|
@ -430,6 +432,7 @@ Returns an iterator past the last point on the constraint before any simplificat
|
||||||
Points_in_constraint_iterator points_in_constraint_end(Constraint_id cid) const ;
|
Points_in_constraint_iterator points_in_constraint_end(Constraint_id cid) const ;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes the vertex at `vicq` from the constraint and the triangulation.
|
Removes the vertex at `vicq` from the constraint and the triangulation.
|
||||||
The point of that vertex remains stored in the sequence of original points
|
The point of that vertex remains stored in the sequence of original points
|
||||||
|
|
@ -452,6 +455,7 @@ void
|
||||||
simplify(Vertices_in_constraint_iterator vicq);
|
simplify(Vertices_in_constraint_iterator vicq);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes the original points that correspond to vertices in the constraint `cid` which have
|
Removes the original points that correspond to vertices in the constraint `cid` which have
|
||||||
been removed by the `simplify()` function.
|
been removed by the `simplify()` function.
|
||||||
|
|
@ -462,6 +466,7 @@ remove_points_without_corresponding_vertex(Constraint_id cid);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
\cgalAdvancedFunction
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Removes all original points that correspond to vertices in the constraints which have
|
Removes all original points that correspond to vertices in the constraints which have
|
||||||
been removed by the `simplify()` function.
|
been removed by the `simplify()` function.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue