Skip to content

Commit

Permalink
Merge branch 'develop' into exceptions
Browse files Browse the repository at this point in the history
  • Loading branch information
dsieger committed May 17, 2020
2 parents 9921541 + b473e11 commit a60e3e1
Show file tree
Hide file tree
Showing 35 changed files with 610 additions and 389 deletions.
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

This project aims to adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## Unreleased

- Add PMP_INSTALL option to CMake.

## [1.2.1] 2020-05-10

### Fixed

- Fix rendering issues around sharp edges
- Fix bug in adaptive remeshing leading to over-refinement of corner vertices.
- Fix bug in bounding box computation.
Thanks a lot to Jascha Achenbach for reporting this bug!


## [1.2.0] 2019-03-15
## [1.2.0] 2020-03-15

### External libraries

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ endif()

set(PMP_MAJOR_VERSION 1)
set(PMP_MINOR_VERSION 2)
set(PMP_PATCH_VERSION 0)
set(PMP_PATCH_VERSION 1)
set(PMP_VERSION ${PMP_MAJOR_VERSION}.${PMP_MINOR_VERSION}.${PMP_PATCH_VERSION})

set(CMAKE_PROJECT_VERSION ${PMP_VERSION})
Expand Down
68 changes: 61 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,73 @@
[![Build status](https://ci.appveyor.com/api/projects/status/48ipcc9q7u09adn5?branch=master&svg=true)](https://ci.appveyor.com/project/dsieger/pmp-library)
[![Coverage Status](https://coveralls.io/repos/github/pmp-library/pmp-library/badge.svg?branch=master)](https://coveralls.io/github/pmp-library/pmp-library?branch=master)

The pmp-library is a modern C++ open-source library for digital geometry
processing. See the [home page](http://www.pmp-library.org) for details.
The Polygon Mesh Processing Library is a modern C++ open-source library for
processing and visualizing polygon surface meshes. Its core features are:

## Quickstart
- An efficient and easy-to-use mesh data structure
- Canonical mesh processing algorithms
- Ready-to-use visualization tools

Fetch the repository:
![Demo](docs/images/demo.gif)

$ git clone --recursive https://github.com/pmp-library/pmp-library.git
See [www.pmp-library.org](http://www.pmp-library.org) for more information.

## Getting Started

Clone the repository:

```sh
git clone --recursive https://github.com/pmp-library/pmp-library.git
```

Configure and build:

$ cd pmp-library && mkdir build && cd build && cmake .. && make
```sh
cd pmp-library && mkdir build && cd build && cmake .. && make
```

Run the mesh processing app:

$ ./mpview ../external/pmp-data/off/bunny.off
```sh
./mpview ../external/pmp-data/off/bunny.off
```

## Usage

```cpp
#include <pmp/SurfaceMesh.h>

int main(void)
{
pmp::SurfaceMesh mesh;
mesh.read("input.obj");
// .. do something with your mesh
mesh.write("output.obj");
}
```
## Contributing
Contributions to the pmp-library are welcome. See the
[contributing](https://www.pmp-library.org/contributing.html) section of the
[user guide](https://www.pmp-library.org/userguide.html).
## Acknowledgment
If you are using the pmp-library for research projects, please acknowledge its
use by referencing
```tex
@misc{pmp-library,
title = {The Polygon Mesh Processing Library},
author = {Daniel Sieger and Mario Botsch},
note = {http://www.pmp-library.org},
year = {2020},
}
```

## License

The pmp-library is provided under a simple and flexible MIT-style
[license](https://github.com/pmp-library/pmp-library/blob/master/LICENSE.txt),
thereby allowing for both open-source and commercial usage.
46 changes: 23 additions & 23 deletions docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ PROJECT_NAME = pmp-library
# This could be handy for archiving the generated documentation or
# if some version control system is used.

PROJECT_NUMBER = @CMAKE_PROJECT_VERSION@
PROJECT_NUMBER = ${CMAKE_PROJECT_VERSION}

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
Expand All @@ -35,14 +35,14 @@ PROJECT_NUMBER = @CMAKE_PROJECT_VERSION@
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.

PROJECT_LOGO = @CMAKE_CURRENT_SOURCE_DIR@/images/pmp-logo-text.png
PROJECT_LOGO = ${CMAKE_CURRENT_SOURCE_DIR}/images/pmp-logo-text.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.

OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@
OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}

# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
Expand Down Expand Up @@ -129,7 +129,7 @@ STRIP_FROM_PATH =
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.

STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@/src/
STRIP_FROM_INC_PATH = ${CMAKE_SOURCE_DIR}/src/

# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful if your file system
Expand Down Expand Up @@ -569,7 +569,7 @@ FILE_VERSION_FILTER =
# You can optionally specify a file name after the option, if omitted
# DoxygenLayout.xml will be used as the name of the layout file.

LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/layout.xml
LAYOUT_FILE = ${CMAKE_CURRENT_SOURCE_DIR}/layout.xml

# The CITE_BIB_FILES tag can be used to specify one or more bib files
# containing the references data. This must be a list of .bib files. The
Expand All @@ -580,7 +580,7 @@ LAYOUT_FILE = @CMAKE_CURRENT_SOURCE_DIR@/layout.xml
# feature you need bibtex and perl available in the search path. Do not use
# file names with spaces, bibtex cannot handle them.

CITE_BIB_FILES = @CMAKE_CURRENT_SOURCE_DIR@/bibliography.bib
CITE_BIB_FILES = ${CMAKE_CURRENT_SOURCE_DIR}/bibliography.bib

#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
Expand Down Expand Up @@ -642,7 +642,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.

INPUT = @CMAKE_SOURCE_DIR@/docs @CMAKE_SOURCE_DIR@/src
INPUT = ${CMAKE_SOURCE_DIR}/docs ${CMAKE_SOURCE_DIR}/src

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
Expand Down Expand Up @@ -674,11 +674,11 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE = @CMAKE_SOURCE_DIR@/docs/issue_template.md \
@CMAKE_SOURCE_DIR@/docs/pull_request_template.md \
@CMAKE_SOURCE_DIR@/docs/code_of_conduct.md \
@CMAKE_SOURCE_DIR@/docs/mpview.js \
@CMAKE_SOURCE_DIR@/docs/jekyll
EXCLUDE = ${CMAKE_SOURCE_DIR}/docs/issue_template.md \
${CMAKE_SOURCE_DIR}/docs/pull_request_template.md \
${CMAKE_SOURCE_DIR}/docs/code_of_conduct.md \
${CMAKE_SOURCE_DIR}/docs/mpview.js \
${CMAKE_SOURCE_DIR}/docs/jekyll

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
Expand Down Expand Up @@ -726,7 +726,7 @@ EXAMPLE_RECURSIVE = NO
# directories that contain image that are included in the documentation (see
# the \image command).

IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
IMAGE_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/images

# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
Expand Down Expand Up @@ -882,13 +882,13 @@ HTML_FILE_EXTENSION = .html
# have to redo this when upgrading to a newer version of doxygen or when
# changing the value of configuration settings such as GENERATE_TREEVIEW!

HTML_HEADER = @CMAKE_CURRENT_SOURCE_DIR@/header.html
HTML_HEADER = ${CMAKE_CURRENT_SOURCE_DIR}/header.html

# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.

HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/footer.html
HTML_FOOTER = ${CMAKE_CURRENT_SOURCE_DIR}/footer.html

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
Expand All @@ -907,7 +907,7 @@ HTML_STYLESHEET =
# robust against future updates. Doxygen will copy the style sheet file to
# the output directory.

HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/style.css
HTML_EXTRA_STYLESHEET = ${CMAKE_CURRENT_SOURCE_DIR}/style.css

# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
Expand All @@ -916,13 +916,13 @@ HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/style.css
# files. In the HTML_STYLESHEET file, use the file name only. Also note that
# the files will be copied as-is; there are no commands or markers available.

HTML_EXTRA_FILES = @CMAKE_CURRENT_SOURCE_DIR@/images/favicon.ico \
@CMAKE_CURRENT_SOURCE_DIR@/images/gh-corner.png \
@CMAKE_CURRENT_SOURCE_DIR@/mpview.html \
@CMAKE_CURRENT_SOURCE_DIR@/mpview.wasm \
@CMAKE_CURRENT_SOURCE_DIR@/mpview.js \
@CMAKE_CURRENT_SOURCE_DIR@/mpview.data \
@CMAKE_CURRENT_SOURCE_DIR@/images/splitbar.png
HTML_EXTRA_FILES = ${CMAKE_CURRENT_SOURCE_DIR}/images/favicon.ico \
${CMAKE_CURRENT_SOURCE_DIR}/images/gh-corner.png \
${CMAKE_CURRENT_SOURCE_DIR}/mpview.html \
${CMAKE_CURRENT_SOURCE_DIR}/mpview.wasm \
${CMAKE_CURRENT_SOURCE_DIR}/mpview.js \
${CMAKE_CURRENT_SOURCE_DIR}/mpview.data \
${CMAKE_CURRENT_SOURCE_DIR}/images/splitbar.png

# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the style sheet and background images
Expand Down
2 changes: 2 additions & 0 deletions docs/codingstyle.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ look like:
//! \return true on success.
\endverbatim

Use `\p` to reference (member) function parameters.

Another good practice is to document pre- and post-conditions for performing an
operation. Those can be documented using the `\pre` and `\post` Doxygen
[special commands](https://www.stack.nl/~dimitri/doxygen/manual/commands.html).
Expand Down
1 change: 0 additions & 1 deletion docs/footer.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<div id="nav-path" class="navpath">
$navpath
<address>
Copyright 2011-2020 the Polygon Mesh Processing Library developers.
</address>
Expand Down
Binary file added docs/images/demo.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/jekyll/_config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
title: 'The Polygon Mesh Processing Library'
description: 'The official homepage of the Polygon Mesh Processing Libray, a simple and efficient modern C++ library for processing and visualizing polygon surface meshes.'
description: 'The official homepage of the Polygon Mesh Processing Library, a simple and efficient modern C++ library for processing and visualizing polygon surface meshes.'
url: 'https://www.pmp-library.org'
sass:
sass_dir: css
Expand Down
20 changes: 11 additions & 9 deletions docs/jekyll/_layouts/default.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
<!DOCTYPE html>
<html lang="en">
{% include header.html %}
<body>
{% include navbar.html %}
{% include header.html %}

{{ content }}
<body>
{% include navbar.html %}

{% include footer.html %}
<script src="/js/jquery-3.3.1.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</body>
</html>
{{ content }}

{% include footer.html %}
<script src="/js/jquery-3.3.1.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</body>

</html>
2 changes: 1 addition & 1 deletion docs/jekyll/_layouts/page.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ <h1>{{ page.title }}</h1>
{{content}}
</div>
</div>
</div>
</div>
2 changes: 1 addition & 1 deletion docs/jekyll/_layouts/post.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ <h1 class="mt-4 post-title">{{ page.title }}</h1>
{{ content }}
</div>
</div>
</div>
</div>
39 changes: 39 additions & 0 deletions docs/jekyll/_posts/2020-05-10-version-1.2.1-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
layout: post
title: Version 1.2.1 Released!
---

We just released version 1.2.1 of the Polygon Mesh Processing Library! This is a
minor bug-fix release addressing the following issues:

- A rendering issues around sharp edges
- A bug in adaptive remeshing leading to over-refinement of corner vertices.
- A bug in bounding box computation.
Thanks a lot to Jascha Achenbach for reporting this bug!

You can find a full summary of changes in the
[changelog](https://github.com/pmp-library/pmp-library/blob/master/CHANGELOG.md).

## Obtaining the pmp-library

Get your own copy by cloning:

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

Checkout the 1.2.1 release tag:

cd pmp-library && git checkout 1.2.1

Configure and build:

mkdir build && cd build && cmake .. && make

Run the mesh processing app

./mpview ../external/pmp-data/off/bunny.off

## Reporting Bugs or Problems

If you encounter any glitches or problems
please [report the issue](https://github.com/pmp-library/pmp-library/issues) on
our GitHub issue tracker.
10 changes: 10 additions & 0 deletions docs/jekyll/archive.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
layout: page
title: News Archive
---

{% for post in site.posts%}
<p>
{{ post.date | date_to_string }}:&nbsp;&nbsp;<a href="{{post.url}}">{{post.title}}</a>
</p>
{% endfor %}

0 comments on commit a60e3e1

Please sign in to comment.