This project illustrates a reconstruction algorithm, that is a method to generate a piecewise linear surface from a 3d point set. It uses Javaview as a viewer and native C++ code based on the CGAL library (Computational Geometry Algorithms Library) for the reconstruction algorithm. Hence, the workshop also provides an example of C++ code usage with the JNI (Java Native Interface).
This project has been developed by Marc Pouget during its visit within the Mathematical Geometry Processing Group. This project was supported by the DFG Research Center MATHEON - "Mathematics for key technologies". The reconstruction algorithm is due to Raphaëlle Chaine and is implemented upon the 3d Delaunay triangulation of CGAL.
java -Djava.library.path=. -classpath "where_your_javaview_is"/jars/javaview.jar:"where_your_javaview_is"/jars/jvx.jar:reconstruction.jar dev.reconstruction.PaReconstruction
java -Djava.library.path=. -classpath "where_your_javaview_is"/jars/javaview.jar;"where_your_javaview_is"/jars/jvx.jar;reconstruction.jar dev.reconstruction.PaReconstruction
Here is the reconstructed surface with a maximum granulatity allowed of 20 and the non-volumic method.
Here is the reconstructed surface with a maximum granulatity allowed of 20 and the volumic method, faces glued together are removed which is desirable in this case.
The algorithm is a version of the "convection reconstruction" presented by Raphaëlle Chaine in "A Geometric Convection Approach of 3D Reconstruction" SGP'03, who kindly gave us her source code.
Starting from the convex hull of the point set, the algorithm deforms a closed oriented pseudo-surface embedded in the 3D Delaunay triangulation of the sampled points. The reconstructed surface consists of a set of oriented triangular facets located in this 3D Delaunay triangulation.
Two parameters are to be adjusted the maximum granularity allowed for the faces of the surface and the volumic/non-volumic tag. The granularity of a face of the surface is the ratio of the size of its smallest empty enclosing sphere and the size of the local sampling. The less the maximum granularity allowed, the more cavities are digged (and the more undesirable holes may appear). When the tag volumic is on, the faces of the pseudo-surface based on the same 3 points but with opposite orientations are removed; whereas both these faces are kept if the tag is turned to non-volumic.