Stuff
This commit is contained in:
parent
b6130ca640
commit
befe9c19fe
|
@ -58,11 +58,21 @@ class OrbitControls(Controls):
|
|||
super().__init__()
|
||||
self.phi = 0
|
||||
self.theta = 0
|
||||
self.scale = 1
|
||||
|
||||
def apply(self):
|
||||
gl.glScalef(self.scale, self.scale, self.scale)
|
||||
gl.glRotatef(self.theta * 180 / math.pi, 1.0, 0.0, 0.0)
|
||||
gl.glRotatef(self.phi * 180 / math.pi, 0.0, 1.0, 0.0)
|
||||
|
||||
def apply_event(self, event):
|
||||
if event.type == pygame.MOUSEBUTTONDOWN:
|
||||
# Wheel up
|
||||
if event.button == 4:
|
||||
self.scale += 0.2
|
||||
elif event.button == 5:
|
||||
self.scale -= 2
|
||||
|
||||
def update(self, time = 10):
|
||||
|
||||
if not pygame.mouse.get_pressed()[0]:
|
||||
|
|
|
@ -74,7 +74,6 @@ class ModelParser:
|
|||
"""Initializes the model
|
||||
"""
|
||||
self.up_conversion = up_conversion
|
||||
print(up_conversion)
|
||||
self.vertices = []
|
||||
self.normals = []
|
||||
self.tex_coords = []
|
||||
|
|
|
@ -48,7 +48,9 @@ class Material:
|
|||
gl.glBindTexture(gl.GL_TEXTURE_2D, self.id)
|
||||
|
||||
def unbind(self):
|
||||
pass
|
||||
from OpenGL import GL as gl
|
||||
|
||||
gl.glDisable(gl.GL_TEXTURE_2D)
|
||||
|
||||
import PIL.Image
|
||||
|
||||
|
@ -150,33 +152,11 @@ class MeshPart:
|
|||
|
||||
gl.glDrawArrays(gl.GL_TRIANGLES, 0, len(self.vertex_vbo.data) * 9)
|
||||
|
||||
gl.glDisableClientState(gl.GL_VERTEX_ARRAY)
|
||||
gl.glDisableClientState(gl.GL_NORMAL_ARRAY)
|
||||
gl.glDisableClientState(gl.GL_TEXTURE_COORD_ARRAY)
|
||||
|
||||
|
||||
def draw_from_arrays(self):
|
||||
pass
|
||||
|
||||
class Mesh:
|
||||
def __init__(self):
|
||||
self.vertices = []
|
||||
self.tex_coords = []
|
||||
self.normals = []
|
||||
self.parts = []
|
||||
self.current_material = None
|
||||
self.current_part = None
|
||||
|
||||
def draw(self):
|
||||
for part in self.parts:
|
||||
part.draw()
|
||||
|
||||
def add_face(self, face):
|
||||
if self.current_part is None or face.material != self.current_part.material:
|
||||
self.current_part = MeshPart(self)
|
||||
self.current_part.material = face.material
|
||||
self.parts.append(self.current_part)
|
||||
|
||||
self.current_part.add_face(face)
|
||||
|
||||
def generate_vbos(self):
|
||||
for part in self.parts:
|
||||
part.generate_vbos()
|
||||
|
||||
|
||||
|
||||
|
|
36
viewer.py
36
viewer.py
|
@ -18,7 +18,18 @@ from d3.camera import Camera
|
|||
from d3.shader import DefaultShader
|
||||
|
||||
WINDOW_WIDTH = 1024
|
||||
WINDOW_HEIGHT = 768
|
||||
WINDOW_HEIGHT = 1024
|
||||
|
||||
def resize(width, height):
|
||||
print((width, height))
|
||||
|
||||
length = min(width, height)
|
||||
offset = int( math.fabs(width - height) / 2)
|
||||
|
||||
if width < height:
|
||||
gl.glViewport(0, offset, length, length)
|
||||
else:
|
||||
gl.glViewport(offset, 0, length, length)
|
||||
|
||||
def main(args):
|
||||
|
||||
|
@ -35,10 +46,13 @@ def main(args):
|
|||
|
||||
pg.init()
|
||||
display = (WINDOW_WIDTH, WINDOW_HEIGHT)
|
||||
pg.display.set_mode(display, pgl.DOUBLEBUF | pgl.OPENGL)
|
||||
pg.display.set_mode(display, pgl.DOUBLEBUF | pgl.OPENGL | pgl.RESIZABLE)
|
||||
pg.display.set_caption('Model-Converter')
|
||||
|
||||
# OpenGL init
|
||||
gl.glMatrixMode(gl.GL_MODELVIEW)
|
||||
gl.glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT)
|
||||
|
||||
gl.glMatrixMode(gl.GL_PROJECTION)
|
||||
gl.glLoadIdentity()
|
||||
glu.gluPerspective(45, (WINDOW_WIDTH / WINDOW_HEIGHT), 0.1, 50.0)
|
||||
|
@ -68,6 +82,9 @@ def main(args):
|
|||
|
||||
while running:
|
||||
for event in pg.event.get():
|
||||
|
||||
controls.apply_event(event)
|
||||
|
||||
if event.type == pg.QUIT:
|
||||
pg.quit()
|
||||
quit()
|
||||
|
@ -78,6 +95,8 @@ def main(args):
|
|||
elif event.type == pg.MOUSEBUTTONDOWN:
|
||||
if event.button == 1:
|
||||
pg.mouse.get_rel()
|
||||
elif event.type == pg.VIDEORESIZE:
|
||||
resize(event.size[0], event.size[1])
|
||||
|
||||
# Update physics
|
||||
controls.update()
|
||||
|
@ -90,6 +109,19 @@ def main(args):
|
|||
|
||||
gl.glPushMatrix()
|
||||
controls.apply()
|
||||
|
||||
gl.glBegin(gl.GL_LINES)
|
||||
gl.glColor3f (1.0,0.0,0.0)
|
||||
gl.glVertex3f(0.0,0.0,0.0)
|
||||
gl.glVertex3f(2.0,0.0,0.0)
|
||||
gl.glColor3f (0.0,1.0,0.0)
|
||||
gl.glVertex3f(0.0,0.0,0.0)
|
||||
gl.glVertex3f(0.0,2.0,0.0)
|
||||
gl.glColor3f (0.0,0.0,1.0)
|
||||
gl.glVertex3f(0.0,0.0,0.0)
|
||||
gl.glVertex3f(0.0,0.0,2.0)
|
||||
gl.glEnd()
|
||||
|
||||
shader.bind()
|
||||
model.draw()
|
||||
shader.unbind()
|
||||
|
|
Loading…
Reference in New Issue