Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import glooey
  4. import pyglet
  5. from pyglet import gl
  6. import trimesh
  7. from trimesh import rendering
  8.  
  9.  
  10. class MyGroup(pyglet.graphics.Group):
  11.  
  12. def set_state(self):
  13. # find the maximum depth based on
  14. # maximum length of scene AABB
  15. gl.glDepthRange(0.0, 100)
  16.  
  17. gl.glClearDepth(1.0)
  18. gl.glEnable(gl.GL_DEPTH_TEST)
  19. gl.glDepthFunc(gl.GL_LEQUAL)
  20.  
  21. gl.glEnable(gl.GL_DEPTH_TEST)
  22. gl.glEnable(gl.GL_CULL_FACE)
  23.  
  24. # do some openGL things
  25. gl.glColorMaterial(gl.GL_FRONT_AND_BACK,
  26. gl.GL_AMBIENT_AND_DIFFUSE)
  27. gl.glEnable(gl.GL_COLOR_MATERIAL)
  28. gl.glShadeModel(gl.GL_SMOOTH)
  29.  
  30. gl.glMaterialfv(gl.GL_FRONT,
  31. gl.GL_AMBIENT,
  32. rendering.vector_to_gl(
  33. 0.192250, 0.192250, 0.192250))
  34. gl.glMaterialfv(gl.GL_FRONT,
  35. gl.GL_DIFFUSE,
  36. rendering.vector_to_gl(
  37. 0.507540, 0.507540, 0.507540))
  38. gl.glMaterialfv(gl.GL_FRONT,
  39. gl.GL_SPECULAR,
  40. rendering.vector_to_gl(
  41. .5082730, .5082730, .5082730))
  42.  
  43. gl.glMaterialf(gl.GL_FRONT,
  44. gl.GL_SHININESS,
  45. .4 * 128.0)
  46.  
  47. # enable blending for transparency
  48. gl.glEnable(gl.GL_BLEND)
  49. gl.glBlendFunc(gl.GL_SRC_ALPHA,
  50. gl.GL_ONE_MINUS_SRC_ALPHA)
  51.  
  52. # make the lines from Path3D objects less ugly
  53. gl.glEnable(gl.GL_LINE_SMOOTH)
  54. gl.glHint(gl.GL_LINE_SMOOTH_HINT, gl.GL_NICEST)
  55. # set the width of lines to 1.5 pixels
  56. gl.glLineWidth(1.5)
  57. # set PointCloud markers to 4 pixels in size
  58. gl.glPointSize(4)
  59.  
  60. pyglet.gl.glPushMatrix()
  61. gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
  62. pyglet.gl.glLoadIdentity()
  63. transform_camera = [[1.0, 0.0, 0.0, -0.045143118705688864], [0.0, 1.0, 0.0, -0.04509277932377646], [0.0, 0.0, 1.0, -0.2325577568287513], [0.0, 0.0, 0.0, 1.0]]
  64. pyglet.gl.glMultMatrixf(trimesh.rendering.matrix_to_gl(transform_camera))
  65. view = [[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]
  66. pyglet.gl.glMultMatrixf(trimesh.rendering.matrix_to_gl(view))
  67. pyglet.gl.glPopMatrix()
  68.  
  69. pyglet.gl.glPushMatrix()
  70. pyglet.gl.glLoadIdentity()
  71. pyglet.gl.glPopMatrix()
  72.  
  73.  
  74. class MyWidget(glooey.Widget):
  75.  
  76. def __init__(self):
  77. super().__init__()
  78. self.vertex_list = None
  79. self._regroup(MyGroup(self.group))
  80.  
  81. def do_claim(self):
  82. return 640, 480
  83.  
  84. def do_regroup(self):
  85. if self.vertex_list is not None:
  86. self.batch.migrate(
  87. self.vertex_list, pyglet.gl.GL_TRIANGLES,
  88. self.group, self.batch)
  89.  
  90. def do_draw(self):
  91. if self.vertex_list is None:
  92. mesh = trimesh.creation.axis(0.01)
  93. args = trimesh.rendering.mesh_to_vertexlist(mesh, group=self.group)
  94. self.vertex_list = self.batch.add_indexed(*args)
  95. self.vertex_list.draw(mode=pyglet.gl.GL_TRIANGLES)
  96.  
  97. def do_undraw(self):
  98. if self.vertex_list is not None:
  99. self.vertex_list.delete()
  100. self.vertex_list = None
  101.  
  102.  
  103. if __name__ == '__main__':
  104. window = pyglet.window.Window(width=640, height=480)
  105. gui = glooey.Gui(window)
  106. gui.add(MyWidget())
  107. pyglet.app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement