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.

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.

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.

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.