/pmp-library

The Polygon Mesh Processing Library

Primary LanguageC++OtherNOASSERTION

Introduction

build Coverage Status Latest Release

The Polygon Mesh Processing Library is a modern C++ open-source library for processing and visualizing polygon surface meshes. Its main features are:

  • An efficient and easy-to-use mesh data structure
  • Standard algorithms such as decimation, remeshing, subdivision, or smoothing
  • Ready-to-use visualization tools
  • Seamless cross-compilation to JavaScript (demo)

Get Started

Clone the repository:

git clone https://github.com/pmp-library/pmp-library.git

Configure and build:

cd pmp-library && mkdir build && cd build && cmake .. && make

Run the mesh processing app:

./mpview ../data/off/bunny.off

Build your own tool:

#include <pmp/surface_mesh.h>

int main(void)
{
    pmp::SurfaceMesh mesh;
    pmp::read(mesh,"input.obj");
    // .. do awesome things with your mesh
    pmp::write(mesh,"output.obj");
}

Contribute

Contributions to PMP are welcome. See the contributing section of the user guide.

Acknowledge

If you are using PMP for research projects, please acknowledge its use by referencing

@misc{pmp-library,
title  = {The Polygon Mesh Processing Library},
author = {Daniel Sieger and Mario Botsch},
note   = {http://www.pmp-library.org},
year   = {2019},
}

We acknowledge that PMP evolved from our previous work on Surface_mesh and OpenMesh.

License

PMP is provided under a simple and flexible MIT-style license allowing for both open-source and commercial usage.