version 3.3

VRS::Engine Class Reference

#include <vrs/engine.h>

Inheritance diagram for VRS::Engine:

VRS::SharedObj VRS::Visitable VRS::EngineGL

List of all members.

Public Types

enum  TFType { modelviewMatrix = 0, projectionMatrix = 1, textureMatrix = 2, colorMatrix = 3 }
enum  SwitchType { ON = 1, OFF = 2, ALL = 3 }
typedef Callback1< SO< Engine > > RenderCallback
 The pre and post render callbacks are called before and after the evaluation of the scene graph.

Public Member Functions

 VRS_TYPEINFO (Engine, SharedObj)
 Engine ()
virtual ~Engine ()
virtual void push (MonoAttribute *attr)
 Pushes a mono attribute and calls its painter, shader or simplifier.
virtual void push (PolyAttribute *attr)
 Pushes a poly attribute and calls its painter or simplifier, if available.
virtual void push (Switch *sw)
 Pushes a switch and (de)activates poly attributes accordingly.
virtual void push (Handler *hdl)
 Pushes a handler.
virtual void push (Technique *tech)
 Pushes a technique.
virtual void pop (MonoAttribute *attr)
 Pops a mono attribute and calls its painter, shader or simplifier.
virtual void pop (PolyAttribute *attr)
 Pops a poly attribute and calls its painter or simplifier, if available.
virtual void pop (Switch *sw)
 Pops a switch, setting old poly attributes switch settings again.
virtual void pop (Handler *hdl)
 Pops a handler.
virtual void pop (Technique *tech)
 Pops a technique.
virtual void eval (const Shape *shape)
virtual void eval (const MonoAttribute *attr, bool pushHint)
 looks for, and invokes painter, shader or simplifier for the attribute
virtual void eval (const PolyAttribute *attr, unsigned int index, bool pushHint)
 looks for, and invokes painter or simplifier for the attribute
virtual bool isHandledByShader (const MonoAttribute *attr)
 Determines whether a mono attribute is evaluated with a shader.
virtual bool demandsShadingPass (const MonoAttribute *attr)
 Returns whether additional shading passes are needed, see isHandledByShader.
virtual unsigned int shadingPass () const
 Reports the actual pass of a multipass shading algorithm, see isHandledByShader.
virtual void push (Attribute *attr)
virtual void pop (Attribute *attr)
virtual void pop (const ID &id)
 Pops an attribute from the stack specified by its id.
virtual void setProcessor (TechniqueProcessor *)
 Sets the evaluation strategy used for scene graph evaluation.
virtual TechniqueProcessorgetProcessor () const
 Gets the evaluation strategy used for scene graph evaluation.
 VRS_SERIALIZABLE_CLASS_ENUM (TFType)
virtual void pushTf (TFType category=Engine::modelviewMatrix)
 Stores the matrix of the specified stack.
virtual void popTf (TFType category=Engine::modelviewMatrix)
 Restores the matrix of the specified stack.
virtual void multTf (const Matrix &matrix, TFType category=Engine::modelviewMatrix)
 Multiplies a given matrix on the current top matrix of the specified stack.
virtual void loadTf (const Matrix &matrix, TFType category=Engine::modelviewMatrix)
 Replaces the top matrix of the specified stack.
virtual Matrix currentTf (TFType category=Engine::modelviewMatrix) const
 Returns the current top matrix of the specified stack.
virtual Matrix currentTfInv (TFType category=Engine::modelviewMatrix) const
 Returns the inverse of the current top matrix of the specified stack - uses caching!
virtual Matrix orientationTf () const
 Returns the orientation matrix.
virtual Matrix orientationTfInv () const
 Returns the inverted orientation matrix.
virtual void setOrientationTf (const Matrix &matrix)
virtual void setOrientationTf ()
 Sets the orientation matrix.
virtual Matrix currentNormalizedDeviceCoordsTf () const
 Returns the current normalized device coords transformation.
virtual Matrix currentPureProjectionTf () const
virtual Matrix currentPureProjectionTfInv () const
 Returns the current projection matrix excluding the ndcTf (convenience method using internal caching).
