This page provides the C++ source code for Feature Curve Orientation, the core part of
Feature-Aligned Shape Texturing. The curve orientation problem can be described as follows. Given a set of curves on a 3D surface, each represented as a sequence of vertices connected by edges, we wish to assign an orientation to the tangent vector at each vertex, so that a vector field that interpolates these oriented tangents is as smooth as possible. Please refer the details of our algorithm to the paper. Downloads: * Source Code (MeshStudio MSVC++ 2005 project, 452 KB) * CHOLMOD includes and libs compiled on Windows XP (cholmod.zip, 976KB) * A wrapper for CHOLMOD matrix and vector (cholmod_wrapper.zip, 4KB) Testing Data (data.zip, 3.0MB) includes the following items: * A mesh model file (fandisk.obj) * Crest lines for the model output by Shin Yoshizawa's crest line extraction program (ravines_fandisk.txt and ridges_fandisk.txt). * Processed crest lines with both random (fandisk_rand.ccl) and optimized orientation (fandisk_opt.ccl). * A vector field file (fandisk_opt.shvf) generated with the optimized orientation. Copyright: MeshStudio is developed by Kai Xu for research use. All rights about the program (esp. feature curve orientation) are reserved by Kai Xu. This C++ source codes are available only to a primary user for academic purposes. No secondary use, such as copy, distribution, diversion, business purpose, etc., is allowed. In no event shall the author be liable to any party for direct, indirect, special, incidental, or consequential damage arising out of the use of this program. MeshStudio is built on top of CGAL and many other libraries and source codes (see the copyright terms therein). Compilation: Platform: Win32 IDE: MSVC++ 2005 Instructions (see also readme.txt included in the package): * To compile the MSVC++ project, you need to first install CGAL (e.g., version 3.3). In the following, I use $(CGALROOT) to refer to the root directory of CGAL. * The computation of harmonic vector field uses CHOLMOD, so you also need to include and link the CHOLMOD stuff. All you need to do is simply copying the the headers in "cholmod.zip(\include)" into "$(CGALROOT)\auxiliary\cholmod\include\" and the libs in "cholmod.zip(\lib)" into "$(CGALROOT)\auxiliary\cholmod\lib\". The including and linking setting has been set up within the VS project. * I wrote a wrapper class for CHOLMOD matrix and vector (but not including the solver APIs) which you can find in "cholmod_wrapper.zip". Copy the two *.h files into "$(CGALROOT)\include\CGAL\". Usage: * Input: There are two options. You can load either the output of Shin Yoshizawa's crest line program or crest lines processed and saved by MeshStudio (*.ccl). * Run: You can perform orientation at any time, no matter which type of data you have loaded. The corresponding vector field will also be computed. * Output: You can save the resulted vector field into file (*.shvf). Please refer more details to readme.txt included in the package. Acknowledgement: We would like to thank the providers of the following libraries/source codes: CGAL CHOLMOD Shin Yoshizawa's crest line extraction program Feedback: Please send any feedback to kevin DOT kai DOT xu AT gmail DOT com. Thank you. |
