rename Python module from 'raytracer' to 'pyrit'
improve Python binding:
- new objects: Container, Octree, KdTree, Shape,
Pixmap, Sampler, DefaultSampler
- all shapes are now subclasses of Shape
- clean, remove redundant Getattr's
- Raytracer render method now just wraps C++ method
without doing any additional work
adjust all demos for changes in Python binding, remove PIL dependency
add demo_PIL.py as a example of pyrit + PIL usage
render_nff.py now either loads file given as a argument
or reads input from stdin otherwise
fix bug in pixmap float to char conversion
# Wavefron .obj file loader
from pyrit import Triangle, NormalVertex
def LoadWavefrontObjFile(rt, filename, mat, scale):
vertices = []
fp = file(filename)
while True:
ln = fp.readline()
if ln == "":
break;
ln = ln.split()
if ln[0] == "v":
v = [scale*float(x) for x in ln[1:4]]
vertices.append(tuple(v))
if ln[0] == "f":
f = [vertices[int(x)-1] for x in ln[1:4]]
face = Triangle(NormalVertex(f[0]), NormalVertex(f[1]), NormalVertex(f[2]), mat)
rt.addShape(face)