virtual void pushViewInfoFactory (SO< ViewInfoFactory > newViewInfoFactory)
 Sets the a new ViewInfoFactory.
virtual void popViewInfoFactory ()
 removes the active CameraInfoFactory.
virtual SO< ViewInfoviewInfo () const
 Returns the view info for the currently active transformations.
virtual SO< CameraInfocameraInfo () const
virtual Handlerhandler (const ID &service, const ID &target) const
 Returns the camera info for the currently active transformations.
virtual Painterpainter (const ID &target) const
virtual Simplifiersimplifier (const ID &target) const
virtual void pushMonoAttribute (const ID &category, MonoAttribute *attr)
 Pushes a mono attribute to an explicitly specified stack (by category).
virtual void popMonoAttribute (const ID &category)
 Pops a mono attribute from an explicitly specified stack (by category).
virtual MonoAttributegetMonoAttribute (const ID &category) const
 Returns the top mono attribute of an explicitly specified stack (by category).
 VRS_SERIALIZABLE_CLASS_ENUM (SwitchType)
 For switch settings (ON / OFF) and for switch queries (ON / OFF / ALL).
virtual unsigned int appendPolyAttribute (const ID &category, PolyAttribute *attr, SwitchType switchSetting=Engine::ON)
 Appends the poly attribute to the poly attribute table (specified by category).
virtual void removePolyAttribute (const ID &category, PolyAttribute *attr)
 Removes the last poly attribute in the poly attribute table.
virtual void applyGlobalPolyAttributes ()
 Applies all global poly attributes before a rendering pass, using their correct transformation.
virtual void unapplyGlobalPolyAttributes ()
 Unapplies all global poly attribute after a rendering pass.
virtual unsigned int polyAttributes (const ID &category, SwitchType switchQuery=Engine::ALL) const
 Returns the number of poly attributes in the poly attribute table (specified by category).
virtual PolyAttributegetPolyAttribute (const ID &category, unsigned int i, SwitchType switchQuery=Engine::ALL) const
 Returns the poly attribute at a given position.
virtual int containsPolyAttribute (PolyAttribute *attr, SwitchType switchQuery=Engine::ALL) const
 Returns the index of a poly attribute.
virtual unsigned int findPolyAttribute (PolyAttribute *attr, SwitchType switchQuery=Engine::ALL) const
 Returns the index of a poly attribute.
virtual Iterator< SO
< PolyAttribute > > * 
newPolyAttributeIterator (const ID &category, SwitchType switchQuery=Engine::ON) const
 Returns an iterator containing poly attributes with matching switch-setting.
virtual bool getSwitch (const ID &category, unsigned int index) const
 Evaluates whether the poly attribute at a given index is switched on or off.
virtual bool getSwitch (PolyAttribute *) const
 Evaluates whether the given poly attribute is switched on or off.
void disregard (const ID &category)
 disregard attribute type for evaluation
void regard (const ID &category)
 reactivate evaluation of attribute type
bool isRegarded (const ID &category) const
 checks whether attribute evaluation of the type is enabled or not
virtual void pushShader (Shader *)
 Pushes the active shader.
virtual void popShader ()
 Pops the active shader.
virtual ShadergetShader () const
 Returns the currently active shader resp. the corresponding attribute.
virtual MonoAttributegetShaderAttribute () const
 Returns the attribute corresponding to the currently active shader.
void storeTransform (const Attribute *)
 Stores the model-transformation-matrix of an attribute during the pre traversal.
void deleteTransform (const Attribute *)
 Deletes the model-transformation-matrix of an attribute during the post traversal.
void setTransform (const SharedObj *, const Matrix &)
 low-level set modelview-transformation of an object.
void eraseTransform (const SharedObj *)
 low-level erase of the modelview-transformation of an object.
Matrix getTransform (const SharedObj *) const
 low-level get modelview-transformation of an object.
bool containsTransform (const SharedObj *) const
 low-level test modelview-transformation of an object.
