Skip to content

My implementation of the conformalized mean curvature flow in C++ using OpenMesh.

Notifications You must be signed in to change notification settings

karrywong/Conformalized-Mean-Curvature-Flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

Conformalized-Mean-Curvature-Flow

These are the codes for my PhD research project on computational conformal geometry. They include my own implementation of the conformalized mean curvature flow (cMCF) using the C++ mesh data structure OpenMesh. Also, it included a new algorithm "Sphericalized cMCF" that construct homotopy of degree one maps using cMCF.
For an overview, please refer to my conference proceeding
For more details, please refer to the chapter two in my dissertation.

Instructions:

  1. Install mesh library OpenMesh and numerical solver Eigen

  2. Modify directory paths in Makefile and ensure correct directory paths for all .cpp and .h files from the codes folder

  3. Compile to get executable Map2Sphere.exe

  4. Run Map2Sphere.exe should give the instructions below, e.g. the code Map2Sphere.exe -i input.off -o output.off -f 1 applies cMCF on the mesh (input.off) and output resulting mesh (output.off).

===================================================================================================
===================================================================================================
=                                                                                                 =
=                                         Map2Sphere                                              =
=                                                                                                 =
=     This program reads in a 3D (genus-zero) surface represented by a triangular mesh and        = 
=     maps it conformally onto S^2	                                                          =
=                                                                                                 =
=     Usage is:                                                                                   =
=                 Map2Sphere.exe -i INFILE -o OUTFILE                                             =
=     where:                                                                                      =
=                 -i INFILE        --> Input Mesh file (usually in OFF format)                    =
=                 -o OUTFILE       --> Ouput Mesh file in OFF format                              =
=                 -f FLOW          --> 0: MCF   1:cMCF   2:cMCF w/ projection on sphere           =
=                                      3: Gauss Map initializer   4: Tutte Embedding initializer  =
=                 -w Tutte weights --> 1: cotangent weights    2: graph lapacian                  =
=                 -max             --> Max. no. of steps (integer), default: 2^6 = 64             =
=                 -stps            --> Step size, default: 0.01				          =
=                 -tol             --> Tolerance for sphericity, default: 0.001                   =
=                                                                                                 =
===================================================================================================
===================================================================================================

Visualization Tool

Recommend a free and open-source 3D mesh processing software MeshLab.
Download at www.meshlab.net or source codes and binaries at https://github.com/cnr-isti-vclab/meshlab

Example

  1. Ensure that Map2Sphere.exe is compiled correctly and located at the bin folder.

  2. Download the input mesh file spot.off from the example folder and place it in the same directory with other .cpp and .h files

  3. Execute Code ../bin/Map2Sphere.exe -i ./spot.off -o ./test.off -stps 0.05

  4. Visualize the input and output meshes spot.off and test.off

Copyright

OpenMesh Copyright (c) 2001-2019, RWTH-Aachen University Department of Computer Graphics and Multimedia All rights reserved. www.openmesh.org

About

My implementation of the conformalized mean curvature flow in C++ using OpenMesh.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published