31#if defined(SurfaceMeshMeasure_RECURSES)
32#error Recursive header files inclusion detected in SurfaceMeshMeasure.h
35#define SurfaceMeshMeasure_RECURSES
37#if !defined SurfaceMeshMeasure_h
39#define SurfaceMeshMeasure_h
44#include "DGtal/kernel/CCommutativeRing.h"
45#include "DGtal/shapes/SurfaceMesh.h"
81 template <
typename TRealPo
int,
typename TRealVector,
typename TValue >
102 typedef typename RealVector::Component
Scalar;
186 std::tuple< Vertices, WeightedEdges, WeightedFaces >
218 for (
auto&& v : wvertices ) m +=
vertex_measures[ v.first ] * v.second;
245 for (
auto&& e : wedges ) m +=
edge_measures[ e.first ] * e.second;
272 for (
auto&& v : wfaces ) m +=
face_measures[ v.first ] * v.second;
305#undef SurfaceMeshMeasure_RECURSES
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
static const Dimension dimension
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::uint32_t Dimension
Aim: stores an arbitrary measure on a SurfaceMesh object. The measure can be spread onto its vertices...
DGtal::SurfaceMesh< RealPoint, RealVector > SurfaceMesh
std::pair< Face, Scalar > WeightedFace
std::vector< Face > Faces
The type that defines a range of faces.
const SurfaceMesh * meshPtr() const
Value edgeMeasure(Edge e) const
Value vertexMeasure(Vertex v) const
Values face_measures
Stores the scalar curvature measure per indexed face element.
SurfaceMeshMeasure(ConstAlias< SurfaceMesh > aMesh=nullptr, Value zero_value=Value())
Values vertex_measures
Stores the scalar curvature measure per indexed vertex element.
std::pair< Vertex, Scalar > WeightedVertex
Value myZero
Zero value for the given type.
Values & kMeasures(Dimension dim)
std::vector< Value > Values
const SurfaceMesh * myMeshPtr
A pointer to the mesh over which computations are done.
Value edgeMeasure(const Edges &edges) const
Value faceMeasure(const WeightedFaces &wfaces) const
Value measure(const RealPoint &x, Scalar r, Face f) const
Value faceMeasure(Face f) const
Value faceMeasure(const Faces &faces) const
std::vector< WeightedVertex > WeightedVertices
Value edgeMeasure(const WeightedEdges &wedges) const
const Values & kMeasures(Dimension dim) const
SurfaceMeshMeasure< RealPoint, RealVector, Value > Self
static const Dimension dimension
std::vector< Edge > Edges
The type that defines a range of edges.
Value vertexMeasure(const WeightedVertices &wvertices) const
std::vector< WeightedEdge > WeightedEdges
SurfaceMesh::Vertex Vertex
std::vector< Vertex > Vertices
The type that defines a range of vertices.
Value vertexMeasure(const Vertices &vertices) const
RealVector::Component Scalar
std::pair< Edge, Scalar > WeightedEdge
std::vector< WeightedFace > WeightedFaces
Values edge_measures
Stores the scalar curvature measure per indexed edge element.
Aim: Represents an embedded mesh as faces and a list of vertices. Vertices may be shared among faces ...
std::size_t Size
The type for counting elements.
std::tuple< Vertices, WeightedEdges, WeightedFaces > computeCellsInclusionsInBall(Scalar r, Index f) const
std::size_t Index
The type used for numbering vertices and faces.
WeightedFaces computeFacesInclusionsInBall(Scalar r, Index f) const