virtual void pushHandler (const ID &service, const ID &target, Handler *hdl)
 Pushes a handler.
virtual void popHandler (const ID &service, const ID &target)
 Pops a handler, see pushHandler.
virtual Iterator< SO
< Technique > > * 
getTechniques () const
 Returns an iterator of all pushed techniques.
const Stack< SO< MonoAttribute > > * monoTable (const ID &category) const
 Returns the internal reference to the mono attributes hashtable.
const NonPersistentArray
< PolyAttributeEntry > * 
polyTable (const ID &category) const
 Returns the internal reference to the poly attributes hashtable.
const IDHashTable< Stack< SO
< Handler > > > * 
serviceTable (const ID &service) const
 Returns the internal reference to the handlers hashtable.
virtual void initialize ()
 Overloaded methods may install here specific handlers etc.
void callInitializers ()
 Invokes all registered initializers, see addInitializer.
CanvasgetCanvas () const
 Returns the canvas currently rendered to, may be NULL!
void pushCanvas (Canvas *canvas)
 Sets the canvas currently rendered to, internal use only! (by Canvas).
void popCanvas ()
 Removes the last set rendering canvas.

Static Public Member Functions

static bool addInitializer (Callback1< Engine * > *init)
static bool registerHandler (Handler *handler)
 Registeres a handler.
static void addPreRenderCallback (SO< RenderCallback > cb)
static bool removePreRenderCallback (SO< RenderCallback > cb)
static SO< Iterator< SO
< RenderCallback > > > 
preRenderCallbacks ()
static void addPostRenderCallback (SO< RenderCallback > cb)
static bool removePostRenderCallback (SO< RenderCallback > cb)
static SO< Iterator< SO
< RenderCallback > > > 
postRenderCallbacks ()

Protected Member Functions

virtual void finalEval (const Shape *shape)
virtual bool isFinalEvalDone () const
 checks whether techniques and active shader are already set up.

Classes

struct  PolyAttributeEntry
struct  ShaderStackEntry


Detailed Description

VRS Rendering Engine (storage for rendering configuration) An Engine (actually the current processor) takes care of the evaluation of a sequence of rendering components such as attributes, handlers, and shapes. Conceptually, it is a state-machine: it stores attributes and handlers, based on the category they belong, on stacks. It triggers automatically the appropriate handler if attributes are pushed or shapes are sent. An engine must have at least one processor which is used to process shapes and attributes. For example, the processor could be a rendering-technique which just draws each incoming shape or a ray-request which calculates intersections. The processor is set by the when evaluating the root node of the scene graph.

Member Typedef Documentation

The pre and post render callbacks are called before and after the evaluation of the scene graph.


Member Enumeration Documentation

Enumerator:
modelviewMatrix 
projectionMatrix 
textureMatrix 
colorMatrix 

Enumerator:
ON 
OFF 
ALL 


Constructor & Destructor Documentation

VRS::Engine::Engine (  ) 

virtual VRS::Engine::~Engine (  )  [virtual]


Member Function Documentation

VRS::Engine::VRS_TYPEINFO ( Engine  ,
SharedObj   
)

virtual void VRS::Engine::push ( MonoAttribute attr  )  [virtual]

Pushes a mono attribute and calls its painter, shader or simplifier.

The painter, shader, or simplifier for an mono attribute are called in every rendering pass (pre, main, and post traversal), if a matching handler is available at all.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::push ( PolyAttribute attr  )  [virtual]

Pushes a poly attribute and calls its painter or simplifier, if available.

If the poly attribute is global, its painter or simplifier is called during the pre traversal pass. Local poly attributes are applied in the main rendering passes.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::push ( Switch sw  )  [virtual]

Pushes a switch and (de)activates poly attributes accordingly.

For a category of PolyAttributes, the corresponding polyattributes can be switched on or of. Switches are not applied during pre traversal or post traversal. In main traversal, when a switch is pushed, the polyattributes that are affected by the switch are set to their new switch setting.

virtual void VRS::Engine::push ( Handler hdl  )  [virtual]

