-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmesh_example.py
More file actions
29 lines (27 loc) · 1.05 KB
/
mesh_example.py
File metadata and controls
29 lines (27 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from engine import Window, start_main_loop
from engine.rendering.standard_renderers import MeshRenderer
from engine.rendering.renderer_factory import RenderMode
from engine.game_object import GameObject
import numpy as np
class RectangleMeshObject(GameObject):
def __init__(self):
super().__init__()
self.renderer = MeshRenderer()
self.add_renderer(self.renderer)
points = np.array([
0.5, 0.5, -1.0,
0.5, -0.5, -1.0,
-0.5, -0.5, -1.0,
-0.5, 0.5, -1.0,
]).astype(np.float32).flatten()
triangles = np.array([[0,1,2], [0, 3, 2]]).astype(np.uint32).flatten()
# a MeshRenderer (renderer) renders the points defined by
# renderer.vertex_buffer and the triangles defined by
# renderer.elements
self.renderer.vertex_buffer = np.array(points)
self.renderer.elements = triangles
self.renderer.render_mode = RenderMode.ELEMENTS
if __name__ == "__main__":
g = RectangleMeshObject()
w = Window(game_objects=[g])
start_main_loop()