pmp-library  1.0
algorithms

Geometry processing algorithms. More...

Classes

struct  VertexCurvature
 discrete curvature information for a vertex. used for vertex_curvature() More...
 
class  Heap< HeapEntry, HeapInterface >
 A class implementing a heap. More...
 
class  NormalCone
 A class implementing a normal cone. More...
 
class  Quadric
 This class stores a quadric as a symmetrix 4x4 matrix. More...
 
class  SurfaceCurvature
 Compute per-vertex curvature (min,max,mean,Gaussian). More...
 
class  SurfaceFairing
 A class for implicitly fairing a surface mesh. More...
 
class  SurfaceFeatures
 Detect and mark feature edges based on boundary or dihedral angle. More...
 
class  SurfaceGeodesic
 Compute geodesic distance from a set of seed vertices. More...
 
class  SurfaceHoleFilling
 Close simple holes. More...
 
class  SurfaceNormals
 A class for computing surface normals. More...
 
class  SurfaceParameterization
 A class for surface parameterization. More...
 
class  SurfaceRemeshing
 A class for uniform and adaptive surface remeshing. More...
 
class  SurfaceSimplification
 Surface mesh simplification based on approximation error and fairness criteria. More...
 
class  SurfaceSmoothing
 A class for Laplacian smoothing. More...
 
class  SurfaceSubdivision
 A class providing surface subdivision algorithms. More...
 
class  SurfaceTriangulation
 Triangulate polygons to get a pure triangle mesh. More...
 
class  TriangleKdTree
 A k-d tree for triangles. More...
 

Functions

double clamp_cot (const double v)
 clamp cotangent values as if angles are in [1, 179]
 
double clamp_cos (const double v)
 clamp cosine values as if angles are in [1, 179]
 
Scalar angle (const Point &v0, const Point &v1)
 compute angle between two (un-normalized) vectors
 
Scalar sin (const Point &v0, const Point &v1)
 compute sine of angle between two (un-normalized) vectors
 
Scalar cos (const Point &v0, const Point &v1)
 compute cosine of angle between two (un-normalized) vectors
 
Scalar cotan (const Point &v0, const Point &v1)
 compute cotangent of angle between two (un-normalized) vectors
 
Scalar triangle_area (const Point &p0, const Point &p1, const Point &p2)
 compute area of a triangle given by three points
 
Scalar triangle_area (const SurfaceMesh &mesh, Face f)
 compute area of triangle f
 
Scalar surface_area (const SurfaceMesh &mesh)
 surface area of the mesh (assumes triangular faces)
 
Point centroid (const SurfaceMesh &mesh, Face f)
 barycenter/centroid of a face
 
Point centroid (const SurfaceMesh &mesh)
 barycenter/centroid of mesh, computed as area-weighted mean of vertices. More...
 
double cotan_weight (const SurfaceMesh &mesh, Edge e)
 compute the cotangent weight for edge e
 
double voronoi_area (const SurfaceMesh &mesh, Vertex v)
 compute (mixed) Voronoi area of vertex v
 
double voronoi_area_barycentric (const SurfaceMesh &mesh, Vertex v)
 compute barycentric Voronoi area of vertex v
 
Point laplace (const SurfaceMesh &mesh, Vertex v)
 compute Laplace vector for vertex v (normalized by Voronoi area)
 
Scalar angle_sum (const SurfaceMesh &mesh, Vertex v)
 compute the sum of angles around vertex v (used for Gaussian curvature)
 
VertexCurvature vertex_curvature (const SurfaceMesh &mesh, Vertex v)
 compute min, max, mean, and Gaussian curvature for vertex v. More...
 
Scalar dist_point_line_segment (const Point &p, const Point &v0, const Point &v1, Point &nearest_point)
 Compute the distance of a point p to a line segment given by points (v0,v1).
 
Scalar dist_point_triangle (const Point &p, const Point &v0, const Point &v1, const Point &v2, Point &nearest_point)
 Compute the distance of a point p to the triangle given by points (v0, v1, v2).
 

Detailed Description

Geometry processing algorithms.

Function Documentation

Point centroid ( const SurfaceMesh mesh)

barycenter/centroid of mesh, computed as area-weighted mean of vertices.

assumes triangular faces.

VertexCurvature vertex_curvature ( const SurfaceMesh mesh,
Vertex  v 
)

compute min, max, mean, and Gaussian curvature for vertex v.

this will not give realiable values for boundary vertices.