Browse Source

Merge branch 'master' of github.com:libigl/libigl

Former-commit-id: 93ab061ac17cc325d396bf63c55cf36354b1a8fb
Alec Jacobson 10 năm trước cách đây
mục cha
commit
e7c93f0c77

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

@@ -5,7 +5,8 @@ include("../CMakeLists.shared")
 
 find_package(LIBCOMISO REQUIRED)
 
-include_directories( ${LIBCOMISO_INCLUDE_DIR} )
+include_directories( ${LIBCOMISO_INCLUDE_DIR}
+                     ${LIBCOMISO_INCLUDE_DIRS} )
 
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp

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

@@ -5,7 +5,8 @@ include("../CMakeLists.shared")
 
 find_package(LIBCOMISO REQUIRED)
 
-include_directories( ${LIBCOMISO_INCLUDE_DIR} )
+include_directories( ${LIBCOMISO_INCLUDE_DIR}
+                     ${LIBCOMISO_INCLUDE_DIRS} )
 
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp

+ 15 - 9
tutorial/505_MIQ/main.cpp

@@ -16,6 +16,7 @@ Eigen::MatrixXd B;
 
 // Scale for visualizing the fields
 double global_scale;
+bool extend_arrows = false;
 
 // Cross field
 Eigen::MatrixXd X1,X2;
@@ -70,6 +71,11 @@ void line_texture(Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> &te
 
 bool key_down(igl::Viewer& viewer, unsigned char key, int modifier)
 {
+  if (key == 'E')
+  {
+    extend_arrows = !extend_arrows;
+  }
+  
   if (key <'1' || key >'8')
     return false;
 
@@ -81,24 +87,24 @@ bool key_down(igl::Viewer& viewer, unsigned char key, int modifier)
   {
     // Cross field
     viewer.data.set_mesh(V, F);
-    viewer.data.add_edges(B, B + global_scale*X1 ,Eigen::RowVector3d(1,0,0));
-    viewer.data.add_edges(B, B + global_scale*X2 ,Eigen::RowVector3d(0,0,1));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*X1 : B, B + global_scale*X1 ,Eigen::RowVector3d(1,0,0));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*X2 : B, B + global_scale*X2 ,Eigen::RowVector3d(0,0,1));
   }
 
   if (key == '2')
   {
     // Bisector field
     viewer.data.set_mesh(V, F);
-    viewer.data.add_edges(B, B + global_scale*BIS1 ,Eigen::RowVector3d(1,0,0));
-    viewer.data.add_edges(B, B + global_scale*BIS2 ,Eigen::RowVector3d(0,0,1));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*BIS1 : B, B + global_scale*BIS1 ,Eigen::RowVector3d(1,0,0));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*BIS2 : B, B + global_scale*BIS2 ,Eigen::RowVector3d(0,0,1));
   }
 
   if (key == '3')
   {
     // Bisector field combed
     viewer.data.set_mesh(V, F);
-    viewer.data.add_edges(B, B + global_scale*BIS1_combed ,Eigen::RowVector3d(1,0,0));
-    viewer.data.add_edges(B, B + global_scale*BIS2_combed ,Eigen::RowVector3d(0,0,1));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*BIS1_combed : B, B + global_scale*BIS1_combed ,Eigen::RowVector3d(1,0,0));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*BIS2_combed : B, B + global_scale*BIS2_combed ,Eigen::RowVector3d(0,0,1));
   }
 
   if (key == '4')
@@ -142,8 +148,8 @@ bool key_down(igl::Viewer& viewer, unsigned char key, int modifier)
     // Singularities and cuts, original field
     // Singularities and cuts
     viewer.data.set_mesh(V, F);
-    viewer.data.add_edges(B, B + global_scale*X1_combed ,Eigen::RowVector3d(1,0,0));
-    viewer.data.add_edges(B, B + global_scale*X2_combed ,Eigen::RowVector3d(0,0,1));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*X1_combed : B, B + global_scale*X1_combed ,Eigen::RowVector3d(1,0,0));
+    viewer.data.add_edges(extend_arrows ? B - global_scale*X2_combed : B, B + global_scale*X2_combed ,Eigen::RowVector3d(0,0,1));
 
     // Plot cuts
     int l_count = Seams.sum();
@@ -198,7 +204,7 @@ bool key_down(igl::Viewer& viewer, unsigned char key, int modifier)
     viewer.data.set_uv(UV_seams,FUV_seams);
     viewer.core.show_texture = true;
   }
-
+  
   viewer.data.set_colors(Eigen::RowVector3d(1,1,1));
 
   // Replace the standard texture with an integer shift invariant texture

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

@@ -5,7 +5,8 @@ include("../CMakeLists.shared")
 
 find_package(LIBCOMISO REQUIRED)
 
-include_directories( ${LIBCOMISO_INCLUDE_DIR} )
+include_directories( ${LIBCOMISO_INCLUDE_DIR}
+                     ${LIBCOMISO_INCLUDE_DIRS} )
 
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp

+ 21 - 1
tutorial/cmake/FindLIBCOMISO.cmake

@@ -38,12 +38,32 @@ FIND_LIBRARY(LIBCOMISO_LIBRARY NAMES CoMISo
     ${PROJECT_SOURCE_DIR}/../../../CoMISo/
     ${PROJECT_SOURCE_DIR}/../../../CoMISo/build/Build/lib/CoMISo/
     /Users/olkido/Documents/igl/MIQ/src/CoMISo/Build
+    /usr/local/lib
+    /usr/local/lib/CoMISo
+    /usr/lib
+    /usr/lib/CoMISo
 )
 #message(STATUS "${LIBCOMISO_LIBRARY}")
 
 if(LIBCOMISO_INCLUDE_DIR AND LIBCOMISO_LIBRARY)
 
-   set(LIBCOMISO_INCLUDE_DIR ${LIBCOMISO_INCLUDE_DIR} ${LIBCOMISO_INCLUDE_DIR}/CoMISo/gmm/include)
+   #message("${LIBCOMISO_INCLUDE_DIR}")
+
+   set(LIBCOMISO_INCLUDE_DIRS
+      ${LIBCOMISO_INCLUDE_DIR}
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Solver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/EigenSolver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/NSolver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Config
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Utils
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/QtWidgets
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/gmm/include
+      )
+
+   #message("${LIBCOMISO_INCLUDE_DIRS}")
+
+   set(LIBCOMISO_INCLUDE_DIR ${LIBCOMISO_INCLUDE_DIR})
 
    add_definitions(-DINCLUDE_TEMPLATES)
    message(STATUS "Found LIBCOMISO: ${LIBCOMISO_INCLUDE_DIR} ${LIBCOMISO_LIBRARY}")