The pmp-library namespace.
|
template<typename Scalar , int M> |
using | Vector = Matrix< Scalar, M, 1 > |
| template specialization for Vector as Nx1 matrix
|
|
template<typename Scalar > |
using | Mat4 = Matrix< Scalar, 4, 4 > |
| template specialization for 4x4 matrices
|
|
template<typename Scalar > |
using | Mat3 = Matrix< Scalar, 3, 3 > |
| template specialization for 3x3 matrices
|
|
template<typename Scalar > |
using | Mat2 = Matrix< Scalar, 2, 2 > |
| template specialization for 2x2 matrices
|
|
using | vec2 = Vector< float, 2 > |
| template specialization for a vector of two float values
|
|
using | dvec2 = Vector< double, 2 > |
| template specialization for a vector of two double values
|
|
using | bvec2 = Vector< bool, 2 > |
| template specialization for a vector of two bool values
|
|
using | ivec2 = Vector< int, 2 > |
| template specialization for a vector of two int values
|
|
using | uvec2 = Vector< unsigned int, 2 > |
| template specialization for a vector of two unsigned int values
|
|
using | vec3 = Vector< float, 3 > |
| template specialization for a vector of three float values
|
|
using | dvec3 = Vector< double, 3 > |
| template specialization for a vector of three double values
|
|
using | bvec3 = Vector< bool, 3 > |
| template specialization for a vector of three bool values
|
|
using | ivec3 = Vector< int, 3 > |
| template specialization for a vector of three int values
|
|
using | uvec3 = Vector< unsigned int, 3 > |
| template specialization for a vector of three unsigned int values
|
|
using | vec4 = Vector< float, 4 > |
| template specialization for a vector of four float values
|
|
using | dvec4 = Vector< double, 4 > |
| template specialization for a vector of four double values
|
|
using | bvec4 = Vector< bool, 4 > |
| template specialization for a vector of four bool values
|
|
using | ivec4 = Vector< int, 4 > |
| template specialization for a vector of four int values
|
|
using | uvec4 = Vector< unsigned int, 4 > |
| template specialization for a vector of four unsigned int values
|
|
using | mat2 = Mat2< float > |
| template specialization for a 2x2 matrix of float values
|
|
using | dmat2 = Mat2< double > |
| template specialization for a 2x2 matrix of double values
|
|
using | mat3 = Mat3< float > |
| template specialization for a 3x3 matrix of float values
|
|
using | dmat3 = Mat3< double > |
| template specialization for a 3x3 matrix of double values
|
|
using | mat4 = Mat4< float > |
| template specialization for a 4x4 matrix of float values
|
|
using | dmat4 = Mat4< double > |
| template specialization for a 4x4 matrix of double values
|
|
using | Scalar = float |
| Scalar type.
|
|
using | Point = Vector< Scalar, 3 > |
| Point type.
|
|
using | Normal = Vector< Scalar, 3 > |
| Normal type.
|
|
using | Color = Vector< Scalar, 3 > |
| Color type. More...
|
|
using | TexCoord = Vector< Scalar, 2 > |
| Texture coordinate type.
|
|
|
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) |
| Compute the surface area of mesh . More...
|
|
Scalar | volume (const SurfaceMesh &mesh) |
| Compute the volume of a mesh. More...
|
|
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...
|
|
void | dual (SurfaceMesh &mesh) |
| Compute dual of a mesh. 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 | clamp_cot (const Scalar v) |
| clamp cotangent values as if angles are in [3, 177]
|
|
Scalar | clamp_cos (const Scalar v) |
| clamp cosine values as if angles are in [3, 177]
|
|
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 | 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).
|
|
void | read (SurfaceMesh &mesh, const std::filesystem::path &file) |
| Read into mesh from file . More...
|
|
void | write (const SurfaceMesh &mesh, const std::filesystem::path &file, const IOFlags &flags=IOFlags()) |
| Write mesh to file controlled by flags . More...
|
|
template<typename Scalar , int M, int N> |
std::ostream & | operator<< (std::ostream &os, const Matrix< Scalar, M, N > &m) |
| output a matrix by printing its space-separated compontens
|
|
template<typename Scalar , int M, int N, int K> |
Matrix< Scalar, M, N > | operator* (const Matrix< Scalar, M, K > &m1, const Matrix< Scalar, K, N > &m2) |
| matrix-matrix multiplication
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | cmult (const Matrix< Scalar, M, N > &m1, const Matrix< Scalar, M, N > &m2) |
| component-wise multiplication
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, N, M > | transpose (const Matrix< Scalar, M, N > &m) |
| transpose MxN matrix to NxM matrix
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | operator+ (const Matrix< Scalar, M, N > &m1, const Matrix< Scalar, M, N > &m2) |
| matrix addition: m1 + m2
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | operator- (const Matrix< Scalar, M, N > &m1, const Matrix< Scalar, M, N > &m2) |
| matrix subtraction: m1 - m2
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | operator- (const Matrix< Scalar, M, N > &m) |
| matrix negation: -m
|
|
template<typename Scalar , typename Scalar2 , int M, int N> |
Matrix< Scalar, M, N > | operator* (const Scalar2 s, const Matrix< Scalar, M, N > &m) |
| scalar multiplication of matrix: s*m
|
|
template<typename Scalar , typename Scalar2 , int M, int N> |
Matrix< Scalar, M, N > | operator* (const Matrix< Scalar, M, N > &m, const Scalar2 s) |
| scalar multiplication of matrix: m*s
|
|
template<typename Scalar , typename Scalar2 , int M, int N> |
Matrix< Scalar, M, N > | operator/ (const Matrix< Scalar, M, N > &m, const Scalar2 s) |
| divide matrix by scalar: m/s
|
|
template<typename Scalar , int M, int N> |
Scalar | norm (const Matrix< Scalar, M, N > &m) |
| compute the Frobenius norm of a matrix (or Euclidean norm of a vector)
|
|
template<typename Scalar , int M, int N> |
Scalar | sqrnorm (const Matrix< Scalar, M, N > &m) |
| compute the squared Frobenius norm of a matrix (or squared Euclidean norm of a vector)
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | normalize (const Matrix< Scalar, M, N > &m) |
| return a normalized copy of a matrix or a vector
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | min (const Matrix< Scalar, M, N > &m1, const Matrix< Scalar, M, N > &m2) |
| return component-wise minimum
|
|
template<typename Scalar , int M, int N> |
Matrix< Scalar, M, N > | max (const Matrix< Scalar, M, N > &m1, const Matrix< Scalar, M, N > &m2) |
| return component-wise maximum
|
|
template<typename Scalar > |
Mat4< Scalar > | viewport_matrix (Scalar l, Scalar b, Scalar w, Scalar h) |
| OpenGL viewport matrix with parameters left, bottom, width, height.
|
|
template<typename Scalar > |
Mat4< Scalar > | inverse_viewport_matrix (Scalar l, Scalar b, Scalar w, Scalar h) |
| inverse of OpenGL viewport matrix with parameters left, bottom, width, height More...
|
|
template<typename Scalar > |
Mat4< Scalar > | frustum_matrix (Scalar l, Scalar r, Scalar b, Scalar t, Scalar n, Scalar f) |
| OpenGL frustum matrix with parameters left, right, bottom, top, near, far.
|
|
template<typename Scalar > |
Mat4< Scalar > | inverse_frustum_matrix (Scalar l, Scalar r, Scalar b, Scalar t, Scalar n, Scalar f) |
| inverse of OpenGL frustum matrix with parameters left, right, bottom, top, near, far More...
|
|
template<typename Scalar > |
Mat4< Scalar > | perspective_matrix (Scalar fovy, Scalar aspect, Scalar zNear, Scalar zFar) |
| OpenGL perspective matrix with parameters field of view in y-direction, aspect ratio, and distance of near and far planes.
|
|
template<typename Scalar > |
Mat4< Scalar > | inverse_perspective_matrix (Scalar fovy, Scalar aspect, Scalar zNear, Scalar zFar) |
| inverse of perspective matrix More...
|
|
template<typename Scalar > |
Mat4< Scalar > | ortho_matrix (Scalar left, Scalar right, Scalar bottom, Scalar top, Scalar zNear=-1, Scalar zFar=1) |
| OpenGL orthogonal projection matrix with parameters left, right, bottom, top, near, far.
|
|
template<typename Scalar > |
Mat4< Scalar > | look_at_matrix (const Vector< Scalar, 3 > &eye, const Vector< Scalar, 3 > ¢er, const Vector< Scalar, 3 > &up) |
| OpenGL look-at camera matrix with parameters eye position, scene center, up-direction.
|
|
template<typename Scalar > |
Mat4< Scalar > | translation_matrix (const Vector< Scalar, 3 > &t) |
| OpenGL matrix for translation by vector t.
|
|
template<typename Scalar > |
Mat4< Scalar > | scaling_matrix (const Scalar s) |
| OpenGL matrix for scaling x/y/z by s.
|
|
template<typename Scalar > |
Mat4< Scalar > | scaling_matrix (const Vector< Scalar, 3 > &s) |
| OpenGL matrix for scaling x/y/z by the components of s.
|
|
template<typename Scalar > |
Mat4< Scalar > | rotation_matrix_x (Scalar angle) |
| OpenGL matrix for rotation around x-axis by given angle (in degrees)
|
|
template<typename Scalar > |
Mat4< Scalar > | rotation_matrix_y (Scalar angle) |
| OpenGL matrix for rotation around y-axis by given angle (in degrees)
|
|
template<typename Scalar > |
Mat4< Scalar > | rotation_matrix_z (Scalar angle) |
| OpenGL matrix for rotation around z-axis by given angle (in degrees)
|
|
template<typename Scalar > |
Mat4< Scalar > | rotation_matrix (const Vector< Scalar, 3 > &axis, Scalar angle) |
| OpenGL matrix for rotation around given axis by given angle (in degrees)
|
|
template<typename Scalar > |
Mat4< Scalar > | rotation_matrix (const Vector< Scalar, 4 > &quat) |
| OpenGL matrix for rotation specified by unit quaternion.
|
|
template<typename Scalar > |
Mat3< Scalar > | linear_part (const Mat4< Scalar > &m) |
| return upper 3x3 matrix from given 4x4 matrix, corresponding to the linear part of an affine transformation
|
|
template<typename Scalar > |
Vector< Scalar, 3 > | projective_transform (const Mat4< Scalar > &m, const Vector< Scalar, 3 > &v) |
| projective transformation of 3D vector v by a 4x4 matrix m: add 1 as 4th component of v, multiply m*v, divide by 4th component
|
|
template<typename Scalar > |
Vector< Scalar, 3 > | affine_transform (const Mat4< Scalar > &m, const Vector< Scalar, 3 > &v) |
| affine transformation of 3D vector v by a 4x4 matrix m: add 1 as 4th component of v, multiply m*v, do NOT divide by 4th component
|
|
template<typename Scalar > |
Vector< Scalar, 3 > | linear_transform (const Mat4< Scalar > &m, const Vector< Scalar, 3 > &v) |
| linear transformation of 3D vector v by a 4x4 matrix m: transform vector by upper-left 3x3 submatrix of m
|
|
template<typename Scalar > |
Mat4< Scalar > | inverse (const Mat4< Scalar > &m) |
| return the inverse of a 4x4 matrix
|
|
template<typename Scalar > |
Scalar | determinant (const Mat3< Scalar > &m) |
| return determinant of 3x3 matrix
|
|
template<typename Scalar > |
Mat3< Scalar > | inverse (const Mat3< Scalar > &m) |
| return the inverse of a 3x3 matrix
|
|
template<typename Scalar > |
bool | symmetric_eigendecomposition (const Mat3< Scalar > &m, Scalar &eval1, Scalar &eval2, Scalar &eval3, Vector< Scalar, 3 > &evec1, Vector< Scalar, 3 > &evec2, Vector< Scalar, 3 > &evec3) |
| compute eigenvector/eigenvalue decomposition of a 3x3 matrix
|
|
template<typename Scalar , int N> |
std::istream & | operator>> (std::istream &is, Vector< Scalar, N > &vec) |
| read the space-separated components of a vector from a stream
|
|
template<typename Scalar , int N> |
std::ostream & | operator<< (std::ostream &os, const Vector< Scalar, N > &vec) |
| output a vector by printing its space-separated compontens
|
|
template<typename Scalar , int N> |
Scalar | dot (const Vector< Scalar, N > &v0, const Vector< Scalar, N > &v1) |
| compute the dot product of two vectors
|
|
template<typename Scalar , int N> |
Scalar | distance (const Vector< Scalar, N > &v0, const Vector< Scalar, N > &v1) |
| compute the Euclidean distance between two points
|
|
template<typename Scalar > |
Vector< Scalar, 2 > | perp (const Vector< Scalar, 2 > &v) |
| compute perpendicular vector (rotate vector counter-clockwise by 90 degrees)
|
|
template<typename Scalar > |
Vector< Scalar, 3 > | cross (const Vector< Scalar, 3 > &v0, const Vector< Scalar, 3 > &v1) |
| compute the cross product of two vectors (only valid for 3D vectors)
|
|
std::ostream & | operator<< (std::ostream &os, Vertex v) |
| output a Vertex to a stream
|
|
std::ostream & | operator<< (std::ostream &os, Halfedge h) |
| output a Halfedge to a stream
|
|
std::ostream & | operator<< (std::ostream &os, Edge e) |
| output an Edge to a stream
|
|
std::ostream & | operator<< (std::ostream &os, Face f) |
| output a Face to a stream
|
|
std::ostream & | operator<< (std::ostream &os, const Timer &timer) |
| output a timer to a stream
|
|
BoundingBox | bounds (const SurfaceMesh &mesh) |
| Compute the bounding box of mesh .
|
|
void | flip_faces (SurfaceMesh &mesh) |
| Flip the orientation of all faces in mesh .
|
|