Final words

Documentation

The code in the MeshCut project was written with the help of the following documentations:
OpenMesh: http://www.openmesh.org/media/Documentations/OpenMesh-Doc-Latest/index.html
Eigen: http://eigen.tuxfamily.org/dox/index.html
OpenFlipper: http://openflipper.org/Documentation/latest/index.html
ShapeOp: http://shapeop.org/ShapeOpDoc.0.1.0/index.html

Acknowledgements

The base structure of MeshCut was inspired by the Topology plugin, and in particular the split_edge function. There was a bug in it, where the minimum distance from clicked point on the face to closest edge was not updated; this produced uneven edge selection but was easily corrected. I sent a patch to Jan Möbius of OpenFlipper and he included it to the project's git.
Thanks to Florian Brandherm, who answered me on the OpenMesh mailing list, I was able to understand how splitting a single edge in two would be possible with the halfedge data structure of OpenMesh.
I want to thank Alexandru Eugen Ichim for helping me understand aspects of ShapeOp better, and also for compilation tweaks.
I want to especially thank Mina Aleksandra Konakovic for her help and patience throughout the project. I am also grateful to Prof. Mark Pauly and the LGG for allowing me to do this project.

Sources

Sofien Bouaziz, Mario Deuss, Yuliy Schwartzburg, Thibaut Weise, and Mark Pauly. Shape-up: Shaping discretegeometry with projections. Comp. Graph. Forum, 2012.

Sofien Bouaziz, Sebastian Martin, Tiantian Liu, Ladislav Kavan, and Mark Pauly. Projective dynamics: Fusingconstraint projections for fast simulation. ACM Trans. Graph., 2014.

Ronald Goldman, Intersection of two lines in three-space, in Graphics Gems 1st ed., p.304