Pushes a handler.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::push ( Technique tech  )  [virtual]

Pushes a technique.

virtual void VRS::Engine::pop ( MonoAttribute attr  )  [virtual]

Pops a mono attribute and calls its painter, shader or simplifier.

The painter, shader, or simplifier for an mono attribute are called in every rendering pass.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pop ( PolyAttribute attr  )  [virtual]

Pops a poly attribute and calls its painter or simplifier, if available.

If the poly attribute is global, its painter or simplifier is called after the post traversal (see removeGlobalPolyAttributes). Local poly attributes are applied in the main rendering passes.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pop ( Switch sw  )  [virtual]

Pops a switch, setting old poly attributes switch settings again.

When popping a switch, the former switch-settings of the poly attributes are restored.

virtual void VRS::Engine::pop ( Handler hdl  )  [virtual]

Pops a handler.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pop ( Technique tech  )  [virtual]

Pops a technique.

virtual void VRS::Engine::eval ( const Shape shape  )  [virtual]

Evaluates a shape using the appropriate painter or simplifier. During the simplification process, also surface attributes and abstract rendering attributes may by pushed. When the shape is evaluated the first time by a painter or a simplifier for which isSimple() is true, techniques and shaders are considered once before further evaluation. After then, each recursive call to eval() is forwarded to finalEval(). At this stage, surface attributes and abstract rendering attributes should not anymore be pushed by simplifiers or painters anymore, since they would be ignored by techniques and shaders.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::eval ( const MonoAttribute attr,
bool  pushHint 
) [virtual]

looks for, and invokes painter, shader or simplifier for the attribute

virtual void VRS::Engine::eval ( const PolyAttribute attr,
unsigned int  index,
bool  pushHint 
) [virtual]

looks for, and invokes painter or simplifier for the attribute

virtual bool VRS::Engine::isHandledByShader ( const MonoAttribute attr  )  [virtual]

Determines whether a mono attribute is evaluated with a shader.

If a specific shading or rendering technique which is restricted to a subscenegraph can not be implemented by a single attribute painter directly, it may be implemented by a multipass algorithm. This method checks for a suitable painter first and returns false if one exists. Otherwise, if a shader is available, it returns true. Then demandsShadingPass starts managing the multipass shading algorithm. The scenething invoking this method can now enter into a limited loop until the shader does not need any more shading passes and, therefore, demandsShadingPass returns false.

virtual bool VRS::Engine::demandsShadingPass ( const MonoAttribute attr  )  [virtual]

Returns whether additional shading passes are needed, see isHandledByShader.

unsigned int VRS::Engine::shadingPass (  )  const [inline, virtual]

Reports the actual pass of a multipass shading algorithm, see isHandledByShader.

virtual void VRS::Engine::push ( Attribute attr  )  [virtual]

Dispatches the given attribute to the appropriate push-method (MonoAttrbite vs. PolyAttribute).

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pop ( Attribute attr  )  [virtual]

Dispatches the given attribute to the appropriate pop-method (MonoAttrbite vs. PolyAttribute).

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pop ( const ID id  )  [virtual]

Pops an attribute from the stack specified by its id.

In case of poly attributes, the attribute that was pushed at last is removed. -- Use this method with caution, the attributes do not not always apply to the stack one expects them to.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::setProcessor ( TechniqueProcessor  )  [virtual]

Sets the evaluation strategy used for scene graph evaluation.

virtual TechniqueProcessor* VRS::Engine::getProcessor (  )  const [virtual]

Gets the evaluation strategy used for scene graph evaluation.

VRS::Engine::VRS_SERIALIZABLE_CLASS_ENUM ( TFType   ) 

virtual void VRS::Engine::pushTf ( TFType  category = Engine::modelviewMatrix  )  [virtual]

Stores the matrix of the specified stack.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::popTf ( TFType  category = Engine::modelviewMatrix  )  [virtual]

Restores the matrix of the specified stack.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::multTf ( const Matrix matrix,
TFType  category = Engine::modelviewMatrix 
) [virtual]

