class Scene( object ): """ Description of a scene Attributes: # a list of items (give access to worldobjects by name) a root item (hold objects as a tree) """ def __init__(self): self._unit = "m" self._worldRoot = WorldObject( "root" ) self._activeCam = None # self._items = [] self._globals = {} pass # def __len__(self): # return len(self._items) def __iter__(self): return iter(self._worldRoot) def hasGlobal(self, name): return name in self._globals def getGlobal(self, name, default=None): return self._globals.get(name, default) def setGlobal(self, name, value): self._globals[name] = value def getRoot(self): """ Return the root object of the scene. """ return self._worldRoot def insert(self, pItem): """ """ if isinstance( pItem, WorldObject ): self._worldRoot.addChild( pItem ) else: raise TypeError def getObject(self, pName): """Return the world object with the specified name. You can use '/' as a path separator. \param name (\c str) Object name \return WorldObject """ obj = self._worldRoot if len(pName)>0: names = pName.split("/") else: names = [] for n in names: obj = obj.findChildByName(n) return obj def intersect(self, pRay): """ """ pass def getSourceRay( self, pX, pY ): """ """ pos = self._activeCam.pos ray = Ray() pass def updateSourceRay( self, pX, pY ): pass def setActiveCamera(self, pCam): self._activeCam = pCam pass def getActiveCamera(self): return self._activeCam