Some cleaning

This commit is contained in:
Thomas FORGIONE 2016-11-25 14:28:39 +01:00
parent 7e7ad309c7
commit cfe9f7e913
11 changed files with 65 additions and 57 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from ..conv.model import Vertex from .conv.model import Vertex
from OpenGL.GL import * from OpenGL.GL import *
from OpenGL.GLU import * from OpenGL.GLU import *

View File

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from ..conv.model import Vertex from .conv.model import Vertex
import pygame import pygame

View File

@ -2,58 +2,9 @@
from math import sqrt from math import sqrt
class Vertex: from ..geometry import Vector
def __init__(self, x = 0.0, y = 0.0, z = 0.0):
self.x = x
self.y = y
self.z = z
def from_array(self, arr):
self.x = float(arr[0]) if len(arr) > 0 else None
self.y = float(arr[1]) if len(arr) > 1 else None
self.z = float(arr[2]) if len(arr) > 2 else None
return self
def __add__(self, other):
return Vertex(self.x + other.x, self.y + other.y, self.z + other.z)
def __mul__(self, other):
return Vertex(self.x * other, self.y * other, self.z * other)
def __rmul__(self, other):
return self.__mul__(other)
def norm2(self):
return self.x * self.x + self.y * self.y + self.z * self.z
def norm(self):
return sqrt(self.norm2())
def normalize(self):
norm = self.norm()
if abs(norm) > 0.0001:
self.x /= norm
self.y /= norm
self.z /= norm
def cross_product(v1, v2):
return Vertex(
v1.y * v2.z - v1.z * v2.y,
v1.z * v2.x - v1.x * v2.z,
v1.x * v2.y - v1.y * v2.x)
def from_points(v1, v2):
return Vertex(
v2.x - v1.x,
v2.y - v1.y,
v2.z - v1.z)
def __str__(self):
return '(' + ", ".join([str(self.x), str(self.y), str(self.z)]) + ")"
def dot(self, other):
return self.x * other.x + self.y * other.y + self.z * other.z
Vertex = Vector
Normal = Vertex Normal = Vertex
TexCoord = Vertex TexCoord = Vertex

57
d3/geometry.py Normal file
View File

@ -0,0 +1,57 @@
#!/usr/bin/env python3
from math import sqrt
class Vector:
def __init__(self, x = 0.0, y = 0.0, z = 0.0):
self.x = x
self.y = y
self.z = z
def from_array(self, arr):
self.x = float(arr[0]) if len(arr) > 0 else None
self.y = float(arr[1]) if len(arr) > 1 else None
self.z = float(arr[2]) if len(arr) > 2 else None
return self
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y, self.z + other.z)
def __mul__(self, other):
return Vector(self.x * other, self.y * other, self.z * other)
def __rmul__(self, other):
return self.__mul__(other)
def norm2(self):
return self.x * self.x + self.y * self.y + self.z * self.z
def norm(self):
return sqrt(self.norm2())
def normalize(self):
norm = self.norm()
if abs(norm) > 0.0001:
self.x /= norm
self.y /= norm
self.z /= norm
def cross_product(v1, v2):
return Vector(
v1.y * v2.z - v1.z * v2.y,
v1.z * v2.x - v1.x * v2.z,
v1.x * v2.y - v1.y * v2.x)
def from_points(v1, v2):
return Vector(
v2.x - v1.x,
v2.y - v1.y,
v2.z - v1.z)
def __str__(self):
return '(' + ", ".join([str(self.x), str(self.y), str(self.z)]) + ")"
def dot(self, other):
return self.x * other.x + self.y * other.y + self.z * other.z

View File

@ -14,8 +14,8 @@ from OpenGL.GLU import *
from d3.conv.loadmodel import load_model from d3.conv.loadmodel import load_model
from d3.conv.model import Vertex from d3.conv.model import Vertex
from d3.controls.controls import TrackBallControls from d3.controls import TrackBallControls
from d3.cameras.camera import Camera from d3.camera import Camera
WINDOW_WIDTH = 1024 WINDOW_WIDTH = 1024
WINDOW_HEIGHT = 768 WINDOW_HEIGHT = 768
@ -53,9 +53,9 @@ def main(args):
VERTEX_SHADER = None VERTEX_SHADER = None
FRAGMENT_SHADER = None FRAGMENT_SHADER = None
with open('shaders/shader.vert') as f: with open('assets/shaders/shader.vert') as f:
VERTEX_SHADER = compileShader(f.read(), GL_VERTEX_SHADER) VERTEX_SHADER = compileShader(f.read(), GL_VERTEX_SHADER)
with open('shaders/shader.frag') as f: with open('assets/shaders/shader.frag') as f:
FRAGMENT_SHADER = compileShader(f.read(), GL_FRAGMENT_SHADER) FRAGMENT_SHADER = compileShader(f.read(), GL_FRAGMENT_SHADER)
SHADER = compileProgram(VERTEX_SHADER, FRAGMENT_SHADER) SHADER = compileProgram(VERTEX_SHADER, FRAGMENT_SHADER)