Graphite  Version 3
An experimental 3D geometry processing program
OGF::SceneGraphShaderManager Class Reference

Manages the shaders and full screen effects for the entire SceneGraph. More...

#include <OGF/scene_graph_gfx/shaders/scene_graph_shader_manager.h>

Inheritance diagram for OGF::SceneGraphShaderManager:
OGF::Object GEO::Counted

Public Member Functions

 SceneGraphShaderManager ()
 SceneGraphShaderManager constructor.
 
 ~SceneGraphShaderManager () override
 SceneGraphShaderManager destructor.
 
void get_grob_shader (Grob *grob, std::string &classname, ArgList &args, bool pointers=true)
 Gets the Shader associated with a Grob and its properties. More...
 
void set_grob_shader (Grob *grob, const std::string &classname, const ArgList &args)
 Sets the Shader associated with a Grob and its properties. More...
 
Interpreterinterpreter ()
 Gets the main Interpreter. More...
 
void current_object (const std::string &value)
 Notify this SceneGraphShaderManager that the current object changed. More...
 
void shader (const std::string &value)
 Change the shader associated with the current object. More...
 
void draw ()
 Draws the SceneGraph using the shaders associated with each object and the FullScreenEffect if one was specified.
 
void pick_object ()
 Draws the SceneGraph using the picking shader, that will encode the id of each object in the backbuffer.
 
void apply_to_scene_graph (bool visible_only=false)
 Copies the properties of the current Shader to all other Shaders in the SceneGraph associated with objects that have the same class as the current object. More...
 
Shadercurrent ()
 Gets the shader of the current object. More...
 
FullScreenEffectcurrent_effect ()
 Gets the current FullScreenEffect. More...
 
void full_screen_effect (const std::string &value)
 Sets the FullScreenEffect. More...
 
ShaderManagerresolve_shader_manager (Grob *grob)
 Finds the ShaderManager associated with a given Grob. More...
 
 update_focus ()
 
bool get_auto_focus () const
 Tests whether autofocus is active. More...
 
void set_highlight_selected (bool value)
 Sets highlighting mode. More...
 
bool get_highlight_selected () const
 Tests whether highlighting mode is active. More...
 
void set_draw_selected_only (bool value)
 Sets whether only the selected object should be drawn. More...
 
bool get_draw_selected_only () const
 Tests whether only the selected object should be drawn. More...
 
void set_effect (const FullScreenEffectName &effect)
 Sets the full screen effect. More...
 
const FullScreenEffectNameget_effect () const
 Gets the full screen effect. More...
 
const mat4get_focus_matrix () const
 Gets the focus matrix. More...
 
- Public Member Functions inherited from OGF::Object
 Object (bool transient=false)
 Object constructor. More...
 
virtual ~Object ()
 Object destructor.
 
virtual MetaClassmeta_class () const
 Gets the meta class. More...
 
virtual void set_meta_class (MetaClass *mclass)
 Sets the meta class. More...
 
unsigned int id () const
 Gets the identifier of this object. More...
 
std::string string_id () const
 Gets the unique string identifier. More...
 
bool has_method (const std::string &method_name) const
 Tests whether a method is defined. More...
 
virtual bool invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val)
 Invokes a method by method name and argument list, and gets the return value. More...
 
bool invoke_method (const std::string &method_name, const ArgList &args)
 Invokes a method by method name and argument list. More...
 
bool invoke_method (const std::string &method_name)
 Invokes a method by method name. More...
 
bool has_property (const std::string &prop_name) const
 Tests whether a property is defined. More...
 
virtual bool get_property (const std::string &prop_name, std::string &prop_value) const
 Gets a property. More...
 
virtual Connectionconnect_signal_to_slot (const std::string &signal_name, Object *to, const std::string &slot_name)
 Connects a signal with a slot of another object. More...
 
virtual void add_connection (Connection *connection)
 Adds a connection to this object. More...
 
virtual void remove_connection (Connection *connection)
 Removes a connection to this object. More...
 
