示例#1
0
    def __init__(self):

        self._unit = "m"
        self._worldRoot = WorldObject( "root" )
        self._activeCam = None

        # self._items = []
        self._globals = {}
        pass
示例#2
0
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