Multiplies a given matrix on the current top matrix of the specified stack.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::loadTf ( const Matrix matrix,
TFType  category = Engine::modelviewMatrix 
) [virtual]

Replaces the top matrix of the specified stack.

Reimplemented in VRS::EngineGL.

virtual Matrix VRS::Engine::currentTf ( TFType  category = Engine::modelviewMatrix  )  const [virtual]

Returns the current top matrix of the specified stack.

Reimplemented in VRS::EngineGL.

virtual Matrix VRS::Engine::currentTfInv ( TFType  category = Engine::modelviewMatrix  )  const [virtual]

Returns the inverse of the current top matrix of the specified stack - uses caching!

virtual Matrix VRS::Engine::orientationTf (  )  const [virtual]

Returns the orientation matrix.

virtual Matrix VRS::Engine::orientationTfInv (  )  const [virtual]

Returns the inverted orientation matrix.

virtual void VRS::Engine::setOrientationTf ( const Matrix matrix  )  [virtual]

virtual void VRS::Engine::setOrientationTf (  )  [virtual]

Sets the orientation matrix.

virtual Matrix VRS::Engine::currentNormalizedDeviceCoordsTf (  )  const [virtual]

Returns the current normalized device coords transformation.

Reimplemented in VRS::EngineGL.

virtual Matrix VRS::Engine::currentPureProjectionTf (  )  const [virtual]

Reimplemented in VRS::EngineGL.

virtual Matrix VRS::Engine::currentPureProjectionTfInv (  )  const [virtual]

Returns the current projection matrix excluding the ndcTf (convenience method using internal caching).

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::pushViewInfoFactory ( SO< ViewInfoFactory newViewInfoFactory  )  [virtual]

Sets the a new ViewInfoFactory.

Use this function if you have to change the culling behavior (e.g. in case you are using a vertex program implementing a non-standard projection)

virtual void VRS::Engine::popViewInfoFactory (  )  [virtual]

removes the active CameraInfoFactory.

virtual SO<ViewInfo> VRS::Engine::viewInfo (  )  const [virtual]

Returns the view info for the currently active transformations.

Use a view info for culling and screen size calculations. It implements suitable culling mechanism for standard primitives.

virtual SO<CameraInfo> VRS::Engine::cameraInfo (  )  const [virtual]

virtual Handler* VRS::Engine::handler ( const ID service,
const ID target 
) const [virtual]

Returns the camera info for the currently active transformations.

Reports a handler (in particular painters and simplifiers) specified by the service id and the target id of the handler.

virtual Painter* VRS::Engine::painter ( const ID target  )  const [virtual]

Reports a handler (in particular painters and simplifiers) specified by the target id of the handler.

virtual Simplifier* VRS::Engine::simplifier ( const ID target  )  const [virtual]

Reports explicitly a simplifier specified by the target id of the simplifier.

virtual void VRS::Engine::pushMonoAttribute ( const ID category,
MonoAttribute attr 
) [virtual]

Pushes a mono attribute to an explicitly specified stack (by category).

Mono attributes of one category are mutually exclusive, i.e. only the top attribute of the category's stack is considered to be active.

Reimplemented in VRS::EngineGL.

virtual void VRS::Engine::popMonoAttribute ( const ID category  )  [virtual]

Pops a mono attribute from an explicitly specified stack (by category).

Reimplemented in VRS::EngineGL.

virtual MonoAttribute* VRS::Engine::getMonoAttribute ( const ID category  )  const [virtual]

Returns the top mono attribute of an explicitly specified stack (by category).

Reimplemented in VRS::EngineGL.

VRS::Engine::VRS_SERIALIZABLE_CLASS_ENUM ( SwitchType   ) 

For switch settings (ON / OFF) and for switch queries (ON / OFF / ALL).

ON is the setting for poly attributes that are switched on. Can be also used for queries.
OFF is the setting for poly attributes that are switched off. Can be also used for queries.
ALL is used to query of the position of polyattributes in the poly attribute table. This is the same as when adding ON and OFF results. Should be used when the index is used for direct access to that table.

