|
@@ -0,0 +1,44 @@
|
|
|
+import igl
|
|
|
+
|
|
|
+V1 = igl.eigen.MatrixXd()
|
|
|
+F1 = igl.eigen.MatrixXi()
|
|
|
+
|
|
|
+V2 = igl.eigen.MatrixXd()
|
|
|
+F2 = igl.eigen.MatrixXi()
|
|
|
+
|
|
|
+def key_down(viewer, key, modifier):
|
|
|
+ print("Key: ",key)
|
|
|
+
|
|
|
+ if key == 1:
|
|
|
+ # Clear should be called before drawing the mesh
|
|
|
+ viewer.data.clear();
|
|
|
+ # Draw_mesh creates or updates the vertices and faces of the displayed mesh.
|
|
|
+ # If a mesh is already displayed, draw_mesh returns an error if the given V and
|
|
|
+ # F have size different than the current ones
|
|
|
+ viewer.data.set_mesh(V1, F1);
|
|
|
+ viewer.core.align_camera_center(V1,F1);
|
|
|
+ elif key == 2:
|
|
|
+ viewer.data.clear();
|
|
|
+ viewer.data.set_mesh(V2, F2);
|
|
|
+ viewer.core.align_camera_center(V2,F2);
|
|
|
+
|
|
|
+ return False;
|
|
|
+
|
|
|
+
|
|
|
+# Load two meshes
|
|
|
+igl.readOFF("../tutorial/shared/bumpy.off", V1, F1);
|
|
|
+igl.readOFF("../tutorial/shared/fertility.off", V2, F2);
|
|
|
+
|
|
|
+print("1 Switch to bump mesh")
|
|
|
+print("2 Switch to fertility mesh")
|
|
|
+
|
|
|
+viewer = igl.viewer.Viewer()
|
|
|
+
|
|
|
+# Register a keyboard callback that allows to switch between
|
|
|
+# the two loaded meshes
|
|
|
+
|
|
|
+viewer.callback_key_down = key_down;
|
|
|
+viewer.data.set_mesh(V1, F1);
|
|
|
+viewer.launch();
|
|
|
+
|
|
|
+}
|