Graphite
Version 3
An experimental 3D geometry processing program
|
Base class for all 3D Graphite objects. More...
#include <OGF/scene_graph/grob/grob.h>
Public Member Functions | |
Grob (CompositeGrob *parent) | |
Grob constructor. More... | |
~Grob () override | |
Grob destructor. | |
const std::string & | name () const |
Gets the name of this Grob. More... | |
virtual Box3d | bbox () const =0 |
Gets the bounding box. More... | |
virtual Box3d | world_bbox () const |
Gets the bounding box in world coordinates. More... | |
virtual bool | is_serializable () const |
Tests whether this Grob can be serialized in GeoFile. More... | |
virtual bool | serialize_read (InputGraphiteFile &geofile) |
Reads this Grob from a GeoFile. More... | |
virtual bool | serialize_write (OutputGraphiteFile &geofile) |
Writes this Grob into a stream. More... | |
void | set_shader (const std::string &value) |
Changes the current shader of this Grob. More... | |
void | get_shader_and_shader_properties (std::string &classname, ArgList &properties, bool pointers=true) |
Gets the classname of the shader and its properties. More... | |
void | set_shader_and_shader_properties (const std::string &classname, const ArgList &properties) |
Sets the shader and its properties. More... | |
ArgList & | attributes () |
Gets the attributes associated with this Grob. More... | |
const ArgList & | attributes () const |
Gets the attributes associated with this Grob. More... | |
bool | dirty () const |
Gets the dirty flag. More... | |
void | up_to_date () |
Tests whether this object is up to date. More... | |
bool | graphics_are_locked () const |
Tests whether this VoxelGrob is locked for graphics display. More... | |
void | lock_graphics () |
Locks graphics for this VoxelGrob. More... | |
void | unlock_graphics () |
Unlocks graphics for this VoxelGrob. More... | |
virtual Interpreter * | interpreter () |
Gets a pointer to the main Interpreter. More... | |
virtual void | redraw () |
Triggers update events and redraws the scene. More... | |
SceneGraph * | scene_graph () const |
Gets the SceneGraph. More... | |
virtual bool | load (const FileName &value) |
Replaces this Grob with the contents of a file. More... | |
virtual bool | save (const NewFileName &value) |
Saves this Grob to a file. More... | |
virtual bool | append (const FileName &value) |
Appends the content of the specified file to this Grob. More... | |
virtual void | clear () |
Clears this Grob. | |
virtual void | rename (const std::string &value) |
Renames this Grob. More... | |
virtual Grob * | duplicate (SceneGraph *sg) |
Duplicates this Grob. More... | |
virtual Object * | query_interface (const std::string &name) |
Creates an Interface object connected to this Grob. More... | |
index_t | nb_grob_attributes () const |
gets the number of grob attributes More... | |
const std::string & | ith_grob_attribute_name (index_t i) const |
gets the name of a grob attribute More... | |
std::string | ith_grob_attribute_value (index_t i) const |
gets the value of a grob attribute More... | |
void | set_grob_attribute (const std::string &name, const std::string &value) |
sets the value of a grob attribute More... | |
void | set_filename (const std::string &value) |
Sets the name of this Grob. More... | |
const std::string & | get_filename () const |
Gets the filename of this Grob. More... | |
bool | get_visible () const |
Tests whether this Grob is visible. More... | |
void | set_visible (bool value) |
Sets the visibility flag of this Grob. More... | |
Object * | get_shader () const |
Gets the shader associated with this Grob. More... | |
Object * | get_shader_manager () const |
Gets the ShaderManager associated with this Grob. More... | |
void | set_obj_to_world_transform (const mat4 &value) |
Sets the object to world transform. More... | |
const mat4 & | get_obj_to_world_transform () const |
Gets the object to world transform. 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... | |
Static Public Member Functions | |
static Grob * | find (SceneGraph *sg, const std::string &name) |
Finds a Grob by name. More... | |
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... | |
Public Attributes | |
__pad0__: virtual void update() | |
gom_signals | __pad1__: virtual void value_changed(Grob* value) |
__pad2__: const std::string& get_name() const { return name_ | |
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 | |
void | initialize_name (const std::string &name) |
Initializes the name of this Grob. More... | |
void | set_shader_manager (Object *s) |
Sets the ShaderManager associated with this 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 | |
std::string | name_ |
std::string | filename_ |
bool | visible_ |
SceneGraph * | scene_graph_ |
mat4 | obj_to_world_ |
Object_var | shader_manager_ |
ArgList | grob_attributes_ |
bool | dirty_ |
index_t | nb_graphics_locks_ |
Friends | |
class | SceneGraph |
class | SceneGraphShaderManager |
class | ShaderManager |
OGF::Grob::Grob | ( | CompositeGrob * | parent | ) |
Grob constructor.
[in] | parent | a pointer to the CompositeGrob this Grob belongs to (i.e., the SceneGraph) |
|
virtual |
Appends the content of the specified file to this Grob.
[in] | value | the name of the file |
true | on success |
false | otherwise |
Reimplemented in OGF::MeshGrob.
|
inline |
|
inline |
|
pure virtual |
Gets the bounding box.
Implemented in OGF::VoxelGrob, OGF::CompositeGrob, OGF::MeshGrob, and OGF::LuaGrob.
|
inline |
|
virtual |
Duplicates this Grob.
The newly created Grob has the same name as the current one, with "_copy" appended.
Reimplemented in OGF::VoxelGrob, OGF::MeshGrob, and OGF::LuaGrob.
|
static |
Finds a Grob by name.
[in] | sg | a pointer to the SceneGraph |
[in] | name | the name |
name
in the SceneGraph sg
if it exists, or nil otherwise.
|
inline |
|
inline |
Object* OGF::Grob::get_shader | ( | ) | const |
void OGF::Grob::get_shader_and_shader_properties | ( | std::string & | classname, |
ArgList & | properties, | ||
bool | pointers = true |
||
) |
Gets the classname of the shader and its properties.
Ignored in non-graphic mode
[out] | classname | the classname of the current shader |
[out] | properties | the properties of the current shader |
[in] | pointers | if set, get attributes with pointer types, else ignore them |
|
inline |
Gets the ShaderManager associated with this Grob.
bool OGF::Grob::get_visible | ( | ) | const |
|
inline |
|
protected |
Initializes the name of this Grob.
[in] | name | the new name for this Grob |
Tests if there is already a Grob with the same name in the SceneGraph, and generates a unique name if this was the case.
|
virtual |
Gets a pointer to the main Interpreter.
Reimplemented in OGF::SceneGraph.
|
virtual |
Tests whether this Grob can be serialized in GeoFile.
true | if this Grob is serializable |
false | otherwise |
Reimplemented in OGF::VoxelGrob, OGF::SceneGraph, OGF::MeshGrob, and OGF::LuaGrob.
|
inline |
gets the name of a grob attribute
[in] | i | the index of the grob attribute, in 0 .. nb_grob_attributes()-1 |
|
inline |
gets the value of a grob attribute
[in] | i | the index of the grob attribute, in 0 .. nb_grob_attributes()-1 |
|
virtual |
Replaces this Grob with the contents of a file.
[in] | value | the name of the file |
true | on success |
false | otherwise |
Reimplemented in OGF::MeshGrob.
|
inline |
Locks graphics for this VoxelGrob.
When graphics updates are locked, redraw requests are ignored for this VoxelGrob. Graphics needs to be locked whenever there is a possibility that a graphics object will be requested on an object that is in a transient state. For instance, this function can be used to avoid OpenGL warnings that the buffer object has not the expected size. Multiple lock/unlock requests can be nested, the VoxelGrob keeps track of the number of active locks. The object is considered unlocked when the number of graphics locks is zero.
|
inline |
Gets the name of this Grob.
Each Grob has a unique name that identifies it in the SceneGraph. This corresponds to the names that appear in the GUI, in the object list.
|
inline |
|
virtual |
Creates an Interface object connected to this Grob.
This is used in GEL scripts, to easily invoke commands on objects by using for instance:
[in] | name | the class name of the Interface or Commands object as a string, with the "OGF::" prefix |
|
virtual |
Triggers update events and redraws the scene.
Used by commands to display the intermediary state of the object during computations.
|
virtual |
|
virtual |
Saves this Grob to a file.
[in] | value | the name of the file |
true | on success |
false | otherwise |
Reimplemented in OGF::MeshGrob.
|
inline |
|
virtual |
Reads this Grob from a GeoFile.
[in,out] | geofile | the input GeoFile |
true | if the Grob could be successfully read |
false | otherwise |
Reimplemented in OGF::SceneGraph, OGF::VoxelGrob, OGF::MeshGrob, and OGF::LuaGrob.
|
virtual |
Writes this Grob into a stream.
[in,out] | geofile | the output GeoFile The file extension determines the file format used to write the object. |
true | if the Grob could be successfully written |
false | otherwise |
Reimplemented in OGF::SceneGraph, OGF::VoxelGrob, OGF::MeshGrob, and OGF::LuaGrob.
|
inline |
|
inline |
|
inline |
void OGF::Grob::set_shader | ( | const std::string & | value | ) |
Changes the current shader of this Grob.
Ignored in non-graphic mode
[in] | value | the shader user class name to be used, as a string (without the "OGF::" prefix). |
void OGF::Grob::set_shader_and_shader_properties | ( | const std::string & | classname, |
const ArgList & | properties | ||
) |
Sets the shader and its properties.
Ignored in non-graphic mode
[in] | classname | the classname of the shader |
[in] | properties | the properties of the shader to be set |
|
inlineprotected |
Sets the ShaderManager associated with this Grob.
[in] | s | a pointer to the ShaderManager |
void OGF::Grob::set_visible | ( | bool | value | ) |
Sets the visibility flag of this Grob.
In the GUI, this corresponds to the checkboxes in the object list.
[in] | value | the new value of the visibility flag |
|
inline |
Unlocks graphics for this VoxelGrob.
When graphics updates are locked, redraw requests are ignored for this VoxelGrob. Graphics needs to be locked whenever there is a possibility that a graphics object will be requested on an object that is in a transient state. For instance, this function can be used to avoid OpenGL warnings that the buffer object has not the expected size. Multiple lock/unlock requests can be nested, the VoxelGrob keeps track of the number of active locks. The object is considered unlocked when the number of graphics locks is zero.
|
inline |
|
virtual |
Gets the bounding box in world coordinates.
Reimplemented in OGF::CompositeGrob.