Changeset 608:1e4fb16a0edc


Ignore:
Timestamp:
06/08/12 14:21:56 (12 months ago)
Author:
ddangelo
Branch:
default
Convert:
svn:76c98907-0e80-4c83-94c7-b346fc2aefc2/trunk@614
Message:

ICone View added

Location:
avango-display/python/avango/display
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • avango-display/python/avango/display/_view.py

    r457 r608  
    5151 
    5252 
     53 
     54 
     55 
     56class LShapeView(avango.script.Script): 
     57     
     58    RootCamera1 = avango.osg.SFNode() 
     59    RootCamera2 = avango.osg.SFNode() 
     60         
     61    Root = avango.osg.SFNode() 
     62    Camera = avango.osg.SFMatrix() 
     63    Viewport = avango.osg.SFVec4() 
     64    Depth = avango.SFFloat() 
     65    UserSelector = avango.SFInt() 
     66    Near = avango.SFFloat() 
     67    Far = avango.SFFloat() 
     68    BackgroundColor = avango.osg.SFVec4() 
     69 
     70    def __init__(self): 
     71        self.super(IConeView).__init__() 
     72        self.Viewport.value = avango.osg.Vec4(0, 0, 1, 1) 
     73        self.Depth.value = 0 
     74        self.Near.value = 0.1 
     75        self.Far.value = 500. 
     76        self.BackgroundColor.value = avango.osg.Vec4(0., 0., 0., 1.) 
     77        self.UserSelector.value = 0 
     78         
     79        n = avango.osg.nodes.Group() 
     80        self.RootCamera1.Children.append(n) 
     81     
     82        n = avango.osg.nodes.Group() 
     83        self.RootCamera2.Children.append(n) 
     84         
     85    @field_has_changed(Root) 
     86    def root_has_changed(self): 
     87        self.RootCamera1.value.Children[0] = self.Root.value 
     88        self.RootCamera2.value.Children[0] = self.Root.value 
     89 
     90 
    5391class MonitorView(avango.script.Script): 
    5492     
  • avango-display/python/avango/display/setups/LShape.py

    r607 r608  
    122122        print "LShape::make_view" 
    123123        if not display_view: 
    124             display_view = avango.display.nodes.View() 
    125  
     124            display_view = avango.display.nodes.LShapeView() 
     125        num = 0 
    126126        for window, transform, current_user in self._windows: 
    127127             
     
    131131 
    132132            camera, view = self.make_camera_with_viewport( 
    133                 display_view, eye_offset, transform, window) 
     133                display_view, eye_offset, transform, window, num) 
    134134            camera.EyeTransform.connect_from(self._users[current_user].Matrix) 
    135135 
     
    139139            self.keep_alive(user_selector) 
    140140            self.connect_view_field(user_selector.ViewOut) 
    141  
     141             
     142            num += 1 
    142143            self.view_created(camera, view, subdisplay) 
    143  
     144             
     145             
    144146        if self._inspector and len(self._inspector.Children.value) == 0: 
    145147            # FIXME this should use a proper aggregation node 
     
    149151 
    150152        return display_view 
     153     
     154    def make_camera_with_viewport(self, display_view, eye_offset, screen_transform, window, num): 
     155        splitscreen_handling = ViewportConverter() 
     156        splitscreen_handling.ViewportIn.connect_from(display_view.Viewport) 
     157        splitscreen_handling.RealActualWidth.connect_from(window.RealActualWidth) 
     158        splitscreen_handling.RealActualHeight.connect_from(window.RealActualHeight) 
     159        splitscreen_handling.ScreenTransformIn.value = screen_transform 
     160        self.keep_alive(splitscreen_handling) 
     161 
     162        camera, view = self.make_camera(display_view, eye_offset, window, False, num) 
     163        camera.ScreenTransform.connect_from(splitscreen_handling.ScreenTransformOut) 
     164        camera.Viewport.connect_from(splitscreen_handling.ViewportOut) 
     165        return camera, view 
     166     
     167     
     168    def make_camera(self, display_view, eye_offset, window, connect_viewport = True, num): 
     169        camera = avango.osg.viewer.nodes.Camera() 
     170        camera.EyeOffset.value = eye_offset 
     171        if connect_viewport: 
     172            camera.Viewport.connect_from(display_view.Viewport) 
     173        camera.Near.connect_from(display_view.Near) 
     174        camera.Far.connect_from(display_view.Far) 
     175        camera.BackgroundColor.connect_from(display_view.BackgroundColor) 
     176        camera.ViewerTransform.connect_from(display_view.Camera) 
     177        camera.Window.value = window 
     178 
     179        view = avango.osg.viewer.nodes.View() 
     180        #depending on camera 
     181        if num == 0: 
     182            view.Scene.connect_from(display_view.RootCamera1) 
     183        else: 
     184            view.Scene.connect_from(display_view.RootCamera2) 
     185             
     186        view.MasterCamera.value = camera 
     187        return camera, view 
    151188 
    152189    def view_created(self, camera, view, subdisplay=""): 
Note: See TracChangeset for help on using the changeset viewer.