virtual void get_element (index_t i, Any &value) const
 Gets an element by index. More...
 
virtual void set_element (index_t i, const Any &value)
 Sets an element by index. More...
 
virtual void search (const std::string &needle, const std::string &path="")
 Displays the names of all objects that contain a substring. More...
 
bool get_signals_enabled () const
 Tests wheter signals are enabled. More...
 
void set_signals_enabled (bool value)
 Enables or disables signals. More...
 
bool get_slots_enabled () const
 Tests wheter slots are enabled. More...
 
void set_slots_enabled (bool value)
 Enables or disables slots. More...
 
MetaClassget_meta_class () const
 Gets the meta class. More...
 
std::string get_string_id () const
 Gets the unique string identifier. More...
 
virtual std::string get_doc () const
 Gets the documentation. More...
 
virtual Sign compare (const Object *other) const
 Compares this object with another one. More...
 
virtual bool is_a (const MetaType *type) const
 Tests whether this object inherits a given type. More...
 
void disconnect ()
 Removes all connections from signals of this objects. More...
 
void enable_signals ()
 Enables signals.
 
void disable_signals ()
 Disables signals.
 
void enable_slots ()
 Enables slots.
 
void disable_slots ()
 Disables slots.
 
void set_properties (const ArgList &args)
 Sets several properties in a single call. More...
 
virtual bool set_property (const std::string &name, const std::string &value)
 Sets an individual property. More...
 
void help () const
 Displays some help about this object. More...
 
virtual bool set_property (const std::string &name, const Any &value)
 Sets an individual property. More...
 
virtual bool get_property (const std::string &prop_name, Any &prop_value) const
 Gets a property. More...
 
- Public Member Functions inherited from GEO::Counted
void ref () const
 Increments the reference count. More...
 
void unref () const
 Decrements the reference count. More...
 
bool is_shared () const
 Check if the object is shared. More...
 
int nb_refs () const
 Gets the number of references that point to this object. More...
 

Public Attributes

 __pad0__: void update_focus()
 
