Visualization Library v1.0.3

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Public Member Functions | Protected Attributes

vl::ActorEventCallback Class Reference

The ActorEventCallback class defines a callback object to react to Actor-related events. More...

#include <Actor.hpp>

Inheritance diagram for vl::ActorEventCallback:
vl::Object vl::DepthSortCallback vl::EdgeUpdateCallback vl::MorphingCallback vl::RaycastVolume vl::SlicedVolume

List of all members.

Public Member Functions

 ActorEventCallback ()
virtual void onActorRenderStarted (Actor *actor, real frame_clock, const Camera *cam, Renderable *renderable, const Shader *shader, int pass)=0
 Event generated just before an Actor is rendered but after the render states are ready and setup.
virtual void onActorDelete (Actor *actor)=0
 Event notifying that an Actor is being deleted.
void setEnabled (bool enabled)
bool isEnabled () const

Protected Attributes

bool mEnabled

Detailed Description

The ActorEventCallback class defines a callback object to react to Actor-related events.

Usually an ActorEventCallback is used to perform a per-Actor operation like changing some attributes of the Actor itself or of the associated Renderable/Geometry. For example the MorphingCallback class is used to aid the rendering of a MorphingCallback, while the DepthSortCallback class is used to perform per-Actor polygon sorting.

Note:
You can manipulate Uniforms within this class, for more information see vl::GLSLProgram documentation. If you want to update the state of a Uniform variable from here you can simply call glUniform* since the GLSLProgram (if any) has been already activated by the time this function is called. You can also modify the Actor's uniforms using the Actor's uniform manipulation routines Actor::setUniform() Actor::getUniform() etc.

You can test whether the shader has a GLSLProgram bound to it or not by simply testing shader->glslProgram() != NULL. If you update a uniform you must ensure that all the Actor[s] using the same GLSLProgram appropriately setup such uniform.

Note:
An ActorEventCallback::onActorRenderStarted() is called once for every rendering pass, ie. if an Actor's Effect specifies three rendering passes the Actor callbacks will be called three times, once for each rendering pass / shader.
See also:

Definition at line 75 of file Actor.hpp.


Constructor & Destructor Documentation

vl::ActorEventCallback::ActorEventCallback (  ) [inline]

Definition at line 80 of file Actor.hpp.


Member Function Documentation

virtual void vl::ActorEventCallback::onActorRenderStarted ( Actor actor,
real  frame_clock,
const Camera cam,
Renderable renderable,
const Shader shader,
int  pass 
) [pure virtual]

Event generated just before an Actor is rendered but after the render states are ready and setup.

Reimplement to react to this event.

Parameters:
actorThe Actor bound to this rendering callback.
frame_clockThe current rendering frame time, usually used for animation purposes.
camThe camera used for the current rendering.
renderableThe currently selected Actor LOD.
shaderThe currently active Shader.
passThe current Actor[s] rendering pass.

Implemented in vl::DepthSortCallback, vl::EdgeUpdateCallback, vl::MorphingCallback, vl::RaycastVolume, and vl::SlicedVolume.

Referenced by vl::Actor::dispatchOnActorRenderStarted().

virtual void vl::ActorEventCallback::onActorDelete ( Actor actor ) [pure virtual]
void vl::ActorEventCallback::setEnabled ( bool  enabled ) [inline]

Definition at line 95 of file Actor.hpp.

bool vl::ActorEventCallback::isEnabled (  ) const [inline]

Definition at line 97 of file Actor.hpp.

Referenced by vl::Actor::dispatchOnActorRenderStarted().


Member Data Documentation

Definition at line 100 of file Actor.hpp.


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

Visualization Library v1.0.3 Reference Documentation
Copyright Michele Bosi. All rights reserved.
Updated on Tue Feb 7 2017 00:55:08.
Permission is granted to use this page to write and publish articles regarding Visualization Library.