Merge pull request #1227 from BruegelN/python_fix-viewer-core

Python: igl.glfw.Viewer().core => igl.glfw.Viewer().core() with default arg unsigned core_id = 0
This commit is contained in:
Jérémie Dumas
2019-06-14 08:21:34 -04:00
committed by GitHub
19 changed files with 60 additions and 59 deletions
+1
View File
@@ -373,6 +373,7 @@ py::class_<igl::opengl::ViewerCore> viewercore_class(me, "ViewerCore");
.def("data", (igl::opengl::ViewerData & (igl::opengl::glfw::Viewer::*)(int)) &igl::opengl::glfw::Viewer::data, pybind11::return_value_policy::reference, py::arg("mesh_id")=-1)
// .def("data", (const igl::opengl::ViewerData & (igl::opengl::glfw::Viewer::*)(int) const) &igl::opengl::glfw::Viewer::data,pybind11::return_value_policy::reference)
.def("core", (igl::opengl::ViewerCore & (igl::opengl::glfw::Viewer::*)(unsigned)) &igl::opengl::glfw::Viewer::core, pybind11::return_value_policy::reference, py::arg("core_id")=0)
//.def_readwrite("core", &igl::opengl::glfw::Viewer::core)
//.def_readwrite("opengl", &igl::opengl::glfw::Viewer::opengl)
+2 -2
View File
@@ -35,11 +35,11 @@ def key_pressed(viewer, key, modifier):
# # 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)
viewer.core().align_camera_center(V1,F1)
elif key == ord('2'):
viewer.data().clear()
viewer.data().set_mesh(V2, F2)
viewer.core.align_camera_center(V2,F2)
viewer.core().align_camera_center(V2,F2)
return False
+1 -1
View File
@@ -101,7 +101,7 @@ def key_pressed(viewer, key, modifier):
# Send new positions, update normals, recenter
viewer.data().set_vertices(U)
viewer.data().compute_normals()
viewer.core.align_camera_center(U, F)
viewer.core().align_camera_center(U, F)
return True
+5 -5
View File
@@ -35,7 +35,7 @@ b = igl.eigen.MatrixXi()
def pre_draw(viewer):
global bc_frac, bc_dir, deformation_field, V, U, V_bc, U_bc, F, b
# Determine boundary conditions
if (viewer.core.is_animating):
if (viewer.core().is_animating):
bc_frac += bc_dir
bc_dir *= (-1.0 if bc_frac >= 1.0 or bc_frac <= 0.0 else 1.0)
@@ -58,7 +58,7 @@ def key_down(viewer, key, mods):
global bc_frac, bc_dir, deformation_field, V, U, V_bc, U_bc, F, b
if key == ord(' '):
viewer.core.is_animating = not viewer.core.is_animating
viewer.core().is_animating = not viewer.core().is_animating
return True
if key == ord('D') or key == ord('d'):
deformation_field = not deformation_field
@@ -110,13 +110,13 @@ viewer = igl.glfw.Viewer()
viewer.data().set_mesh(U, F)
viewer.data().show_lines = False
viewer.data().set_colors(C)
# viewer.core.trackball_angle = igl.eigen.Quaterniond(sqrt(2.0),0,sqrt(2.0),0)
# viewer.core.trackball_angle.normalize()
# viewer.core().trackball_angle = igl.eigen.Quaterniond(sqrt(2.0),0,sqrt(2.0),0)
# viewer.core().trackball_angle.normalize()
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.animation_max_fps = 30.0
viewer.core().animation_max_fps = 30.0
print("Press [space] to toggle deformation.")
print("Press 'd' to toggle between biharmonic surface or displacements.")
viewer.launch()
@@ -46,7 +46,7 @@ def pre_draw(viewer):
viewer.data().set_vertices(U)
viewer.data().compute_normals()
if viewer.core.is_animating:
if viewer.core().is_animating:
z_max += z_dir
z_dir *= (-1.0 if z_max >= 1.0 or z_max <= 0.0 else 1.0)
@@ -57,7 +57,7 @@ def key_down(viewer, key, mods):
global z_max, z_dir, k, resolve, V, U, Z, F, b, bc
if key == ord(' '):
viewer.core.is_animating = not viewer.core.is_animating
viewer.core().is_animating = not viewer.core().is_animating
elif key == ord('.'):
k = k + 1
k = (4 if k > 4 else k)
@@ -102,12 +102,12 @@ viewer = igl.glfw.Viewer()
viewer.data().set_mesh(U, F)
viewer.data().show_lines = False
viewer.data().set_colors(C)
viewer.core.trackball_angle = igl.eigen.Quaterniond(0.81,-0.58,-0.03,-0.03)
viewer.core.trackball_angle.normalize()
viewer.core().trackball_angle = igl.eigen.Quaterniond(0.81,-0.58,-0.03,-0.03)
viewer.core().trackball_angle.normalize()
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.is_animating = True
viewer.core.animation_max_fps = 30.0
viewer.core().is_animating = True
viewer.core().animation_max_fps = 30.0
print("Press [space] to toggle animation.")
print("Press '.' to increase k.")
print("Press ',' to decrease k.")
@@ -22,7 +22,7 @@ check_dependencies(dependencies)
def pre_draw(viewer):
global pose, anim_t, C, BE, P, U, M, anim_t_dir
if viewer.core.is_animating:
if viewer.core().is_animating:
# Interpolate pose and identity
anim_pose = igl.RotationList(len(pose))
@@ -69,7 +69,7 @@ def key_down(viewer, key, mods):
selected = min(max(selected, 0), W.cols()-1)
set_color(viewer)
elif key == ord(' '):
viewer.core.is_animating = not viewer.core.is_animating
viewer.core().is_animating = not viewer.core().is_animating
return True
@@ -146,9 +146,9 @@ if __name__ == "__main__":
viewer.data().show_lines = False
viewer.data().show_overlay_depth = False
viewer.data().line_width = 1
viewer.core.trackball_angle.normalize()
viewer.core().trackball_angle.normalize()
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.is_animating = False
viewer.core.animation_max_fps = 30.0
viewer.core().is_animating = False
viewer.core().animation_max_fps = 30.0
viewer.launch()
@@ -62,7 +62,7 @@ def pre_draw(viewer):
viewer.data().set_vertices(U)
viewer.data().set_edges(CT, BET, sea_green)
viewer.data().compute_normals()
if viewer.core.is_animating:
if viewer.core().is_animating:
anim_t += anim_t_dir
else:
recompute = False
@@ -75,7 +75,7 @@ def key_down(viewer, key, mods):
recompute = True
if key == ord('D') or key == ord('d'):
use_dqs = not use_dqs
viewer.core.is_animating = False
viewer.core().is_animating = False
animation = False
if use_dqs:
print("Switched to Dual Quaternion Skinning")
@@ -83,10 +83,10 @@ def key_down(viewer, key, mods):
print("Switched to Linear Blend Skinning")
elif key == ord(' '):
if animation:
viewer.core.is_animating = False
viewer.core().is_animating = False
animation = False
else:
viewer.core.is_animating = True
viewer.core().is_animating = True
animation = True
return False
@@ -111,7 +111,7 @@ if __name__ == "__main__":
anim_t_dir = 0.015
use_dqs = False
recompute = True
animation = False # Flag needed as there is some synchronization problem with viewer.core.is_animating
animation = False # Flag needed as there is some synchronization problem with viewer.core().is_animating
poses = [[]]
@@ -140,10 +140,10 @@ if __name__ == "__main__":
viewer.data().show_lines = False
viewer.data().show_overlay_depth = False
viewer.data().line_width = 1
viewer.core.trackball_angle.normalize()
viewer.core().trackball_angle.normalize()
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.is_animating = False
viewer.core.camera_zoom = 2.5
viewer.core.animation_max_fps = 30.0
viewer.core().is_animating = False
viewer.core().camera_zoom = 2.5
viewer.core().animation_max_fps = 30.0
viewer.launch()
+4 -4
View File
@@ -60,7 +60,7 @@ def pre_draw(viewer):
viewer.data().set_vertices(U)
viewer.data().compute_normals()
if viewer.core.is_animating:
if viewer.core().is_animating:
anim_t += anim_t_dir
return False
@@ -68,7 +68,7 @@ def pre_draw(viewer):
def key_down(viewer, key, mods):
if key == ord(' '):
viewer.core.is_animating = not viewer.core.is_animating
viewer.core().is_animating = not viewer.core().is_animating
return True
return False
@@ -105,7 +105,7 @@ viewer.data().set_mesh(U, F)
viewer.data().set_colors(C)
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.is_animating = True
viewer.core.animation_max_fps = 30.
viewer.core().is_animating = True
viewer.core().animation_max_fps = 30.
print("Press [space] to toggle animation")
viewer.launch()
+2 -2
View File
@@ -28,11 +28,11 @@ def key_down(viewer, key, modifier):
if key == ord('1'):
# Plot the 3D mesh
viewer.data().set_mesh(V, F)
viewer.core.align_camera_center(V, F)
viewer.core().align_camera_center(V, F)
elif key == ord('2'):
# Plot the mesh in 2D using the UV coordinates as vertex coordinates
viewer.data().set_mesh(V_uv, F)
viewer.core.align_camera_center(V_uv, F)
viewer.core().align_camera_center(V_uv, F)
viewer.data().compute_normals()
return False
+2 -2
View File
@@ -28,11 +28,11 @@ def key_down(viewer, key, modifier):
if key == ord('1'):
# Plot the 3D mesh
viewer.data().set_mesh(V, F)
viewer.core.align_camera_center(V, F)
viewer.core().align_camera_center(V, F)
elif key == ord('2'):
# Plot the mesh in 2D using the UV coordinates as vertex coordinates
viewer.data().set_mesh(V_uv, F)
viewer.core.align_camera_center(V_uv, F)
viewer.core().align_camera_center(V_uv, F)
viewer.data().compute_normals()
return False
+2 -2
View File
@@ -38,10 +38,10 @@ def key_down(viewer, key, modifier):
if show_uv:
viewer.data().set_mesh(V_uv, F)
viewer.core.align_camera_center(V_uv, F)
viewer.core().align_camera_center(V_uv, F)
else:
viewer.data().set_mesh(V, F)
viewer.core.align_camera_center(V, F)
viewer.core().align_camera_center(V, F)
viewer.data().compute_normals()
return False
+1 -1
View File
@@ -205,7 +205,7 @@ def key_down(viewer, key, modifier):
viewer.data().set_texture(texture_R, texture_B, texture_G)
viewer.core.align_camera_center(viewer.data().V, viewer.data().F)
viewer.core().align_camera_center(viewer.data().V, viewer.data().F)
return False
+4 -4
View File
@@ -43,13 +43,13 @@ def key_down(viewer, key, modifier):
C.setRow(i, C.row(i) * AO[i, 0])
viewer.data().set_colors(C)
elif key == ord('.'):
viewer.core.lighting_factor += 0.1
viewer.core().lighting_factor += 0.1
elif key == ord(','):
viewer.core.lighting_factor -= 0.1
viewer.core().lighting_factor -= 0.1
else:
return False
viewer.core.lighting_factor = min(max(viewer.core.lighting_factor, 0.0), 1.0)
viewer.core().lighting_factor = min(max(viewer.core().lighting_factor, 0.0), 1.0)
return True
@@ -70,5 +70,5 @@ viewer.data().set_mesh(V, F)
key_down(viewer, ord('2'), 0)
viewer.callback_key_down = key_down
viewer.data().show_lines = False
viewer.core.lighting_factor = 0.0
viewer.core().lighting_factor = 0.0
viewer.launch()
+2 -2
View File
@@ -29,7 +29,7 @@ def key_down(viewer, key, modifier):
A = igl.eigen.MatrixXuc(1280, 800)
# Draw the scene in the buffers
viewer.core.draw_buffer(viewer.data(), False, R, G, B, A)
viewer.core().draw_buffer(viewer.data(), False, R, G, B, A)
# Save it to a PNG
igl.png.writePNG(R, G, B, A, temp_png)
@@ -56,7 +56,7 @@ def key_down(viewer, key, modifier):
viewer.data().clear()
viewer.data().set_mesh(V, F)
viewer.data().set_uv(UV)
viewer.core.align_camera_center(V)
viewer.core().align_camera_center(V)
viewer.data().show_texture = True
# Use the image as a texture
+3 -3
View File
@@ -50,9 +50,9 @@ def key_down(viewer, key, modifier):
elif key == ord(','):
boolean_type = boolean_types[(boolean_types.index(boolean_type) + len(boolean_types) - 1) % len(boolean_types)]
elif key == ord('['):
viewer.core.camera_dnear -= 0.1
viewer.core().camera_dnear -= 0.1
elif key == ord(']'):
viewer.core.camera_dnear += 0.1
viewer.core().camera_dnear += 0.1
else:
return False
@@ -88,5 +88,5 @@ if __name__ == "__main__":
viewer.data().show_lines = True
viewer.callback_key_down = key_down
viewer.core.camera_dnear = 3.9
viewer.core().camera_dnear = 3.9
viewer.launch()
+1 -1
View File
@@ -97,7 +97,7 @@ def update_visualization(viewer):
viewer.data().clear()
viewer.data().set_mesh(V_vis, F_vis)
viewer.data().set_colors(C_vis)
viewer.core.lighting_factor = overlay
viewer.core().lighting_factor = overlay
def key_down(viewer, key, modifier):
+2 -2
View File
@@ -33,7 +33,7 @@ def key_down(viewer, key, modifier):
else:
viewer.data().set_mesh(V, F)
viewer.core.is_animating = not show_swept_volume
viewer.core().is_animating = not show_swept_volume
viewer.data().set_face_based(True)
return True
@@ -86,7 +86,7 @@ if __name__ == "__main__":
viewer = igl.glfw.Viewer()
viewer.data().set_mesh(V, F)
viewer.data().set_face_based(True)
viewer.core.is_animating = not show_swept_volume
viewer.core().is_animating = not show_swept_volume
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.launch()
+3 -3
View File
@@ -25,9 +25,9 @@ def mouse_down(viewer, a, b):
# Cast a ray in the view direction starting from the mouse position
fid = igl.eigen.MatrixXi(np.array([-1]))
coord = igl.eigen.MatrixXd([viewer.current_mouse_x, viewer.core.viewport[3] - viewer.current_mouse_y])
hit = igl.unproject_onto_mesh(coord, viewer.core.view,
viewer.core.proj, viewer.core.viewport, V, F, fid, bc)
coord = igl.eigen.MatrixXd([viewer.current_mouse_x, viewer.core().viewport[3] - viewer.current_mouse_y])
hit = igl.unproject_onto_mesh(coord, viewer.core().view,
viewer.core().proj, viewer.core().viewport, V, F, fid, bc)
if hit:
# paint hit red
C.setRow(fid[0, 0], igl.eigen.MatrixXd([[1, 0, 0]]))
+5 -5
View File
@@ -53,7 +53,7 @@ def representative_to_nrosy(V, F, R, N, Y):
def pre_draw(viewer):
if not viewer.core.is_animating:
if not viewer.core().is_animating:
return False
global anim_t
@@ -77,7 +77,7 @@ def pre_draw(viewer):
def key_down(viewer, key, modifier):
if key == ord(' '):
viewer.core.is_animating = not viewer.core.is_animating
viewer.core().is_animating = not viewer.core().is_animating
return True
return False
@@ -107,10 +107,10 @@ def main():
viewer.callback_pre_draw = pre_draw
viewer.callback_key_down = key_down
viewer.core.show_lines = False
viewer.core().show_lines = False
viewer.core.is_animating = False
viewer.core.animation_max_fps = 30.0
viewer.core().is_animating = False
viewer.core().animation_max_fps = 30.0
# Paint mesh grayish
C = igl.eigen.MatrixXd()