Graphite
Version 3
An experimental 3D geometry processing program
|
Base class for Grob shader. More...
#include <OGF/scene_graph_gfx/shaders/shader.h>
Public Member Functions | |
Shader (Grob *grob) | |
Shader constructor. More... | |
~Shader () override | |
Shader destructor. | |
virtual void | draw () |
Draws the Grob. More... | |
virtual void | pick_object (index_t object_id)=0 |
Draws the Grob in picking mode. More... | |
virtual void | blink () |
Draws the current object several times, while chaning the value of one graphic attribute (e.g. mesh on/off), to draw attentin towards it. More... | |
virtual void | update () |
Redraws the scene. More... | |
bool | get_multi () const |
Tests whether multi shader mode is active. More... | |
Grob * | get_grob () const |
Gets the grob. More... | |
GLdouble * | latest_modelview () |
GLdouble * | latest_project () |
GLint * | latest_viewport () |
bool | dark_mode () const |
Tests whether dark mode is set. More... | |
Public Member Functions inherited from OGF::Node | |
Node (Node *parent=nullptr) | |
Node constructor. More... | |
virtual | ~Node () |
Node destructor. | |
virtual void | add_child (Node *child) |
Adds a child to this Node. More... | |
virtual void | remove_child (Node *child) |
Removes a child from this Node. \parma[in] child a pointer to the child to be removed. | |
Node * | get_parent () const |
Gets the parent. More... | |
Public Member Functions inherited from OGF::Object | |
Object (bool transient=false) | |
Object constructor. More... | |
virtual | ~Object () |
Object destructor. | |
virtual MetaClass * | meta_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 Connection * | connect_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... | |
MetaClass * | get_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 set_multi(bool value) | |
Public Attributes inherited from OGF::Node | |
__pad0__: Node* ith_child(index_t i) const { ogf_assert(i < get_nb_children()) | |
return | children_ [i] |
__pad1__: size_t get_nb_children() const { return children_.size() | |
Public Attributes inherited from OGF::Object | |
__pad0__: virtual index_t get_nb_elements() const | |
__pad1__: bool equals(const Object* other) const | |
Protected Member Functions | |
Texture * | create_texture_from_file (const std::string &file_name, GLint filtering=GL_LINEAR, GLint wrapping=GL_CLAMP_TO_EDGE) |
Creates a texture from an image file. More... | |
Texture * | create_texture_from_colormap_name (const std::string &name, GLint filtering=GL_LINEAR, GLint wrapping=GL_CLAMP_TO_EDGE) |
Creates a texture from a colormap by name. More... | |
Grob * | grob () const |
Gets the Grob. More... | |
Protected Member Functions inherited from OGF::Node | |
void | swap_children (Node *n1, Node *n2) |
Swaps two children by indices. 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... | |
Protected Attributes | |
bool | no_grob_update_ |
If true, then each shader update does not trigger a grob update. More... | |
Friends | |
class | ShaderManager |
Additional Inherited Members | |
Static Public Member Functions inherited from OGF::Object | |
static Object * | id_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... | |
Base class for Grob shader.
A Grob shader is responsible for drawing the object onto the screen and picking elements of the object.
OGF::Shader::Shader | ( | Grob * | grob | ) |
|
virtual |
Draws the current object several times, while chaning the value of one graphic attribute (e.g. mesh on/off), to draw attentin towards it.
This function is used if object highlighting is activated.
Reimplemented in OGF::PlainVoxelGrobShader, OGF::VoxelGrobShader, OGF::PlainMeshGrobShader, OGF::MeshGrobShader, OGF::PlainLuaGrobShader, and OGF::LuaGrobShader.
|
protected |
Creates a texture from a colormap by name.
[in] | name | name of the colormap |
|
protected |
Creates a texture from an image file.
[in] | file_name | the image file name |
[in] | filtering | the OpenGL filtering mode |
[in] | wrapping | the wrapping mode for texture coordinates |
bool OGF::Shader::dark_mode | ( | ) | const |
Tests whether dark mode is set.
true | if gui colors are rather dark |
false | otherwise |
|
virtual |
Draws the Grob.
The Grob is the one that was passed to the constructor of this Shader.
Reimplemented in OGF::PlainVoxelGrobShader, OGF::VoxelGrobShader, OGF::PDBMeshGrobShader, OGF::ParamMeshGrobShader, OGF::ExplodedViewMeshGrobShader, OGF::PlainMeshGrobShader, OGF::MeshGrobShader, OGF::PlainLuaGrobShader, and OGF::LuaGrobShader.
|
inline |
bool OGF::Shader::get_multi | ( | ) | const |
Tests whether multi shader mode is active.
In multi shader mode, several shaders can be active for the same object, i.e. all the shaders that have multi mode activated are drawn. For instance, this makes it possible to display an object with a scalar attribute painted on it and several vector attributes superimposed.
true | if multi shader mode is active |
false | otherwise |
|
inlineprotected |
|
pure virtual |
Draws the Grob in picking mode.
In picking mode, drawing is replaced by filling the pixel values with 32 bits ids, while ZBuffer is still activated. Thus, after drawing the whole scene, one can find for a given pixel which object is visible by reading the 32 bit id encoded in the pixel color.
[in] | object_id | all the pixels covered by the object will be assigned this value |
Implemented in OGF::PlainVoxelGrobShader, OGF::VoxelGrobShader, OGF::PlainMeshGrobShader, OGF::MeshGrobShader, OGF::PlainLuaGrobShader, and OGF::LuaGrobShader.
|
virtual |
Redraws the scene.
This function is called whenever the object changes or its shader attributes change.
Reimplemented in OGF::PlainVoxelGrobShader, OGF::PDBMeshGrobShader, OGF::ParamMeshGrobShader, and OGF::PlainLuaGrobShader.
|
protected |