In this project, I explore two kinds of parameterization algorithms. The first kind is from the view of Tutte embedding called Orbifold Tutte embedding (OTE). The other kind is from the view of differential geometry called boundary first flattening (BFF).
-
Aigerman, N. and Lipman, Y. (2015). Orbifold tutte embeddings. ACM Trans. Graph., 34(6):190:1–190:12.
-
Aigerman, N. and Lipman, Y. (2016). Hyperbolic orbifold tutte embeddings. ACM Trans. Graph., 35(6):217:1–217:14.
-
Sawhney, R. and Crane, K. (2017). Boundary first flattening. https://arxiv.org/abs/1704.06873.
sudo apt-get install freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev
mkidir build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j12
src/Viewer
Released .exe file is in experiment/bin/
Test data are included in experiment/.
There are seven folders in experiment/:
-
bin: released exe file
-
Texture: some textures to show texture mappings.
-
Euclidean Orbifold / Hyperbolic Orbifold: test data for OTE
-
BoundaryFree / Polygon / ConeParameterization: test data for BFF
Show Option:
-
Original: show loaded model.
-
Sliced: show model after cut, which is a disk.
-
Embedding: show results of algorithms
-
Covering Space: show tiled plane for orbifolds. (Only enabled in orbifold embeddings).
Show Slices and Cones: whether to show added cones and slices.
Both algorithm needs to cut mesh and set angle sum for some vertices.
The loaded mesh is shown in "Original" mode. In this mode, you can select vertices while pressing down 'S'. Input cone angle sum in the unit of . Select one vertex to add a cone and select two vertices to add a slice.
Current marker can be saved and loaded. There's a .mark file associated with each model file.
Only sphere-type Euclidean orbifolds with three cones supported: , ,
Only sphere-type hyperbolic orbifolds with cone angles all supported. The number of cones for this kind should be larger than 4.
Needed .mark file is included for test.
Use Covering Space flag to see tiled plane: part of Euclidean plane and part of Poincare disk.
Three settings: free boundary (Harmonic/Hilbert BFF with free B), polygonal boundary (Harmonic/Hilbert BFF with K), cone parameterization (Harmonic/Hilbert BFF with Cones).
Needed .mark file is included for test.
After computation, load a texture. Choose "Show texture" flag. See it in "Sliced" mode.
All codes are included in Code/.
Open .sln file in VS2017 and build. Only x64 mode supported. Needed libraries' path are set in relative mode, you needn't modify them.
MIT