mirror of https://github.com/CGAL/cgal
typos + backticks
This commit is contained in:
parent
565ce305e9
commit
7cc653d1f8
|
|
@ -4,7 +4,7 @@ namespace Surface_mesh_topology {
|
|||
/*!
|
||||
\ingroup PkgSurfaceMeshTopologyClasses
|
||||
|
||||
The class `Curves_on_surface_topology` provides methods to compute shortest non contracible cycles and to test homotopy on paths. Each object of this class is constructed from an external mesh, either a \ref CombinatorialMap "2D combinatorial map" or a model of a FaceGraph. It maintains a correspondence between this mesh and an internal representation, computed the first time an homotopy test is called. The user must not modify the input surface as long as homotopy tests are performed with this `Curves_on_surface_topology`.
|
||||
The class `Curves_on_surface_topology` provides methods to compute shortest non contractible cycles and to test homotopy on paths. Each object of this class is constructed from an external mesh, either a \ref CombinatorialMap "2D combinatorial map" or a model of a FaceGraph. It maintains a correspondence between this mesh and an internal representation, computed the first time an homotopy test is called. The user must not modify the input surface as long as homotopy tests are performed with this `Curves_on_surface_topology`.
|
||||
|
||||
\tparam Mesh a model of `CombinatorialMap` or of `FaceGraph`
|
||||
*/
|
||||
|
|
@ -14,7 +14,7 @@ namespace Surface_mesh_topology {
|
|||
public:
|
||||
|
||||
/*!
|
||||
%halfedge_descriptor type. A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
*/
|
||||
typedef unspecified_type halfedge_descriptor;
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ namespace Surface_mesh_topology {
|
|||
template <class WeightFunctor=Unit_weight_functor>
|
||||
Path_on_surface<Mesh> compute_shortest_non_contractible_cycle_with_base_point(halfedge_descriptor dh, const WeightFunctor& wf=WeightFunctor()) const;
|
||||
|
||||
/*! returns a vector of darts representing a non-contractible curve with a minimal number of intersection with the graph of the mesh. This curve can be decribed by the alternating sequence of faces and vertices it goes through, so that each dart in the returned vector belongs to both a face and the next vertex in the alternating sequence. (Here, faces and vertices are viewed as subsets of darts.) The size of the returned vector is the face width of the mesh.
|
||||
/*! returns a vector of darts representing a non-contractible curve with a minimal number of intersection with the graph of the mesh. This curve can be described by the alternating sequence of faces and vertices it goes through, so that each dart in the returned vector belongs to both a face and the next vertex in the alternating sequence. (Here, faces and vertices are viewed as subsets of darts.) The size of the returned vector is the face width of the mesh.
|
||||
*/
|
||||
std::vector<halfedge_descriptor> compute_face_width() const;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Surface_mesh_topology {
|
|||
{
|
||||
public:
|
||||
/*!
|
||||
%halfedge_descriptor type. A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
*/
|
||||
typedef unspecified_type halfedge_descriptor;
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ namespace Surface_mesh_topology {
|
|||
/// clears this path.
|
||||
void clear();
|
||||
|
||||
/// returns `true` iff `hd` can be added at the end of this path. If `flip` is true, `hd`'s direction is reversed before checking
|
||||
/// returns `true` iff `hd` can be added at the end of this path. If `flip` is true, the direction of `hd` is reversed before checking
|
||||
bool can_be_pushed(halfedge_descriptor hd, bool flip=false) const;
|
||||
|
||||
/// adds `hd` at the end of this path. If `flip` is true, the opposite of `hd` is considered.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ namespace Surface_mesh_topology {
|
|||
/*!
|
||||
\ingroup PkgSurfaceMeshTopologyClasses
|
||||
|
||||
The class `Polygonal_schema_min_items` defines a struct with a std::string as the information associated with darts, and no attribute is enabled.
|
||||
The class `Polygonal_schema_min_items` defines a struct with a `std::string` as the information associated with darts, and no attribute is enabled.
|
||||
|
||||
\cgalModels `PolygonalSchemaItems`
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ namespace CGAL {
|
|||
\ingroup PkgDrawFaceGraphWithPaths
|
||||
|
||||
opens a new window and draws `amesh`, either a 2D linear cell complex or a model of the FaceGraph concept, plus the paths lying on this mesh given in `apaths`.
|
||||
A call to this function is blocking, that is the program continues as soon as the user closes the window. This function requires CGAL_Qt5, and is only available if the flag CGAL_USE_BASIC_VIEWER is defined at compile time.
|
||||
A call to this function is blocking, that is the program continues as soon as the user closes the window. This function requires `CGAL_Qt5`, and is only available if the flag `CGAL_USE_BASIC_VIEWER` is defined at compile time.
|
||||
\tparam Mesh either a 2D linear cell complex or a model of the FaceGraph concept.
|
||||
\param amesh the mesh to draw.
|
||||
\param apaths the paths to draw, which should lie on `amesh`.
|
||||
|
|
@ -17,7 +17,7 @@ void draw(const Mesh& amesh,
|
|||
\ingroup PkgDrawFaceGraphWithPaths
|
||||
|
||||
opens a new window and draws `amesh`, either a 2D linear cell complex or a model of the FaceGraph concept, plus the paths lying on this mesh given in `apaths`.
|
||||
A call to this function is blocking, that is the program continues as soon as the user closes the window. This function requires CGAL_Qt5, and is only available if the flag CGAL_USE_BASIC_VIEWER is defined at compile time.
|
||||
A call to this function is blocking, that is the program continues as soon as the user closes the window. This function requires `CGAL_Qt5`, and is only available if the flag `CGAL_USE_BASIC_VIEWER` is defined at compile time.
|
||||
\tparam Mesh either a 2D linear cell complex or a model of the FaceGraph concept.
|
||||
\param amesh the mesh to draw.
|
||||
\param apaths the paths to draw, which should lie on `amesh`.
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public:
|
|||
/// returns true iff the facet containing `dh` is perforated.
|
||||
bool is_perforated(Dart_const_handle dh) const;
|
||||
|
||||
/// Shortcut for is_perforated(get_dart_labeled(s)).
|
||||
/// Shortcut for `is_perforated(get_dart_labeled(s))`.
|
||||
bool is_perforated(const std::string & s) const;
|
||||
|
||||
/// perforates the facet containing `dh`. Returns the number of darts of the face; 0 if the facet was already perforated.
|
||||
|
|
@ -60,6 +60,6 @@ public:
|
|||
/// fills the facet containing `dh`. Returns the number of darts of the face; 0 if the facet was already filled.
|
||||
size_type fill_facet(Dart_handle dh);
|
||||
|
||||
/// Shortcut for fill_facet(get_dart_labeled(s)).
|
||||
/// Shortcut for `fill_facet(get_dart_labeled(s))`.
|
||||
size_type fill_facet(const std::string & s);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
\ingroup PkgSurfaceMeshTopologyConcepts
|
||||
\cgalConcept
|
||||
|
||||
The concept `PolygonalSchemaItems` allows to customize a PolygonalSchema by choosing the information associated with darts, and by enabling and disabling some attributes. `%Dart_wrapper<Map>::%Dart_info`, should be a class having a public data member std::string m_label.
|
||||
The concept `PolygonalSchemaItems` allows to customize a `PolygonalSchema` by choosing the information associated with darts, and by enabling and disabling some attributes. `%Dart_wrapper<Map>::%Dart_info`, should be a class having a public data member std::string m_label.
|
||||
|
||||
\cgalRefines GenericMapItems
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public:
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
%halfedge_descriptor type. A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
A handle to `Dart` for combinatorial/generalized maps, or a halfedge descriptor for models of the `FaceGraph` concept.
|
||||
*/
|
||||
typedef unspecified_type halfedge_descriptor;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ A closed curve, either topological or combinatorial, that cannot be continuously
|
|||
- Given a surface mesh \f$\cal{M}\f$, compute a shortest non-contractible combinatorial curve without the previous vertex requirement. When all the edges have the same unit length, the length of a shortest non-contractible curve is known as the <em>edge width</em> of the surface,
|
||||
- Given a surface mesh \f$\cal{M}\f$, compute a shortest non-contractible topological curve. It can be assumed that this curve does not cross the edges of \f$\cal{M}\f$ and only passes through the vertices. It follows that the curve can be described by a circular sequence of traversed faces alternating with the vertices it passes through. The length of this curve (i.e., the number of vertices it passes through) is known as the <em>face width</em> of the surface.
|
||||
|
||||
It is important to clarify how we compare the lengths of two combinatorial curves in order to compute the shortest one. "Shortest" can be understood as "having the least amount of edges" or "having the smallest total length of its edges". In the former case, we consider that the mesh is unweighted; in the latter case, we consider that the mesh is weighted, and one must specify how the weight, or length, of each edge is calculated (see concept `WeightFunctor`). When the vertices of the mesh have Euclidean coordinates, the Eudlidean distance between two connected vertices defines a natural weight for the corresponding edge. A weight functor \link CGAL::Surface_mesh_topology::Euclidean_length_weight_functor `Euclidean_length_weight_functor`\endlink is provided for this purpose.
|
||||
It is important to clarify how we compare the lengths of two combinatorial curves in order to compute the shortest one. "Shortest" can be understood as "having the least amount of edges" or "having the smallest total length of its edges". In the former case, we consider that the mesh is unweighted; in the latter case, we consider that the mesh is weighted, and one must specify how the weight, or length, of each edge is calculated (see concept `WeightFunctor`). When the vertices of the mesh have Euclidean coordinates, the Euclidean distance between two connected vertices defines a natural weight for the corresponding edge. A weight functor \link CGAL::Surface_mesh_topology::Euclidean_length_weight_functor `Euclidean_length_weight_functor`\endlink is provided for this purpose.
|
||||
|
||||
The algorithm to find a shortest non-contractible curve through a specified vertex is based on the paper by Cabello et al. \cgalCite{cvl-ew-12}. The time complexity is linear, though in the weighted case it is raised by a logarithmic factor, assuming that the weight computation takes constant time per edge. Computing the edge width takes quadratic time by running the first function on each vertex, and its complexity is also raised by a logarithmic factor when considering a weighted map. Computing the face width consists of constructing the radial graph of the original mesh and computing the edge width of the radial graph. It thus takes quadratic time. Computing face width on weighted maps is currently not supported.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue