瀏覽代碼

- fixed all compilation errors in the tutorials
- added global cmake file to compile all tutorials


Former-commit-id: d47d66c34737cc03b4476bec423fa8ed488297c0

Daniele Panozzo 11 年之前
父節點
當前提交
2fed41c240

+ 2 - 2
include/igl/HalfEdgeIterator.h

@@ -18,7 +18,7 @@ namespace igl
   // HalfEdgeIterator - Fake halfedge for fast and easy navigation on triangle meshes with vertex_triangle_adjacency and
   // triangle_triangle adjacency
   template <typename DerivedF>
-  class Pos
+  class HalfEdgeIterator
   {
   public:
     // Init the HalfEdgeIterator by specifying Face,Edge Index and Orientation
@@ -128,7 +128,7 @@ namespace igl
     }
 
 
-    IGL_INLINE bool operator==(Pos& p2)
+    IGL_INLINE bool operator==(HalfEdgeIterator& p2)
     {
       return
       (

+ 2 - 2
include/igl/comiso/frame_field.cpp

@@ -1,6 +1,6 @@
 #include "frame_field.h"
 
-#include <igl/tt.h>
+#include <igl/triangle_triangle_adjacency.h>
 #include <igl/edge_topology.h>
 #include <igl/per_face_normals.h>
 #include <igl/comiso/nrosy.h>
@@ -109,7 +109,7 @@ FrameInterpolator::FrameInterpolator(const Eigen::MatrixXd& _V, const Eigen::Mat
 
 
   // Generate topological relations
-  igl::tt(V,F,TT,TTi);
+  igl::triangle_triangle_adjacency(V,F,TT,TTi);
   igl::edge_topology(V,F, EV, FE, EF);
 
   // Flag border edges

+ 9 - 9
include/igl/comiso/miq.cpp

@@ -8,12 +8,12 @@
 
 #include <igl/comiso/miq.h>
 #include <igl/local_basis.h>
-#include <igl/tt.h>
+#include <igl/triangle_triangle_adjacency.h>
 
 // includes for VertexIndexing
-#include <igl/Pos.h>
+#include <igl/HalfEdgeIterator.h>
 #include <igl/is_border_vertex.h>
-#include <igl/vf.h>
+#include <igl/vertex_triangle_adjacency.h>
 
 
 // includes for poissonSolver
@@ -633,7 +633,7 @@ Handle_Seams(_Handle_Seams)
 {
 
   V_border = igl::is_border_vertex(V,F);
-  igl::vf(V,F,VF,VFi);
+  igl::vertex_triangle_adjacency(V,F,VF,VFi);
 
   IndexToVert.clear();
 
@@ -725,7 +725,7 @@ IGL_INLINE void igl::VertexIndexing<DerivedV, DerivedF>::FindInitialPos(const in
   int f_init;
   int edge_init;
   FirstPos(vert,f_init,edge_init); // todo manually IGL_INLINE the function
-  igl::Pos<DerivedF> VFI(&F,&TT,&TTi,f_init,edge_init);
+  igl::HalfEdgeIterator<DerivedF> VFI(&F,&TT,&TTi,f_init,edge_init);
 
   bool vertexB = V_border[vert];
   bool possible_split=false;
@@ -773,7 +773,7 @@ IGL_INLINE void igl::VertexIndexing<DerivedV, DerivedF>::MapIndexes(const int  v
   ///insert an initial index
   int curr_index=AddNewIndex(vert);
   ///and initialize the jumping pos
-  igl::Pos<DerivedF> VFI(&F,&TT,&TTi,f_init,edge_init);
+  igl::HalfEdgeIterator<DerivedF> VFI(&F,&TT,&TTi,f_init,edge_init);
   bool complete_turn=false;
   do
   {
@@ -809,7 +809,7 @@ IGL_INLINE void igl::VertexIndexing<DerivedV, DerivedF>::InitMappingSeam(const i
   int f_init = VF[vert][0];
   int indexE = VFi[vert][0];
 
-  igl::Pos<DerivedF> VFI(&F,&TT,&TTi,f_init,indexE);
+  igl::HalfEdgeIterator<DerivedF> VFI(&F,&TT,&TTi,f_init,indexE);
 
   int edge_init;
   int face_init;
@@ -1052,7 +1052,7 @@ Handle_SystemInfo(_Handle_SystemInfo)
   WUV       = Eigen::MatrixXd(F.rows(),6);
   igl::doublearea(V,F,doublearea);
   igl::per_face_normals(V,F,N);
-  igl::vf(V,F,VF,VFi);
+  igl::vertex_triangle_adjacency(V,F,VF,VFi);
 }
 
 
@@ -1850,7 +1850,7 @@ V(V_),
 F(F_)
 {
   igl::local_basis(V,F,B1,B2,B3);
-  igl::tt(V,F,TT,TTi);
+  igl::triangle_triangle_adjacency(V,F,TT,TTi);
 
   // Prepare indexing for the linear system
   VertexIndexing<DerivedV, DerivedF> VInd(V, F, TT, TTi, BIS1_combed, BIS2_combed, Handle_MMatch, Handle_Singular, Handle_SingularDegree, Handle_Seams);

+ 2 - 2
include/igl/comiso/nrosy.cpp

@@ -7,7 +7,7 @@
 // obtain one at http://mozilla.org/MPL/2.0/.
 
 #include <igl/comiso/nrosy.h>
-#include <igl/tt.h>
+#include <igl/triangle_triangle_adjacency.h>
 #include <igl/edge_topology.h>
 #include <igl/per_face_normals.h>
 
@@ -159,7 +159,7 @@ igl::NRosyField::NRosyField(const Eigen::MatrixXd& _V, const Eigen::MatrixXi& _F
 
 
   // Generate topological relations
-  igl::tt(V,F,TT,TTi);
+  igl::triangle_triangle_adjacency(V,F,TT,TTi);
   igl::edge_topology(V,F, EV, FE, EF);
 
   // Flag border edges

+ 1 - 1
include/igl/cut_mesh_from_singularities.cpp

@@ -135,7 +135,7 @@ namespace igl {
     Handle_Singular(Handle_Singular_),
     Handle_SingularDegree(Handle_SingularDegree_)
     {
-      tt(V,F,TT,TTi);
+      triangle_triangle_adjacency(V,F,TT,TTi);
     };
 
     inline void cut(Eigen::PlainObjectBase<DerivedO> &Handle_Seams)

+ 2 - 2
tutorial/201_Normals/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/202_GaussianCurvature/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/203_CurvatureDirections/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 3 - 3
tutorial/203_CurvatureDirections/main.cpp

@@ -28,11 +28,11 @@ int main(int argc, char *argv[])
   // Laplace-Beltrami of position
   HN = -Minv*(L*V);
   // Extract magnitude as mean curvature
-  H = HN.rowwise().norm();
+  VectorXd H = HN.rowwise().norm();
 
   // Compute curvature directions via quadric fitting
   MatrixXd PD1,PD2;
-  VectorXd PV1,PV2,H;
+  VectorXd PV1,PV2;
   igl::principal_curvature(V,F,PD1,PD2,PV1,PV2);
   // mean curvature
   H = 0.5*(PV1+PV2);
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
 
   // Average edge length for sizing
   const double avg = igl::avg_edge_length(V,F);
-  
+
   // Draw a red segment parallel to the minimal curvature direction
   const RowVector3d red(1,0,0),blue(0,0,1);
   viewer.add_edges(V + PD1*avg, V - PD1*avg, red);

+ 2 - 2
tutorial/204_Gradient/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/205_Laplacian/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/301_Slice/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/302_Sort/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/303_LaplaceEquation/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/304_LinearEqualityConstraints/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/305_QuadraticProgramming/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/501_HarmonicParam/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/502_LSCMParam/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/503_ARAPParam/CMakeLists.txt

@@ -7,5 +7,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/504_NRosyDesign/CMakeLists.txt

@@ -11,5 +11,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})

+ 2 - 2
tutorial/505_MIQ/CMakeLists.txt

@@ -11,5 +11,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})

+ 2 - 2
tutorial/506_FrameField/CMakeLists.txt

@@ -11,5 +11,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})

+ 6 - 2
tutorial/601_Serialization/CMakeLists.txt

@@ -3,9 +3,13 @@ project(601_Serialization)
 
 include("../CMakeLists.shared")
 
+find_package(TINYXML2 REQUIRED)
+
+include_directories( ${TINYXML2_INCLUDE_DIR})
+
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TINYXML2_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TINYXML2_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/602_Matlab/CMakeLists.txt

@@ -14,5 +14,5 @@ if(APPLE)
   set(CMAKE_EXE_LINKER_FLAGS "-rpath ${MATLAB_INCLUDE_DIR}/../../bin/maci64"})
 endif (APPLE) #APPLE
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES} ${MATLAB_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES} ${MATLAB_LIBRARIES})

+ 2 - 2
tutorial/604_Triangle/CMakeLists.txt

@@ -10,5 +10,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TRIANGLE_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TRIANGLE_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/604_Triangle/main.cpp

@@ -1,5 +1,5 @@
 #include <igl/viewer/Viewer.h>
-#include <igl/triangle/triangle_wrapper.h>
+#include <igl/triangle/triangulate.h>
 // Input polygon
 Eigen::MatrixXd V;
 Eigen::MatrixXi E;
@@ -28,7 +28,7 @@ int main(int argc, char *argv[])
   H << 0,0;
 
   // Triangulate the interior
-  igl::triangle_wrapper(V,E,H,V2,F2,"a0.005q");
+  igl::triangulate(V,E,H,V2,F2,"a0.005q");
 
   // Plot the generated mesh
   igl::Viewer viewer;

+ 2 - 2
tutorial/605_Tetgen/CMakeLists.txt

@@ -10,5 +10,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TETGEN_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES} ${TETGEN_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES})

+ 2 - 2
tutorial/606_AmbientOcclusion/CMakeLists.txt

@@ -11,5 +11,5 @@ set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
-add_executable(${CMAKE_PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${CMAKE_PROJECT_NAME} ${SHARED_LIBRARIES} ${EMBREE_LIBRARIES})
+add_executable(${PROJECT_NAME} ${SOURCES} ${SHARED_SOURCES})
+target_link_libraries(${PROJECT_NAME} ${SHARED_LIBRARIES} ${EMBREE_LIBRARIES})

+ 0 - 2
tutorial/CMakeLists.shared

@@ -11,7 +11,6 @@ find_package(ANTTWEAKBAR REQUIRED)
 find_package(OpenGL REQUIRED)
 find_package(EIGEN REQUIRED)
 find_package(LIBIGL REQUIRED)
-find_package(TINYXML2 REQUIRED)
 find_package(GLFW REQUIRED)
 
 if(WIN32)
@@ -32,7 +31,6 @@ endif(WIN32)
 
 include_directories( ${EIGEN_INCLUDE_DIR})
 include_directories( ${LIBIGL_INCLUDE_DIR})
-include_directories( ${TINYXML2_INCLUDE_DIR})
 include_directories( ${GLFW_INCLUDE_DIR})
 include_directories(
 	/usr/local/include

+ 30 - 0
tutorial/CMakeLists.txt

@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 2.6)
+project(libigl_tutorials)
 
 # Chapter 1
 add_subdirectory("101_FileIO")
@@ -7,3 +8,32 @@ add_subdirectory("103_Events")
 add_subdirectory("104_Colors")
 add_subdirectory("105_Overlays")
 add_subdirectory("106_Picking")
+
+# Chapter 2
+add_subdirectory("201_Normals")
+add_subdirectory("202_GaussianCurvature")
+add_subdirectory("203_CurvatureDirections")
+add_subdirectory("204_Gradient")
+add_subdirectory("205_Laplacian")
+
+# Chapter 3
+add_subdirectory("301_Slice")
+add_subdirectory("302_Sort")
+add_subdirectory("303_LaplaceEquation")
+add_subdirectory("304_LinearEqualityConstraints")
+add_subdirectory("305_QuadraticProgramming")
+
+# Chapter 5
+add_subdirectory("501_HarmonicParam")
+add_subdirectory("502_LSCMParam")
+add_subdirectory("503_ARAPParam")
+add_subdirectory("504_NRosyDesign")
+add_subdirectory("505_MIQ")
+add_subdirectory("506_FrameField")
+
+# Chapter 6
+add_subdirectory("601_Serialization")
+add_subdirectory("602_Matlab")
+add_subdirectory("604_Triangle")
+add_subdirectory("605_Tetgen")
+add_subdirectory("606_AmbientOcclusion")