virtual unsigned int VRS::Engine::appendPolyAttribute ( const ID category,
PolyAttribute attr,
SwitchType  switchSetting = Engine::ON 
) [virtual]

Appends the poly attribute to the poly attribute table (specified by category).

For a category, a number of poly attributes is considered to active simultaneously. Each poly attribute is given an index which can be used to to identify it, and which is the return value of the method.

virtual void VRS::Engine::removePolyAttribute ( const ID category,
PolyAttribute attr 
) [virtual]

Removes the last poly attribute in the poly attribute table.

virtual void VRS::Engine::applyGlobalPolyAttributes (  )  [virtual]

Applies all global poly attributes before a rendering pass, using their correct transformation.

It is allowed to invoke this method more than once in a rendering pass, but only the first call will actually evaluate the global poly attributes.

virtual void VRS::Engine::unapplyGlobalPolyAttributes (  )  [virtual]

Unapplies all global poly attribute after a rendering pass.

Each call of applyGlobalPolyAttributes() should be matched by a call of this method.

virtual unsigned int VRS::Engine::polyAttributes ( const ID category,
SwitchType  switchQuery = Engine::ALL 
) const [virtual]

Returns the number of poly attributes in the poly attribute table (specified by category).

When switchQuery is ALL, all poly attributes (both switched on and off) are counted. Else only the number of switched on resp. switched off poly attributes is returned.

virtual PolyAttribute* VRS::Engine::getPolyAttribute ( const ID category,
unsigned int  i,
SwitchType  switchQuery = Engine::ALL 
) const [virtual]

Returns the poly attribute at a given position.

Returns the poly attribute of the polyattribute table (specified by category) at a given position that have the matching switch setting. Asserts if there are fewer matching poly attributes than queried by the index.

virtual int VRS::Engine::containsPolyAttribute ( PolyAttribute attr,
SwitchType  switchQuery = Engine::ALL 
) const [virtual]

Returns the index of a poly attribute.

returns -1 if the poly attribute is not found in the polyattribute table

virtual unsigned int VRS::Engine::findPolyAttribute ( PolyAttribute attr,
SwitchType  switchQuery = Engine::ALL 
) const [virtual]

Returns the index of a poly attribute.

Asserts if the poly attribute is not found in the poly attribute table

virtual Iterator<SO<PolyAttribute> >* VRS::Engine::newPolyAttributeIterator ( const ID category,
SwitchType  switchQuery = Engine::ON 
) const [virtual]

Returns an iterator containing poly attributes with matching switch-setting.

The default query setting for this method is ON!

virtual bool VRS::Engine::getSwitch ( const ID category,
unsigned int  index 
) const [virtual]

Evaluates whether the poly attribute at a given index is switched on or off.

virtual bool VRS::Engine::getSwitch ( PolyAttribute  )  const [virtual]

Evaluates whether the given poly attribute is switched on or off.

void VRS::Engine::disregard ( const ID category  ) 

disregard attribute type for evaluation

Attribute categories can be excluded from evaluation. This is mainly used by techniques that must ensure that in a certain rendering pass no changes of some type are done.

void VRS::Engine::regard ( const ID category  ) 

reactivate evaluation of attribute type

bool VRS::Engine::isRegarded ( const ID category  )  const

checks whether attribute evaluation of the type is enabled or not

virtual void VRS::Engine::pushShader ( Shader  )  [virtual]

Pushes the active shader.

This is only used for the DisableShadingPainter, and should not be called from an application.

virtual void VRS::Engine::popShader (  )  [virtual]

Pops the active shader.

This is only used for the DisableShadingPainter, and should not be called from an application.

virtual Shader* VRS::Engine::getShader (  )  const [virtual]

Returns the currently active shader resp. the corresponding attribute.

Asserts if internal stacks that store these data are empty. Do not call this methods from an application.

virtual MonoAttribute* VRS::Engine::getShaderAttribute (  )  const [virtual]

Returns the attribute corresponding to the currently active shader.

Asserts if internal stacks that store these data are empty. Do not call this methods from an application.

