pmp-library  1.0
Overview

This section provides a high-level overview of the pmp-library. We describe its design as well as the capabilities provided by the library. The pmp-library is organized into different modules. At the core of the library is the core module providing a data structure for polygonal surface meshes. On top of the core module the algorithms module provides implementations of canonical geometry processing algorithms such as remeshing, simplification, subdivision, and smoothing. The optional visualization module provides OpenGL®-based viewers and visualization tools.

The core Module

The core of the library provides a simple and efficient data structure for representing polygon surface meshes, pmp::SurfaceMesh. It also defines basic types such as 3D points and vectors as well as a basic utility classes for timing and memory profiling.

The algorithms Module

The algorithms module provides implementations of canonical geometry processing algorithms such as remeshing or mesh simplification. The class structure and naming follows a simple and straightforward scheme: Provide one class for one type of tasks and name it accordingly. Example: the pmp::SurfaceRemeshing class provides remeshing algorithms operating on surface meshes.

The visualization Module

In order to easily create visualizations the library contains an optional visualization module including basic viewers, e.g., pmp::MeshViewer. The corresponding OpenGL® code for rendering the data is contained in pmp::SurfaceMeshGL. For simplicity, the this class inherits from pmp::SurfaceMesh.