eq::Canvas Class Reference

A canvas represents a logical 2D projection surface. More...

#include <canvas.h>

Inheritance diagram for eq::Canvas:
Inheritance graph
[legend]
Collaboration diagram for eq::Canvas:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Canvas ()
 Construct a new Canvas.
virtual ~Canvas ()
 Destruct this canvas.
Data Access



ConfiggetConfig ()
const ConfiggetConfig () const
uint32_t getActiveLayoutIndex () const
const LayoutgetActiveLayout () const
const SegmentVectorgetSegments () const
const LayoutVectorgetLayouts () const
Operations



virtual void useLayout (const uint32_t index)
 Activate the given layout on this canvas.
VisitorResult accept (CanvasVisitor &visitor)
 Traverse this canvas and all children using a canvas visitor.
VisitorResult accept (CanvasVisitor &visitor) const
 Const-version of accept().
bool hasDirtyLayout () const

Protected Types

enum  DirtyBits {
  DIRTY_LAYOUT = Frustum::DIRTY_CUSTOM << 0, DIRTY_CHILDREN = Frustum::DIRTY_CUSTOM << 1, DIRTY_FILL1 = Frustum::DIRTY_CUSTOM << 2, DIRTY_FILL2 = Frustum::DIRTY_CUSTOM << 3,
  DIRTY_CUSTOM = Frustum::DIRTY_CUSTOM << 4
}
 

The changed parts of the frustum since the last pack().

More...

Protected Member Functions

void serialize (net::DataOStream &os, const uint64_t dirtyBits)
virtual void deserialize (net::DataIStream &is, const uint64_t dirtyBits)

Friends

class Config
class server::Canvas

Detailed Description

A canvas represents a logical 2D projection surface.

A canvas consists of one or more Segment, which represent the physical output channels. Segments have a viewport, which defines which part of the logical 2D projection surface they occupy. Segments overlap each other when edge-blending is used, and have gaps for display walls. Passive stereo systems use one segment for each eye pass, so that two segments have the same viewport. Application windows typically use one canvas per Window.

A canvas has a Frustum, which is used to compute a sub-frustum for segments which have no frustum specified. This is useful for planar projection systems.

A canvas has one ore more layouts, of which one Layout is the active layout, defining the set of logical views currently used to render on the canvas. The layout can be switched at runtime. A canvas with a NULL layout does not render anything, i.e., it is not active.

Definition at line 56 of file lib/client/canvas.h.


Member Enumeration Documentation

enum eq::Canvas::DirtyBits [protected]

The changed parts of the frustum since the last pack().

Reimplemented from eq::Frustum.

Definition at line 113 of file lib/client/canvas.h.


Constructor & Destructor Documentation

eq::Canvas::Canvas (  ) 

Construct a new Canvas.

Definition at line 33 of file lib/client/canvas.cpp.

eq::Canvas::~Canvas (  )  [virtual]

Destruct this canvas.

Definition at line 39 of file lib/client/canvas.cpp.


Member Function Documentation

Config* eq::Canvas::getConfig (  )  [inline]
Returns:
the parent config.

Definition at line 68 of file lib/client/canvas.h.

Referenced by eq::Segment::getConfig().

Here is the caller graph for this function:

const Config* eq::Canvas::getConfig (  )  const [inline]
Returns:
the parent config.

Definition at line 70 of file lib/client/canvas.h.

uint32_t eq::Canvas::getActiveLayoutIndex (  )  const [inline]
Returns:
the index of the active layout.

Definition at line 73 of file lib/client/canvas.h.

const Layout * eq::Canvas::getActiveLayout (  )  const
Returns:
the active layout.

Definition at line 114 of file lib/client/canvas.cpp.

Referenced by eVolve::Config::handleEvent(), and eqPly::Config::handleEvent().

Here is the caller graph for this function:

const SegmentVector& eq::Canvas::getSegments (  )  const [inline]
Returns:
the vector of child segments.

Definition at line 79 of file lib/client/canvas.h.

const LayoutVector& eq::Canvas::getLayouts (  )  const [inline]
Returns:
the vector of possible layouts.

Definition at line 82 of file lib/client/canvas.h.

void eq::Canvas::useLayout ( const uint32_t  index  )  [virtual]

Activate the given layout on this canvas.

Definition at line 120 of file lib/client/canvas.cpp.

References eq::Object::setDirty().

Here is the call graph for this function:

VisitorResult eq::Canvas::accept ( CanvasVisitor visitor  ) 

Traverse this canvas and all children using a canvas visitor.

Parameters:
visitor the visitor.
Returns:
the result of the visitor traversal.

Definition at line 174 of file lib/client/canvas.cpp.

VisitorResult eq::Canvas::accept ( CanvasVisitor visitor  )  const

Const-version of accept().

Definition at line 179 of file lib/client/canvas.cpp.

bool eq::Canvas::hasDirtyLayout (  )  const [inline]
Returns:
true if the layout has changed.

For internal use only.

Definition at line 102 of file lib/client/canvas.h.

References eq::Object::getDirty().

Referenced by eq::ConfigCommitVisitor::visitPre().

Here is the call graph for this function:

Here is the caller graph for this function:

void eq::Canvas::serialize ( net::DataOStream os,
const uint64_t  dirtyBits 
) [protected, virtual]
See also:
Frustum::serialize

Reimplemented from eq::Frustum.

Definition at line 44 of file lib/client/canvas.cpp.

void eq::Canvas::deserialize ( net::DataIStream is,
const uint64_t  dirtyBits 
) [protected, virtual]
See also:
Frustum::deserialize

Reimplemented from eq::Frustum.

Definition at line 54 of file lib/client/canvas.cpp.

References eq::NodeFactory::createSegment(), eq::Config::findLayout(), eq::Global::getNodeFactory(), and eq::net::Session::mapObject().

Here is the call graph for this function:


The documentation for this class was generated from the following files:
Generated on Sat Feb 6 13:02:26 2010 for Equalizer 0.9.1 by  doxygen 1.6.1