gom_signals __pad1__: void focus_changed(const mat4& value)
 
 __pad2__: void set_auto_focus(bool value) { auto_focus_ = value
 
- Public Attributes inherited from OGF::Object
 __pad0__: virtual index_t get_nb_elements() const
 
 __pad1__: bool equals(const Object* other) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OGF::Object
static Objectid_to_object (unsigned int id)
 Gets an object from a unique object id. More...
 
- Static Public Member Functions inherited from GEO::Counted
static void ref (const Counted *counted)
 Increments the reference count. More...
 
static void unref (const Counted *counted)
 Decrements the reference count. More...
 
- Protected Member Functions inherited from OGF::Object
virtual bool emit_signal (const std::string &signal_name, const ArgList &args, bool called_from_slot=false)
 Emits a signal and calls the slots it is connected to. More...
 
- Protected Member Functions inherited from GEO::Counted
 Counted ()
 Creates a reference counted object. More...
 
virtual ~Counted ()
 Destroys a reference counted object. More...
 

Detailed Description

Manages the shaders and full screen effects for the entire SceneGraph.

Definition at line 62 of file scene_graph_shader_manager.h.

Member Function Documentation

◆ apply_to_scene_graph()

void OGF::SceneGraphShaderManager::apply_to_scene_graph ( bool  visible_only = false)

Copies the properties of the current Shader to all other Shaders in the SceneGraph associated with objects that have the same class as the current object.

Parameters
[in]visible_onlyif set, copies the properties of the current shader only to objects that are visible.

◆ current()

Shader* OGF::SceneGraphShaderManager::current ( )

Gets the shader of the current object.

Returns
a pointer to the Shader of the current object

◆ current_effect()

FullScreenEffect* OGF::SceneGraphShaderManager::current_effect ( )

Gets the current FullScreenEffect.

Returns
a pointer to the current FullScreenEffect.

◆ current_object()

void OGF::SceneGraphShaderManager::current_object ( const std::string &  value)

Notify this SceneGraphShaderManager that the current object changed.

Parameters
[in]valuename of the new current object

◆ full_screen_effect()

void OGF::SceneGraphShaderManager::full_screen_effect ( const std::string &  value)

Sets the FullScreenEffect.

Parameters
[in]valuethe user name for the FullScreenEffect

◆ get_auto_focus()

bool OGF::SceneGraphShaderManager::get_auto_focus ( ) const
inline

Tests whether autofocus is active.

In autofocus mode, the focus matrix adapts the camera to display the current object.

Return values
trueif autofocus is active
falseotherwise

Definition at line 208 of file scene_graph_shader_manager.h.

◆ get_draw_selected_only()

bool OGF::SceneGraphShaderManager::get_draw_selected_only ( ) const
inline

Tests whether only the selected object should be drawn.

Return values
trueif only the selected object is drawn
falseif the whole scene graph is drawn

Definition at line 244 of file scene_graph_shader_manager.h.

◆ get_effect()

const FullScreenEffectName& OGF::SceneGraphShaderManager::get_effect ( ) const

Gets the full screen effect.

Returns
the user effect name.

◆ get_focus_matrix()

const mat4& OGF::SceneGraphShaderManager::get_focus_matrix ( ) const
inline

Gets the focus matrix.

The focus matrix corresponds to the transform to be applied to display the current object when autofocus is set.

Returns
a const reference to the focus matrix.

Definition at line 267 of file scene_graph_shader_manager.h.

◆ get_grob_shader()

void OGF::SceneGraphShaderManager::get_grob_shader ( Grob grob,
std::string &  classname,
ArgList args,
bool  pointers = true 
)

Gets the Shader associated with a Grob and its properties.

Parameters
[in]groba pointer to the Grob
[out]classnameclass name of the Shader
[out]argsthe properties of the Shader
[in]pointersif true, gets the properties with pointer types, else ignore them

◆ get_highlight_selected()

bool OGF::SceneGraphShaderManager::get_highlight_selected ( ) const
inline

Tests whether highlighting mode is active.

In highlighting mode, the selected object blinks each time it changes.

Return values
trueif highlighting mode is active
falseotherwise

Definition at line 228 of file scene_graph_shader_manager.h.

◆ interpreter()

Interpreter* OGF::SceneGraphShaderManager::interpreter ( )

Gets the main Interpreter.

Returns
a pointer to the main Interpreter.

◆ resolve_shader_manager()

ShaderManager* OGF::SceneGraphShaderManager::resolve_shader_manager ( Grob grob)

Finds the ShaderManager associated with a given Grob.

Parameters
[in]groba pointer to the Grob
Returns
a pointer to the ShaderManager

◆ set_draw_selected_only()

void OGF::SceneGraphShaderManager::set_draw_selected_only ( bool  value)

Sets whether only the selected object should be drawn.

Parameters
[in]valuetrue if only the selected object is drawn, false if the whole scene graph is drawn

◆ set_effect()

void OGF::SceneGraphShaderManager::set_effect ( const FullScreenEffectName effect)

Sets the full screen effect.

Parameters
[in]effectthe user effect name.

◆ set_grob_shader()

void OGF::SceneGraphShaderManager::set_grob_shader ( Grob grob,
const std::string &  classname,
const ArgList args 
)

Sets the Shader associated with a Grob and its properties.

Parameters
[in]groba pointer to the Grob
[in]classnameclass name of the Shader
[in]argsthe properties of the Shader

◆ set_highlight_selected()

void OGF::SceneGraphShaderManager::set_highlight_selected ( bool  value)

Sets highlighting mode.

In highlighting mode, the selected object blinks each time it changes.

Parameters
[in]valuetrue if highlighting mode should be activated, false otherwise

◆ shader()

void OGF::SceneGraphShaderManager::shader ( const std::string &  value)

Change the shader associated with the current object.

Parameters
[in]valuethe shader user name

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