diff --git a/tutorial/101_FileIO/main.cpp b/tutorial/101_FileIO/main.cpp index d969961b0..93988f291 100755 --- a/tutorial/101_FileIO/main.cpp +++ b/tutorial/101_FileIO/main.cpp @@ -9,7 +9,7 @@ Eigen::MatrixXi F; int main(int argc, char *argv[]) { // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/cube.off", V, F); + igl::readOFF(TUTORIAL_SHARED_PATH "/cube.off", V, F); // Print the vertices and faces matrices std::cout << "Vertices: " << std::endl << V << std::endl; diff --git a/tutorial/102_DrawMesh/main.cpp b/tutorial/102_DrawMesh/main.cpp index c224fd33a..fe5355e8d 100755 --- a/tutorial/102_DrawMesh/main.cpp +++ b/tutorial/102_DrawMesh/main.cpp @@ -8,7 +8,7 @@ Eigen::MatrixXi F; int main(int argc, char *argv[]) { // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/bunny.off", V, F); + igl::readOFF(TUTORIAL_SHARED_PATH "/bunny.off", V, F); // Plot the mesh igl::viewer::Viewer viewer; diff --git a/tutorial/103_Events/main.cpp b/tutorial/103_Events/main.cpp index a84e86b61..fdcf62708 100755 --- a/tutorial/103_Events/main.cpp +++ b/tutorial/103_Events/main.cpp @@ -34,8 +34,8 @@ bool key_down(igl::viewer::Viewer& viewer, unsigned char key, int modifier) int main(int argc, char *argv[]) { // Load two meshes - igl::readOFF(tutorial_shared_path + "/bumpy.off", V1, F1); - igl::readOFF(tutorial_shared_path + "/fertility.off", V2, F2); + igl::readOFF(TUTORIAL_SHARED_PATH "/bumpy.off", V1, F1); + igl::readOFF(TUTORIAL_SHARED_PATH "/fertility.off", V2, F2); std::cout<1) { filename = argv[1]; diff --git a/tutorial/204_Gradient/main.cpp b/tutorial/204_Gradient/main.cpp index c41dd6bab..799260b0c 100755 --- a/tutorial/204_Gradient/main.cpp +++ b/tutorial/204_Gradient/main.cpp @@ -17,11 +17,11 @@ int main(int argc, char *argv[]) MatrixXi F; // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/cheburashka.off", V, F); + igl::readOFF(TUTORIAL_SHARED_PATH "/cheburashka.off", V, F); // Read scalar function values from a file, U: #V by 1 VectorXd U; - igl::readDMAT(tutorial_shared_path + "/cheburashka-scalar.dmat",U); + igl::readDMAT(TUTORIAL_SHARED_PATH "/cheburashka-scalar.dmat",U); // Compute gradient operator: #F*3 by #V SparseMatrix G; diff --git a/tutorial/205_Laplacian/main.cpp b/tutorial/205_Laplacian/main.cpp index d8c387577..a9609387d 100755 --- a/tutorial/205_Laplacian/main.cpp +++ b/tutorial/205_Laplacian/main.cpp @@ -24,7 +24,7 @@ int main(int argc, char *argv[]) using namespace std; // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/cow.off", V, F); + igl::readOFF(TUTORIAL_SHARED_PATH "/cow.off", V, F); // Compute Laplace-Beltrami operator: #V by #V igl::cotmatrix(V,F,L); diff --git a/tutorial/301_Slice/main.cpp b/tutorial/301_Slice/main.cpp index be4883cba..1852504cf 100644 --- a/tutorial/301_Slice/main.cpp +++ b/tutorial/301_Slice/main.cpp @@ -12,7 +12,7 @@ int main(int argc, char *argv[]) using namespace std; MatrixXd V; MatrixXi F; - igl::readOFF(tutorial_shared_path + "/decimated-knight.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/decimated-knight.off",V,F); // 100 random indicies into rows of F VectorXi I; diff --git a/tutorial/302_Sort/main.cpp b/tutorial/302_Sort/main.cpp index 857fc7b4b..04e65c23a 100644 --- a/tutorial/302_Sort/main.cpp +++ b/tutorial/302_Sort/main.cpp @@ -14,7 +14,7 @@ int main(int argc, char *argv[]) using namespace std; MatrixXd V; MatrixXi F; - igl::readOFF(tutorial_shared_path + "/decimated-knight.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/decimated-knight.off",V,F); // Sort barycenters lexicographically MatrixXd BC,sorted_BC; diff --git a/tutorial/303_LaplaceEquation/main.cpp b/tutorial/303_LaplaceEquation/main.cpp index 4942b294d..d219704de 100644 --- a/tutorial/303_LaplaceEquation/main.cpp +++ b/tutorial/303_LaplaceEquation/main.cpp @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) using namespace std; MatrixXd V; MatrixXi F; - igl::readOFF(tutorial_shared_path + "/camelhead.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/camelhead.off",V,F); // Find boundary edges MatrixXi E; igl::boundary_facets(F,E); diff --git a/tutorial/304_LinearEqualityConstraints/main.cpp b/tutorial/304_LinearEqualityConstraints/main.cpp index 2007aebbe..8fcb84922 100644 --- a/tutorial/304_LinearEqualityConstraints/main.cpp +++ b/tutorial/304_LinearEqualityConstraints/main.cpp @@ -16,7 +16,7 @@ int main(int argc, char *argv[]) using namespace std; MatrixXd V; MatrixXi F; - igl::readOFF(tutorial_shared_path + "/cheburashka.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/cheburashka.off",V,F); // Two fixed points VectorXi b(2,1); diff --git a/tutorial/305_QuadraticProgramming/main.cpp b/tutorial/305_QuadraticProgramming/main.cpp index 867ca0e25..878993f38 100644 --- a/tutorial/305_QuadraticProgramming/main.cpp +++ b/tutorial/305_QuadraticProgramming/main.cpp @@ -53,7 +53,7 @@ int main(int argc, char *argv[]) using namespace std; MatrixXd V; MatrixXi F; - igl::readOFF(tutorial_shared_path + "/cheburashka.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/cheburashka.off",V,F); // Plot the mesh igl::viewer::Viewer viewer; diff --git a/tutorial/306_EigenDecomposition/main.cpp b/tutorial/306_EigenDecomposition/main.cpp index 220a25190..fd17a3859 100644 --- a/tutorial/306_EigenDecomposition/main.cpp +++ b/tutorial/306_EigenDecomposition/main.cpp @@ -20,7 +20,7 @@ int main(int argc, char * argv[]) using namespace std; using namespace igl; VectorXd D; - if(!read_triangle_mesh(tutorial_shared_path + "/beetle.off",V,F)) + if(!read_triangle_mesh(TUTORIAL_SHARED_PATH "/beetle.off",V,F)) { cout<<"failed to load mesh"<= 0 (vertex i in handle j) VectorXi S; - igl::readDMAT(tutorial_shared_path + "/decimated-max-selection.dmat",S); + igl::readDMAT(TUTORIAL_SHARED_PATH "/decimated-max-selection.dmat",S); igl::colon(0,V.rows()-1,b); b.conservativeResize(stable_partition( b.data(), b.data()+b.size(), [&S](int i)->bool{return S(i)>=0;})-b.data()); diff --git a/tutorial/402_PolyharmonicDeformation/main.cpp b/tutorial/402_PolyharmonicDeformation/main.cpp index 198dddab0..af4121e56 100755 --- a/tutorial/402_PolyharmonicDeformation/main.cpp +++ b/tutorial/402_PolyharmonicDeformation/main.cpp @@ -60,7 +60,7 @@ int main(int argc, char *argv[]) { using namespace Eigen; using namespace std; - igl::readOBJ(tutorial_shared_path + "/bump-domain.obj",V,F); + igl::readOBJ(TUTORIAL_SHARED_PATH "/bump-domain.obj",V,F); U=V; // Find boundary vertices outside annulus typedef Matrix VectorXb; diff --git a/tutorial/403_BoundedBiharmonicWeights/main.cpp b/tutorial/403_BoundedBiharmonicWeights/main.cpp index d218b8198..f7bdc4e86 100755 --- a/tutorial/403_BoundedBiharmonicWeights/main.cpp +++ b/tutorial/403_BoundedBiharmonicWeights/main.cpp @@ -120,15 +120,15 @@ int main(int argc, char *argv[]) { using namespace Eigen; using namespace std; - igl::readMESH(tutorial_shared_path + "/hand.mesh",V,T,F); + igl::readMESH(TUTORIAL_SHARED_PATH "/hand.mesh",V,T,F); U=V; - igl::readTGF(tutorial_shared_path + "/hand.tgf",C,BE); + igl::readTGF(TUTORIAL_SHARED_PATH "/hand.tgf",C,BE); // retrieve parents for forward kinematics igl::directed_edge_parents(BE,P); // Read pose as matrix of quaternions per row MatrixXd Q; - igl::readDMAT(tutorial_shared_path + "/hand-pose.dmat",Q); + igl::readDMAT(TUTORIAL_SHARED_PATH "/hand-pose.dmat",Q); igl::column_to_quats(Q,pose); assert(pose.size() == BE.rows()); diff --git a/tutorial/404_DualQuaternionSkinning/main.cpp b/tutorial/404_DualQuaternionSkinning/main.cpp index e36054cf7..0d348345d 100755 --- a/tutorial/404_DualQuaternionSkinning/main.cpp +++ b/tutorial/404_DualQuaternionSkinning/main.cpp @@ -112,9 +112,9 @@ int main(int argc, char *argv[]) { using namespace Eigen; using namespace std; - igl::readOBJ(tutorial_shared_path + "/arm.obj",V,F); + igl::readOBJ(TUTORIAL_SHARED_PATH "/arm.obj",V,F); U=V; - igl::readTGF(tutorial_shared_path + "/arm.tgf",C,BE); + igl::readTGF(TUTORIAL_SHARED_PATH "/arm.tgf",C,BE); // retrieve parents for forward kinematics igl::directed_edge_parents(BE,P); RotationList rest_pose; @@ -126,7 +126,7 @@ int main(int argc, char *argv[]) const Quaterniond bend(AngleAxisd(-igl::PI*0.7,Vector3d(0,0,1))); poses[3][2] = rest_pose[2]*bend*rest_pose[2].conjugate(); - igl::readDMAT(tutorial_shared_path + "/arm-weights.dmat",W); + igl::readDMAT(TUTORIAL_SHARED_PATH "/arm-weights.dmat",W); igl::lbs_matrix(V,W,M); // Plot the mesh with pseudocolors diff --git a/tutorial/405_AsRigidAsPossible/main.cpp b/tutorial/405_AsRigidAsPossible/main.cpp index 10e03c1c6..73ffccadc 100755 --- a/tutorial/405_AsRigidAsPossible/main.cpp +++ b/tutorial/405_AsRigidAsPossible/main.cpp @@ -92,9 +92,9 @@ int main(int argc, char *argv[]) { using namespace Eigen; using namespace std; - igl::readOFF(tutorial_shared_path + "/decimated-knight.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/decimated-knight.off",V,F); U=V; - igl::readDMAT(tutorial_shared_path + "/decimated-knight-selection.dmat",S); + igl::readDMAT(TUTORIAL_SHARED_PATH "/decimated-knight-selection.dmat",S); // vertices in selection igl::colon(0,V.rows()-1,b); diff --git a/tutorial/406_FastAutomaticSkinningTransformations/main.cpp b/tutorial/406_FastAutomaticSkinningTransformations/main.cpp index 22abfb59c..bc948120e 100755 --- a/tutorial/406_FastAutomaticSkinningTransformations/main.cpp +++ b/tutorial/406_FastAutomaticSkinningTransformations/main.cpp @@ -144,10 +144,10 @@ int main(int argc, char *argv[]) { using namespace Eigen; using namespace std; - igl::readOBJ(tutorial_shared_path + "/armadillo.obj",V,F); + igl::readOBJ(TUTORIAL_SHARED_PATH "/armadillo.obj",V,F); U=V; MatrixXd W; - igl::readDMAT(tutorial_shared_path + "/armadillo-weights.dmat",W); + igl::readDMAT(TUTORIAL_SHARED_PATH "/armadillo-weights.dmat",W); igl::lbs_matrix_column(V,W,M); // Cluster according to weights diff --git a/tutorial/407_BiharmonicCoordinates/main.cpp b/tutorial/407_BiharmonicCoordinates/main.cpp index d90d80b2b..90cdb7487 100755 --- a/tutorial/407_BiharmonicCoordinates/main.cpp +++ b/tutorial/407_BiharmonicCoordinates/main.cpp @@ -32,11 +32,11 @@ int main(int argc, char * argv[]) using namespace Eigen; using namespace std; using namespace igl; - if(!readMESH(tutorial_shared_path + "/octopus-low.mesh",low.V,low.T,low.F)) + if(!readMESH(TUTORIAL_SHARED_PATH "/octopus-low.mesh",low.V,low.T,low.F)) { cout<<"failed to load mesh"<(); bc1 = temp.block(0,1,temp.rows(),3); diff --git a/tutorial/507_PolyVectorField/main.cpp b/tutorial/507_PolyVectorField/main.cpp index 6bd3f4617..8f11a2592 100755 --- a/tutorial/507_PolyVectorField/main.cpp +++ b/tutorial/507_PolyVectorField/main.cpp @@ -129,8 +129,8 @@ int main(int argc, char *argv[]) using namespace Eigen; using namespace std; // Load a mesh in OBJ format - igl::readOBJ(tutorial_shared_path + "/lilium.obj", V, F); - readSamples(tutorial_shared_path + "/lilium.samples.0.2", samples); + igl::readOBJ(TUTORIAL_SHARED_PATH "/lilium.obj", V, F); + readSamples(TUTORIAL_SHARED_PATH "/lilium.samples.0.2", samples); // Compute local basis for faces igl::local_basis(V,F,B1,B2,B3); diff --git a/tutorial/508_ConjugateField/main.cpp b/tutorial/508_ConjugateField/main.cpp index 80e510a9e..1d0f5951a 100644 --- a/tutorial/508_ConjugateField/main.cpp +++ b/tutorial/508_ConjugateField/main.cpp @@ -124,7 +124,7 @@ int main(int argc, char *argv[]) using namespace std; // Load a mesh in OBJ format - igl::readOBJ(tutorial_shared_path + "/inspired_mesh.obj", V, F); + igl::readOBJ(TUTORIAL_SHARED_PATH "/inspired_mesh.obj", V, F); // Compute face barycenters igl::barycenter(V, F, B); @@ -136,8 +136,8 @@ int main(int argc, char *argv[]) global_scale = .4*igl::avg_edge_length(V, F); // Load constraints - igl::readDMAT(tutorial_shared_path + "/inspired_mesh_b.dmat",b); - igl::readDMAT(tutorial_shared_path + "/inspired_mesh_bc.dmat",bc); + igl::readDMAT(TUTORIAL_SHARED_PATH "/inspired_mesh_b.dmat",b); + igl::readDMAT(TUTORIAL_SHARED_PATH "/inspired_mesh_bc.dmat",bc); // Interpolate to get a smooth field igl::n_polyvector(V, F, b, bc, smooth_pvf); diff --git a/tutorial/509_Planarization/main.cpp b/tutorial/509_Planarization/main.cpp index a93bdb57a..6cc788618 100755 --- a/tutorial/509_Planarization/main.cpp +++ b/tutorial/509_Planarization/main.cpp @@ -86,7 +86,7 @@ int main(int argc, char *argv[]) using namespace std; // Load a quad mesh generated by a conjugate field - igl::readOFF(tutorial_shared_path + "/inspired_mesh_quads_Conjugate.off", VQC, FQC); + igl::readOFF(TUTORIAL_SHARED_PATH "/inspired_mesh_quads_Conjugate.off", VQC, FQC); // Convert it in a triangle mesh FQCtri.resize(2*FQC.rows(), 3); diff --git a/tutorial/510_Integrable/main.cpp b/tutorial/510_Integrable/main.cpp index 47eb9e0bc..b5abf6893 100644 --- a/tutorial/510_Integrable/main.cpp +++ b/tutorial/510_Integrable/main.cpp @@ -627,7 +627,7 @@ int main(int argc, char *argv[]) { // Load a mesh - igl::readOBJ(tutorial_shared_path + "/inspired_mesh.obj", V, F); + igl::readOBJ(TUTORIAL_SHARED_PATH "/inspired_mesh.obj", V, F); printf("--Initialization--\n"); V_border = igl::is_border_vertex(V,F); diff --git a/tutorial/601_Serialization/main.cpp b/tutorial/601_Serialization/main.cpp index ab19855ef..f923cd7c6 100755 --- a/tutorial/601_Serialization/main.cpp +++ b/tutorial/601_Serialization/main.cpp @@ -64,7 +64,7 @@ int main(int argc, char *argv[]) State stateIn, stateOut; // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/2triangles.off",stateIn.V,stateIn.F); + igl::readOFF(TUTORIAL_SHARED_PATH "/2triangles.off",stateIn.V,stateIn.F); // Save some integers in a vector stateIn.ids.push_back(6); diff --git a/tutorial/602_Matlab/main.cpp b/tutorial/602_Matlab/main.cpp index 8be335bcc..202242803 100755 --- a/tutorial/602_Matlab/main.cpp +++ b/tutorial/602_Matlab/main.cpp @@ -47,7 +47,7 @@ bool key_down(igl::viewer::Viewer& viewer, unsigned char key, int modifier) int main(int argc, char *argv[]) { // Load a mesh in OFF format - igl::readOFF(tutorial_shared_path + "/3holes.off", V, F); + igl::readOFF(TUTORIAL_SHARED_PATH "/3holes.off", V, F); // Launch MATLAB igl::matlab::mlinit(&engine); diff --git a/tutorial/605_Tetgen/main.cpp b/tutorial/605_Tetgen/main.cpp index e66935220..52527172c 100755 --- a/tutorial/605_Tetgen/main.cpp +++ b/tutorial/605_Tetgen/main.cpp @@ -64,7 +64,7 @@ int main(int argc, char *argv[]) using namespace std; // Load a surface mesh - igl::readOFF(tutorial_shared_path + "/fertility.off",V,F); + igl::readOFF(TUTORIAL_SHARED_PATH "/fertility.off",V,F); // Tetrahedralize the interior igl::tetgen::tetrahedralize(V,F,"pq1.414Y", TV,TT,TF); diff --git a/tutorial/606_AmbientOcclusion/main.cpp b/tutorial/606_AmbientOcclusion/main.cpp index c559b4b90..17a997f74 100755 --- a/tutorial/606_AmbientOcclusion/main.cpp +++ b/tutorial/606_AmbientOcclusion/main.cpp @@ -59,7 +59,7 @@ int main(int argc, char *argv[]) "Press , to turn down lighting"< irregular = igl::is_irregular_vertex(V,F); diff --git a/tutorial/702_WindingNumber/main.cpp b/tutorial/702_WindingNumber/main.cpp index da90ed26f..d1ea824b6 100755 --- a/tutorial/702_WindingNumber/main.cpp +++ b/tutorial/702_WindingNumber/main.cpp @@ -103,7 +103,7 @@ int main(int argc, char *argv[]) // Load mesh: (V,T) tet-mesh of convex hull, F contains facets of input // surface mesh _after_ self-intersection resolution - igl::readMESH(tutorial_shared_path + "/big-sigcat.mesh",V,T,F); + igl::readMESH(TUTORIAL_SHARED_PATH "/big-sigcat.mesh",V,T,F); // Compute barycenters of all tets igl::barycenter(V,T,BC); diff --git a/tutorial/703_Decimation/main.cpp b/tutorial/703_Decimation/main.cpp index cb817901a..14a74d6fc 100755 --- a/tutorial/703_Decimation/main.cpp +++ b/tutorial/703_Decimation/main.cpp @@ -18,7 +18,7 @@ int main(int argc, char * argv[]) cout<<" [space] toggle animation."<=2) { filename = argv[1]; diff --git a/tutorial/704_SignedDistance/main.cpp b/tutorial/704_SignedDistance/main.cpp index 407fff2e6..2d0bf2273 100755 --- a/tutorial/704_SignedDistance/main.cpp +++ b/tutorial/704_SignedDistance/main.cpp @@ -129,7 +129,7 @@ int main(int argc, char *argv[]) // Load mesh: (V,T) tet-mesh of convex hull, F contains original surface // triangles - igl::readMESH(tutorial_shared_path + "/bunny.mesh",V,T,F); + igl::readMESH(TUTORIAL_SHARED_PATH "/bunny.mesh",V,T,F); // Encapsulated call to point_mesh_squared_distance to determine bounds diff --git a/tutorial/705_MarchingCubes/main.cpp b/tutorial/705_MarchingCubes/main.cpp index 3b2452287..e47c73e14 100755 --- a/tutorial/705_MarchingCubes/main.cpp +++ b/tutorial/705_MarchingCubes/main.cpp @@ -16,7 +16,7 @@ int main(int argc, char * argv[]) MatrixXd V; // Read in inputs as double precision floating point meshes read_triangle_mesh( - tutorial_shared_path + "/armadillo.obj",V,F); + TUTORIAL_SHARED_PATH "/armadillo.obj",V,F); // number of vertices on the largest side const int s = 50; const RowVector3d Vmin = V.colwise().minCoeff(); diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt index 0944a3daa..b1f8e6eb2 100644 --- a/tutorial/CMakeLists.txt +++ b/tutorial/CMakeLists.txt @@ -136,7 +136,7 @@ endif(UNIX AND NOT APPLE) # Store location of tutorial/shared directory set(TUTORIAL_SHARED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/shared CACHE PATH "location of shared tutorial resources") -add_definitions("-DTUTORIAL_SHARED_PATH=${TUTORIAL_SHARED_PATH}") +add_definitions("-DTUTORIAL_SHARED_PATH=\"${TUTORIAL_SHARED_PATH}\"") # Chapter 1 add_subdirectory("101_FileIO") diff --git a/tutorial/tutorial.html.REMOVED.git-id b/tutorial/tutorial.html.REMOVED.git-id index 909237a87..39c75483c 100644 --- a/tutorial/tutorial.html.REMOVED.git-id +++ b/tutorial/tutorial.html.REMOVED.git-id @@ -1 +1 @@ -c858c1ee55464a76a0ef503f2b5ad2f9b56a6ae0 \ No newline at end of file +5d18dcc0e2feb40028d7020f495e49d98bc1c2ad \ No newline at end of file diff --git a/tutorial/tutorial.md.REMOVED.git-id b/tutorial/tutorial.md.REMOVED.git-id index b2fe960e9..b7efa3c7e 100644 --- a/tutorial/tutorial.md.REMOVED.git-id +++ b/tutorial/tutorial.md.REMOVED.git-id @@ -1 +1 @@ -eca42bfd1c4e3c4113cb4cb5757d2a23983afd3d \ No newline at end of file +c0ffc6e9eb789fa6a16600e75558bb32c021af94 \ No newline at end of file diff --git a/tutorial/tutorial_shared_path.h b/tutorial/tutorial_shared_path.h index c4f4315be..8040d0811 100644 --- a/tutorial/tutorial_shared_path.h +++ b/tutorial/tutorial_shared_path.h @@ -1,17 +1,8 @@ #ifndef tutorial_shared_path_h_included #define tutorial_shared_path_h_included -// convert the argument to a string constant -#define STRINGIZE2(s) #s -// need an extra level of macro indirection for preprocessor token stringification to work -#define STRINGIZE(s) STRINGIZE2(s) - -#include - #ifndef TUTORIAL_SHARED_PATH -const std::string tutorial_shared_path("../shared"); -#else -const std::string tutorial_shared_path( STRINGIZE(TUTORIAL_SHARED_PATH) ); +#define TUTORIAL_SHARED_PATH "../shared" #endif #endif