28 lines
794 B
Python
28 lines
794 B
Python
|
from .geometry import Vector
|
||
|
|
||
|
import OpenGL.GLU as glu
|
||
|
|
||
|
class Camera:
|
||
|
"""Simple 3D camera
|
||
|
"""
|
||
|
def __init__(self, position = Vector(1.0,0.0,0.0), target = Vector(), up = Vector(0.0,1.0,0.0)):
|
||
|
"""Creates a simple camera
|
||
|
|
||
|
:param position: center of the camera
|
||
|
:param target: point where the camera is looking
|
||
|
:param up: up vector of the camera
|
||
|
"""
|
||
|
self.position = position
|
||
|
self.target = target
|
||
|
self.up = up
|
||
|
|
||
|
def look(self):
|
||
|
"""Sets the model view matrix of OpenGL
|
||
|
|
||
|
Simply calls the gluLookAt function
|
||
|
"""
|
||
|
glu.gluLookAt(
|
||
|
self.position.x, self.position.y, self.position.z,
|
||
|
self.target.x, self.target.y, self.target.z,
|
||
|
self.up.x, self.up.y, self.up.z)
|