Visualization Library 2.0.0-b3

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 | List of all members
vl::ActorEventCallback Class Referenceabstract

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

#include <Actor.hpp>

+ Inheritance diagram for vl::ActorEventCallback:

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. More...
 
virtual void onActorDelete (Actor *actor)=0
 Event notifying that an Actor is being deleted. More...
 
void setEnabled (bool enabled)
 
bool isEnabled () const
 
- Public Member Functions inherited from vl::Object
 Object ()
 Constructor. More...
 
 Object (const Object &other)
 Copy constructor: copies the name, ref count mutex and user data. More...
 
Objectoperator= (const Object &other)
 Copy operator: copies the object's name, ref count mutex and user data. More...
 
const std::string & objectName () const
 The name of the object, by default set to the object's class name. More...
 
void setObjectName (const char *name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setObjectName (const std::string &name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setRefCountMutex (IMutex *mutex)
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
IMutexrefCountMutex ()
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
const IMutexrefCountMutex () const
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
int referenceCount () const
 Returns the number of references of an object. More...
 
void incReference () const
 Increments the reference count of an object. More...
 
void decReference ()
 Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More...
 
void setAutomaticDelete (bool autodel_on)
 If set to true the Object is deleted when its reference count reaches 0. More...
 
bool automaticDelete () const
 If set to true the Object is deleted when its reference count reaches 0. More...
 
template<class T >
T * as ()
 Casts an Object to the specified class. More...
 
template<class T >
const T * as () const
 Casts an Object to the specified class. More...
 

Protected Attributes

bool mEnabled
 
- Protected Attributes inherited from vl::Object
std::string mObjectName
 
IMutexmRefCountMutex
 
int mReferenceCount
 
bool mAutomaticDelete
 

Additional Inherited Members

- Protected Member Functions inherited from vl::Object
virtual ~Object ()
 

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

◆ ActorEventCallback()

vl::ActorEventCallback::ActorEventCallback ( )
inline

Definition at line 80 of file Actor.hpp.

Member Function Documentation

◆ isEnabled()

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

Definition at line 96 of file Actor.hpp.

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

◆ onActorDelete()

virtual void vl::ActorEventCallback::onActorDelete ( Actor actor)
pure virtual

◆ onActorRenderStarted()

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::SlicedVolume, and vl::RaycastVolume.

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

◆ setEnabled()

void vl::ActorEventCallback::setEnabled ( bool  enabled)
inline

Definition at line 95 of file Actor.hpp.

Member Data Documentation

◆ mEnabled

bool vl::ActorEventCallback::mEnabled
protected

Definition at line 99 of file Actor.hpp.


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