selected_data -> data to make the transition of old code easier. Old code can be simply converted by adding () after data
Former-commit-id: 02c8268a61
This commit is contained in:
@@ -76,14 +76,14 @@ bool key_down(igl::opengl::glfw::Viewer& viewer, unsigned char key, int modifier
|
||||
if (key <'1' || key >'6')
|
||||
return false;
|
||||
|
||||
viewer.selected_data().clear();
|
||||
viewer.selected_data().show_lines = false;
|
||||
viewer.selected_data().show_texture = false;
|
||||
viewer.data().clear();
|
||||
viewer.data().show_lines = false;
|
||||
viewer.data().show_texture = false;
|
||||
|
||||
if (key == '1')
|
||||
{
|
||||
// Frame field constraints
|
||||
viewer.selected_data().set_mesh(V, F);
|
||||
viewer.data().set_mesh(V, F);
|
||||
|
||||
MatrixXd F1_t = MatrixXd::Zero(FF1.rows(),FF1.cols());
|
||||
MatrixXd F2_t = MatrixXd::Zero(FF2.rows(),FF2.cols());
|
||||
@@ -96,7 +96,7 @@ bool key_down(igl::opengl::glfw::Viewer& viewer, unsigned char key, int modifier
|
||||
F2_t.row(b(i)) = bc2.row(i);
|
||||
}
|
||||
|
||||
viewer.selected_data().set_colors(C);
|
||||
viewer.data().set_colors(C);
|
||||
|
||||
MatrixXd C1,C2;
|
||||
VectorXd K1 = F1_t.rowwise().norm();
|
||||
@@ -104,72 +104,72 @@ bool key_down(igl::opengl::glfw::Viewer& viewer, unsigned char key, int modifier
|
||||
igl::jet(K1,true,C1);
|
||||
igl::jet(K2,true,C2);
|
||||
|
||||
viewer.selected_data().add_edges(B - global_scale*F1_t, B + global_scale*F1_t ,C1);
|
||||
viewer.selected_data().add_edges(B - global_scale*F2_t, B + global_scale*F2_t ,C2);
|
||||
viewer.data().add_edges(B - global_scale*F1_t, B + global_scale*F1_t ,C1);
|
||||
viewer.data().add_edges(B - global_scale*F2_t, B + global_scale*F2_t ,C2);
|
||||
}
|
||||
|
||||
if (key == '2')
|
||||
{
|
||||
// Frame field
|
||||
viewer.selected_data().set_mesh(V, F);
|
||||
viewer.data().set_mesh(V, F);
|
||||
MatrixXd C1,C2;
|
||||
VectorXd K1 = FF1.rowwise().norm();
|
||||
VectorXd K2 = FF2.rowwise().norm();
|
||||
igl::jet(K1,true,C1);
|
||||
igl::jet(K2,true,C2);
|
||||
|
||||
viewer.selected_data().add_edges(B - global_scale*FF1, B + global_scale*FF1 ,C1);
|
||||
viewer.selected_data().add_edges(B - global_scale*FF2, B + global_scale*FF2 ,C2);
|
||||
viewer.data().add_edges(B - global_scale*FF1, B + global_scale*FF1 ,C1);
|
||||
viewer.data().add_edges(B - global_scale*FF2, B + global_scale*FF2 ,C2);
|
||||
|
||||
// Highlight in red the constrained faces
|
||||
MatrixXd C = MatrixXd::Constant(F.rows(),3,1);
|
||||
for (unsigned i=0; i<b.size();++i)
|
||||
C.row(b(i)) << 1, 0, 0;
|
||||
viewer.selected_data().set_colors(C);
|
||||
viewer.data().set_colors(C);
|
||||
|
||||
}
|
||||
|
||||
if (key == '3')
|
||||
{
|
||||
// Deformed with frame field
|
||||
viewer.selected_data().set_mesh(V_deformed, F);
|
||||
viewer.selected_data().add_edges(B_deformed - global_scale*FF1_deformed, B_deformed + global_scale*FF1_deformed ,Eigen::RowVector3d(1,0,0));
|
||||
viewer.selected_data().add_edges(B_deformed - global_scale*FF2_deformed, B_deformed + global_scale*FF2_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.selected_data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.data().set_mesh(V_deformed, F);
|
||||
viewer.data().add_edges(B_deformed - global_scale*FF1_deformed, B_deformed + global_scale*FF1_deformed ,Eigen::RowVector3d(1,0,0));
|
||||
viewer.data().add_edges(B_deformed - global_scale*FF2_deformed, B_deformed + global_scale*FF2_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.data().set_colors(RowVector3d(1,1,1));
|
||||
}
|
||||
|
||||
if (key == '4')
|
||||
{
|
||||
// Deformed with cross field
|
||||
viewer.selected_data().set_mesh(V_deformed, F);
|
||||
viewer.selected_data().add_edges(B_deformed - global_scale*X1_deformed, B_deformed + global_scale*X1_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.selected_data().add_edges(B_deformed - global_scale*X2_deformed, B_deformed + global_scale*X2_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.selected_data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.data().set_mesh(V_deformed, F);
|
||||
viewer.data().add_edges(B_deformed - global_scale*X1_deformed, B_deformed + global_scale*X1_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.data().add_edges(B_deformed - global_scale*X2_deformed, B_deformed + global_scale*X2_deformed ,Eigen::RowVector3d(0,0,1));
|
||||
viewer.data().set_colors(RowVector3d(1,1,1));
|
||||
}
|
||||
|
||||
if (key == '5')
|
||||
{
|
||||
// Deformed with quad texture
|
||||
viewer.selected_data().set_mesh(V_deformed, F);
|
||||
viewer.selected_data().set_uv(V_uv,F_uv);
|
||||
viewer.selected_data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.selected_data().show_texture = true;
|
||||
viewer.data().set_mesh(V_deformed, F);
|
||||
viewer.data().set_uv(V_uv,F_uv);
|
||||
viewer.data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.data().show_texture = true;
|
||||
}
|
||||
|
||||
if (key == '6')
|
||||
{
|
||||
// Deformed with quad texture
|
||||
viewer.selected_data().set_mesh(V, F);
|
||||
viewer.selected_data().set_uv(V_uv,F_uv);
|
||||
viewer.selected_data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.selected_data().show_texture = true;
|
||||
viewer.data().set_mesh(V, F);
|
||||
viewer.data().set_uv(V_uv,F_uv);
|
||||
viewer.data().set_colors(RowVector3d(1,1,1));
|
||||
viewer.data().show_texture = true;
|
||||
}
|
||||
|
||||
// Replace the standard texture with an integer shift invariant texture
|
||||
Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> texture_R, texture_G, texture_B;
|
||||
line_texture(texture_R, texture_G, texture_B);
|
||||
viewer.selected_data().set_texture(texture_R, texture_B, texture_G);
|
||||
viewer.core.align_camera_center(viewer.selected_data().V,viewer.selected_data().F);
|
||||
viewer.data().set_texture(texture_R, texture_B, texture_G);
|
||||
viewer.core.align_camera_center(viewer.data().V,viewer.data().F);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user