void VRS::Engine::storeTransform ( const Attribute  ) 

Stores the model-transformation-matrix of an attribute during the pre traversal.

void VRS::Engine::deleteTransform ( const Attribute  ) 

Deletes the model-transformation-matrix of an attribute during the post traversal.

void VRS::Engine::setTransform ( const SharedObj ,
const Matrix  
)

low-level set modelview-transformation of an object.

void VRS::Engine::eraseTransform ( const SharedObj  ) 

low-level erase of the modelview-transformation of an object.

Matrix VRS::Engine::getTransform ( const SharedObj  )  const

low-level get modelview-transformation of an object.

bool VRS::Engine::containsTransform ( const SharedObj  )  const

low-level test modelview-transformation of an object.

virtual void VRS::Engine::pushHandler ( const ID service,
const ID target,
Handler hdl 
) [virtual]

Pushes a handler.

Handlers are two-fold distinguish: a handler provides a certain type of service (e.g., simplifier) and operates on a certain type of objects (e.g., spheres).

virtual void VRS::Engine::popHandler ( const ID service,
const ID target 
) [virtual]

Pops a handler, see pushHandler.

virtual Iterator<SO<Technique> >* VRS::Engine::getTechniques (  )  const [virtual]

Returns an iterator of all pushed techniques.

const Stack< SO<MonoAttribute> >* VRS::Engine::monoTable ( const ID category  )  const

Returns the internal reference to the mono attributes hashtable.

Should not be called by an application.

const NonPersistentArray<PolyAttributeEntry>* VRS::Engine::polyTable ( const ID category  )  const

Returns the internal reference to the poly attributes hashtable.

Should not be called by an application.

const IDHashTable< Stack< SO<Handler> > >* VRS::Engine::serviceTable ( const ID service  )  const

Returns the internal reference to the handlers hashtable.

Should not be called by an application.

virtual void VRS::Engine::initialize (  )  [virtual]

Overloaded methods may install here specific handlers etc.

Reimplemented in VRS::EngineGL.

static bool VRS::Engine::addInitializer ( Callback1< Engine * > *  init  )  [static]

Adds an initialization function that is executed at the end of the constructor whenever a new engine is created. Use this function to register new handlers that are provided by add-ons. The return value is a dummy that makes it convenient to call this function from static initializers.

void VRS::Engine::callInitializers (  ) 

Invokes all registered initializers, see addInitializer.

Canvas* VRS::Engine::getCanvas (  )  const

Returns the canvas currently rendered to, may be NULL!

void VRS::Engine::pushCanvas ( Canvas canvas  ) 

Sets the canvas currently rendered to, internal use only! (by Canvas).

void VRS::Engine::popCanvas (  ) 

Removes the last set rendering canvas.

static bool VRS::Engine::registerHandler ( Handler handler  )  [static]

Registeres a handler.

Reimplemented in VRS::EngineGL.

static void VRS::Engine::addPreRenderCallback ( SO< RenderCallback cb  )  [static]

static bool VRS::Engine::removePreRenderCallback ( SO< RenderCallback cb  )  [static]

static SO<Iterator<SO<RenderCallback> > > VRS::Engine::preRenderCallbacks (  )  [static]

static void VRS::Engine::addPostRenderCallback ( SO< RenderCallback cb  )  [static]

static bool VRS::Engine::removePostRenderCallback ( SO< RenderCallback cb  )  [static]

static SO<Iterator<SO<RenderCallback> > > VRS::Engine::postRenderCallbacks (  )  [static]

virtual void VRS::Engine::finalEval ( const Shape shape  )  [protected, virtual]

Evaluates the shapes after techniques and shaders have been set up, using the appropriate painter or simplifier.

virtual bool VRS::Engine::isFinalEvalDone (  )  const [protected, virtual]

checks whether techniques and active shader are already set up.


The documentation for this class was generated from the following file:

Generated on Sun May 19 06:00:33 2013 by Doxygen 1.5.6
© 2001-2010 Hasso-Plattner-Institut | Impressum | Contact