Browse Source

updated tutorial 401 402 501 503 for new interface of harmonic mapping function

Former-commit-id: fc829fe1520477241fa3c2b7b128f20e4cbd8bf0
hankshen 9 năm trước cách đây
mục cha
commit
dcd1eb9feb

+ 3 - 3
tutorial/401_BiharmonicDeformation/main.cpp

@@ -30,11 +30,11 @@ bool pre_draw(igl::viewer::Viewer & viewer)
   {
     MatrixXd D;
     MatrixXd D_bc = U_bc_anim - V_bc;
-    igl::harmonic(V,F,b,D_bc,2,D);
+    igl::harmonic(V,F,b,D_bc,2,true,D);
     U = V+D;
   }else
   {
-    igl::harmonic(V,F,b,U_bc_anim,2,U);
+    igl::harmonic(V,F,b,U_bc_anim,2,true,U);
   }
   viewer.data.set_vertices(U);
   viewer.data.compute_normals();
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
   VectorXi S;
   igl::readDMAT(TUTORIAL_SHARED_PATH "/decimated-max-selection.dmat",S);
   igl::colon<int>(0,V.rows()-1,b);
-  b.conservativeResize(stable_partition( b.data(), b.data()+b.size(), 
+  b.conservativeResize(stable_partition( b.data(), b.data()+b.size(),
    [&S](int i)->bool{return S(i)>=0;})-b.data());
 
   // Boundary conditions directly on deformed positions

+ 2 - 2
tutorial/402_PolyharmonicDeformation/main.cpp

@@ -21,7 +21,7 @@ bool pre_draw(igl::viewer::Viewer & viewer)
   using namespace Eigen;
   if(resolve)
   {
-    igl::harmonic(V,F,b,bc,k,Z);
+    igl::harmonic(V,F,b,bc,k,true,Z);
     resolve = false;
   }
   U.col(2) = z_max*Z;
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
   VectorXb is_inner = (V.rowwise().norm().array()-0.15)<1e-15;
   VectorXb in_b = is_outer.array() || is_inner.array();
   igl::colon<int>(0,V.rows()-1,b);
-  b.conservativeResize(stable_partition( b.data(), b.data()+b.size(), 
+  b.conservativeResize(stable_partition( b.data(), b.data()+b.size(),
    [&in_b](int i)->bool{return in_b(i);})-b.data());
   bc.resize(b.size(),1);
   for(int bi = 0;bi<b.size();bi++)

+ 2 - 2
tutorial/501_HarmonicParam/main.cpp

@@ -44,8 +44,8 @@ int main(int argc, char *argv[])
   igl::map_vertices_to_circle(V,bnd,bnd_uv);
 
   // Harmonic parametrization for the internal vertices
-  igl::harmonic(V,F,bnd,bnd_uv,1,V_uv);
-  
+  igl::harmonic(V,F,bnd,bnd_uv,1,true,V_uv);
+
   // Scale UV to make the texture more clear
   V_uv *= 5;
 

+ 1 - 1
tutorial/503_ARAPParam/main.cpp

@@ -52,7 +52,7 @@ int main(int argc, char *argv[])
   Eigen::MatrixXd bnd_uv;
   igl::map_vertices_to_circle(V,bnd,bnd_uv);
 
-  igl::harmonic(V,F,bnd,bnd_uv,1,initial_guess);
+  igl::harmonic(V,F,bnd,bnd_uv,1,true,initial_guess);
 
   // Add dynamic regularization to avoid to specify boundary conditions
   igl::ARAPData arap_data;