import soya.model
import soya.soya3d

import _soya

import pickle
import random

import soya.editor
import Tkinter

import gc

# TEST MORPH


w = soya.soya3d.World ()

## for i in xrange(5):
##   soya.model.Face (w, [soya.model.Vertex(w, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, - random.random() * 10.0),
##                        soya.model.Vertex(w, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, - random.random() * 10.0),
##                        soya.model.Vertex(w, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, - random.random() * 10.0)])



w2 = soya.soya3d.World (w)

soya.model.Material.PATH = "/home/jiba/python/slune/materials"
mat1 = soya.model.Material.get("grass1")
mat2 = soya.model.Material.get("bloc1")

##     f  = soya.model.Face (w, [soya.model.Vertex(w, 0.0, 0.0, 0.0),
##                               soya.model.Vertex(w, 1.0, 0.0, 0.0),
##                               soya.model.Vertex(w, 0.0, 1.0, 0.0)
##                               ], mat1)
##     f.double_sided = 1
##     f.smoothlit = 1
    
co = 0
while (co < 50):
    f  = soya.model.Face (w, [soya.model.Vertex(w,  random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0),
                              soya.model.Vertex(w2, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0),
                              soya.model.Vertex(w,  random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0)
                              ], mat1)
    f.double_sided = 1
    f.smoothlit = 1
    co = co + 1

while (co < 100):
    f  = soya.model.Face (w, [soya.model.Vertex(w,  random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0),
                              soya.model.Vertex(w2, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0),
                              soya.model.Vertex(w,  random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0, random.random() * 10.0 - 5.0)
                              ], mat2)
    f.double_sided = 1
    f.smoothlit = 1
    co = co + 1

    
f  = soya.model.Face (w, [soya.model.Vertex(w, 10.0, 0.0, 0.0),
                          soya.model.Vertex(w, 11.0, 0.0, 0.0),
                          soya.model.Vertex(w, 10.0, 1.0, 0.0)
                          ], mat2)
f.double_sided = 1
f.smoothlit = 1


## f  = soya.model.Face (w, [soya.model.Vertex(w, 0.0, 0.0, 0.0),
##                           soya.model.Vertex(w, 1.0, 0.0, 0.0),
##                           soya.model.Vertex(w, 0.0, 1.0, 0.0)
##                           ], mat1)
## f2 = soya.model.Face (w, [soya.model.Vertex(w,  0.0, 0.0, 0.0),
##                           soya.model.Vertex(w2, 0.0, 0.0, 1.0),
##                           soya.model.Vertex(w,  1.0, 0.0, 0.0)
##                           ], mat1)
## f.double_sided = 1
## f2.double_sided = 1

## f.smoothlit = 1
## f2.smoothlit = 1


print "will now convert to morph..."
m = w._to_morph()


while(len(w.children) > 0):
  w.remove(w.children[0])

#w.remove(f)
#w.remove(f2)



i = soya.soya3d.Morph(m)
w.add(i)


## a = _soya._AnimCoordsys()
## w.anim = a

## a.add(w,1.0)
## w.set_xyz(0.0,10.0,0.0)
## a.add(w,2.0)
## w.set_xyz(5.0,10.0,0.0)
## a.add(w,4.0)
## w.set_xyz(0.0,0.0,0.0)
## a.cyclic_lap = 4.0

#print m.__getstate__()

#print 'ok'

soya.editor.edit(w)
Tkinter.mainloop()


#c = soya.soya3d.Camera(w)
#soya.init()
#while(1):
#  c.render()
#  soya.display()
  

