Package VisionEgg :: Module Core :: Class Viewport |
[frames] | no frames]

# Class Viewport

source code

             object --+
                      |
    ClassWithParameters --+
                          |
                         Viewport

    Connects stimuli to a screen.

    A viewport defines a (possibly clipped region) of the screen on
    which stimuli are drawn.

    A screen may have multiple viewports.  The viewports may be
    overlapping.

    A viewport may have multiple stimuli.

    A single stimulus may be drawn simultaneously by several
    viewports, although this is typically useful only for 3D stimuli
    to represent different views of the same object.

    The coordinates of the stimulus are converted to screen
    coordinates via several steps, the most important of which is the
    projection, which is defined by an instance of the Projection
    class.

    By default, a viewport has a projection which maps eye coordinates
    to viewport coordinates in 1:1 manner.  In other words, eye
    coordinates specify pixel location in the viewport.

    For cases where pixel units are not natural to describe
    coordinates of a stimulus, the application should specify the a
    projection other than the default.  This is usually the case for
    3D stimuli.

    For details of the projection and clipping process, see the
    section 'Coordinate Transformations' in the book/online document
    'The OpenGL Graphics System: A Specification'

    Parameters
    ==========
    anchor        -- How position parameter is interpreted (String)
                     Default: lowerleft
    camera_matrix -- extrinsic camera parameter matrix (position and orientation) (Instance of <class 'VisionEgg.Core.ModelView'>)
                     Default: (determined at runtime)
    depth_range   -- depth range (in object units) for rendering (Sequence2 of Real)
                     Default: (0, 1)
    position      -- Position (in pixel units) within the screen (Sequence2 of Real)
                     Default: (0, 0)
    projection    -- intrinsic camera parameter matrix (field of view, focal length, aspect ratio) (Instance of <class 'VisionEgg.Core.Projection'>)
                     Default: (determined at runtime)
    screen        -- The screen in which this viewport is drawn (Instance of <class 'VisionEgg.Core.Screen'>)
                     Default: (determined at runtime)
    size          -- Size (in pixel units) (Sequence2 of Real)
                     Default: (determined at runtime)
    stimuli       -- sequence of stimuli to draw in screen (Sequence of Instance of <class 'VisionEgg.Core.Stimulus'>)
                     Default: (determined at runtime)

Instance Methods
__init__(self, **kw) Create a new instance. | source code
make_new_pixel_coord_projection(self) Create instance of Projection mapping eye coordinates 1:1 with pixel coordinates. | source code
make_current(self) | source code
draw(self) Set the viewport and draw stimuli. | source code
norm_device_2_window(self, norm_device_vertex) Transform normalized device coordinates to window coordinates | source code
clip_2_window(self, eye_coords_vertex) Transform clip coordinates to window coordinates | source code
eye_2_window(self, eye_coords_vertex) Transform eye coordinates to window coordinates | source code
Inherited from `ClassWithParameters`: `__getstate__`, `__setstate__`, `get_specified_type`, `is_constant_parameter`, `set`, `verify_parameters` Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__str__`

Class Variables
| parameters_and_defaults = `VisionEgg.ParameterDefinition({'scre`...``
Inherited from `ClassWithParameters`: `__safe_for_unpickling__`, `constant_parameters_and_defaults`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self, **kw) (Constructor) | source code
    Create a new instance.

    Required arguments:

    screen

    Optional arguments (specify parameter value other than default):

    position -- defaults to (0,0), position relative to screen by anchor (see below)
    anchor -- defaults to 'lowerleft'
    size -- defaults to screen.size
    projection -- defaults to self.make_new_pixel_coord_projection()
    stimuli -- defaults to empty list
Overrides: ClassWithParameters.__init__

Class Variable Details

  ### parameters_and_defaults Value:
      VisionEgg.ParameterDefinition({'screen':(None, ve_types.Instance(Scree
      n), 'The screen in which this viewport is drawn'), 'position':((0, 0),
       ve_types.Sequence2(ve_types.Real), 'Position (in pixel units) within
      the screen'), 'anchor':('lowerleft', ve_types.String, 'How position pa
      rameter is interpreted'), 'depth_range':((0, 1), ve_types.Sequence2(ve
      _types.Real), 'depth range (in object units) for rendering'), 'size':(
      None, ve_types.Sequence2(ve_types.Real), 'Size (in pixel units)'), 'pr
      ojection':(None, ve_types.Instance(Projection), 'intrinsic camera para
      ...