Beispiel #1
0
 def __init__(self, **keywords):
     cvisual.display_kernel.__init__(self)
     self._window_initialized = False
     self.N = -1
     
     self.material = materials.diffuse
     # If visible is set before width (say), can get error "can't change window".
     # So deal with visible attribute separately.
     v = None
     if 'visible' in keywords:
         visible = keywords['visible']
         del keywords['visible']
     keys = list(keywords.keys())
     keys.sort()
     for kw in keys:
         setattr(self, kw, keywords[kw])
     if v is not None: setattr(self, 'visible', v)
     if 'ambient' not in keywords:
         self.ambient = (0.2,0.2,0.2)
     self._leftdown = self._rightdown = 0
     self._cursorx = self._cursory = 0
     self._spinning = False
     
     self.select()
     
     if 'lights' not in keywords:
         distant_light( direction=(0.22, 0.44, 0.88), color=(0.8,0.8,0.8) )
         distant_light( direction=(-0.88, -0.22, -.44), color=(0.3,0.3,0.3) )
    def _set_lights(self, n_lights):
        old_lights = self._get_lights()
        for lt in old_lights:
            lt.visible = False

        if (type(n_lights) is not list) and (type(n_lights) is not tuple):
            n_lights = [n_lights] # handles case of scene.lights = single light
        for lt in n_lights:
            if isinstance( lt, cvisual.light ):  #< TODO: should this be allowed?
                lt.display = self
                lt.visible = True
            else:
                lum = cvisual.vector(lt).mag
                distant_light( direction=cvisual.vector(lt).norm(),
                               color=(lum,lum,lum),
                               display=self )
Beispiel #3
0
    def _set_lights(self, n_lights):
        old_lights = self._get_lights()
        for lt in old_lights:
            lt.visible = False

        if (type(n_lights) is not list) and (type(n_lights) is not tuple):
            n_lights = [n_lights] # handles case of scene.lights = single light
        for lt in n_lights:
            if isinstance( lt, cvisual.light ):  #< TODO: should this be allowed?
                lt.display = self
                lt.visible = True
            else:
                lum = cvisual.vector(lt).mag
                distant_light( direction=cvisual.vector(lt).norm(),
                               color=(lum,lum,lum),
                               display=self )
    def __init__(self, **keywords):
        cvisual.display_kernel.__init__(self)
        self._window_initialized = False
        self.window = None
        self.menus = False
        self.N = -1
        self._lastx = self._lasty = None  # previous mouse position
        self.standard = True  # assume canvas fills the window

        self.material = materials.diffuse
        # If visible is set before width (say), can get error "can't change window".
        # So deal with visible attribute separately.
        v = None
        if 'visible' in keywords:
            visible = keywords['visible']
            del keywords['visible']
        keys = list(keywords.keys())
        keys.sort()
        for kw in keys:
            setattr(self, kw, keywords[kw])
        if v is not None: setattr(self, 'visible', v)
        if 'ambient' not in keywords:
            self.ambient = (0.2, 0.2, 0.2)
        if self.window is not None:
            self.standard = False
            self.win = self.window.win
            self.panel = self.window.panel

        self._mt = _mouseTracker()
        self._captured = 0
        self._cursorx = self._cursory = 0

        self.select()

        if 'lights' not in keywords:
            distant_light(direction=(0.22, 0.44, 0.88), color=(0.8, 0.8, 0.8))
            distant_light(direction=(-0.88, -0.22, -.44),
                          color=(0.3, 0.3, 0.3))

        self._bindings = {}
        self._waiting = []
        self.keyboard = eventInfo()
        self.kb = kb()

        if self.window is not None:
            self._activate(True)
    def __init__(self, **keywords):
        cvisual.display_kernel.__init__(self)
        self._window_initialized = False
        self.window = None
        self.menus = False
        self.N = -1
        self._lastx = self._lasty = None # previous mouse position
        self.standard = True # assume canvas fills the window
        
        self.material = materials.diffuse
        # If visible is set before width (say), can get error "can't change window".
        # So deal with visible attribute separately.
        v = None
        if 'visible' in keywords:
            visible = keywords['visible']
            del keywords['visible']
        keys = list(keywords.keys())
        keys.sort()
        for kw in keys:
            setattr(self, kw, keywords[kw])
        if v is not None: setattr(self, 'visible', v)
        if 'ambient' not in keywords:
            self.ambient = (0.2,0.2,0.2)
        if self.window is not None:
            self.standard = False
            self.win = self.window.win
            self.panel = self.window.panel
            
        self._mt = _mouseTracker()
        self._captured = 0
        self._cursorx = self._cursory = 0

        self.select()
        
        if 'lights' not in keywords:
            distant_light( direction=(0.22, 0.44, 0.88), color=(0.8,0.8,0.8) )
            distant_light( direction=(-0.88, -0.22, -.44), color=(0.3,0.3,0.3) )
            
        self._bindings = {}
        self._waiting = []
        self.keyboard = eventInfo()
        self.kb = kb()

        if self.window is not None:
            self._activate(True)