|
Graphite Version 3
An experimental 3D geometry processing program
|
Represents the list of objects loaded in Graphite. More...
#include <OGF/scene_graph/types/scene_graph.h>
Public Member Functions | |
| SceneGraph (Interpreter *interpreter=nullptr, bool transfer_ownership_to_scenegraph_library=false) | |
| SceneGraph constructor. | |
| ~SceneGraph () override | |
| SceneGraph destructor. | |
| void | update () override |
| Triggers the value_changed() signal. | |
| void | update_values () |
| Triggers the values_changed(), visibilities_changed(), types_changed() and value_changed() signals. | |
| bool | is_serializable () const override |
| Tests whether this Grob can be serialized in GeoFile. | |
| bool | serialize_read (InputGraphiteFile &in) override |
| Reads this Grob from a GeoFile. | |
| bool | serialize_write (OutputGraphiteFile &out) override |
| Writes this Grob into a stream. | |
| void | delete_current_object () |
| Deletes the current object. | |
| Grob * | duplicate_current () |
| Duplicates the current object. | |
| void | move_current_up () |
| Swaps the current object with the previous one. | |
| void | move_current_down () |
| Swaps the current object with the next one. | |
| void | clear () override |
| Clears this SceneGraph. | |
| Grob * | load_object (const FileName &value, const std::string &type="default", bool invoked_from_gui=false) |
| Loads an object from a file, and stores it in this SceneGraph. | |
| void | load_objects (const std::string &value, const std::string &type="default", bool invoked_from_gui=false) |
| Loads objects from a list of files, and stores them in this SceneGraph. | |
| bool | save_current_object (const NewFileName &value) |
| Saves the current object to a file. | |
| Grob * | create_object (const GrobClassName &classname, const std::string &name="") |
| Creates an object. | |
| Grob * | create_mesh (const std::string &name="") |
| Creates a mesh. | |
| Grob * | find_or_create_object (const GrobClassName &classname, const std::string &name) |
| Creates a new object or retreives an existing one. | |
| Grob * | current () |
| Gets the current object. | |
| void | set_visibility (index_t index, bool value) |
| Sets the visibility flag of one of the objects. | |
| void | register_grob_commands (MetaClass *grob_class, MetaClass *commands_class) |
| Associates a Commands class to a Grob class. | |
| const std::string & | get_current_object () const |
| Gets the name of the current object. | |
| std::string | get_values () const |
| Gets the names of all the objects in this SceneGraph. | |
| void | set_visibilities (const std::string &value) |
| Sets the visibility flags for all the objects. | |
| std::string | get_visibilities () const |
| Gets the visibility flags for all the objects. | |
| std::string | get_types () const |
| Gets the object types for all the objects. | |
| void | set_render_area (Object *rdra) |
| Sets the render area. | |
| Object * | get_render_area () const |
| Gets the render area. | |
| void | set_application (Object *app) |
| Sets the application. | |
| Object * | get_application () const |
| Gets the application. | |
| void | set_scene_graph_shader_manager (Object *sgshdmgr) |
| sets the scene graph shader manager. | |
| Object * | get_scene_graph_shader_manager () const |
| gets the scene graph shader manager. | |
| virtual void | visibilities_changed (const std::string &value) |
| a signal that is triggered whenever object visibility flags change. | |
| virtual void | types_changed (const std::string &value) |
| a signal that is triggered whenever the list of objects changes. | |
| void | value_changed (Grob *value) override |
| a signal that is triggered whenever this SceneGraph changes. | |
| virtual void | current_object_changed (const std::string &value) |
| a signal that is triggered whenever the current object changes. | |
| void | grob_created (const std::string &name) |
| a signal that is triggered whenever an object is created in this SceneGraph | |
| void | grob_deleted (const std::string &name) |
| a signal that is triggered whenever an object is deleted in this SceneGraph | |
| void | grob_renamed () |
| a signal that is triggered whenever an object is renamed in this SceneGraph | |
| void | set_current_object (const std::string &value, bool record_history) |
| Sets the current object. | |
| Interpreter * | interpreter () override |
| Gets a pointer to the main Interpreter. | |
Public Member Functions inherited from OGF::CompositeGrob | |
| CompositeGrob (CompositeGrob *parent) | |
| CompositeGrob constructor. | |
| Grob * | resolve (const std::string &name) const |
| Finds a child by name. | |
| Grob * | ith_child (index_t i) const |
| Gets a child by index. | |
| void | add_child (Node *child) override |
| Adds a child to this Grob. | |
| void | remove_child (Node *child) override |
| Removes a child from this Grob. | |
| Box3d | bbox () const override |
| Gets the bounding box. | |
| Box3d | world_bbox () const override |
| Gets the bounding box in world coordinates. | |
Public Member Functions inherited from OGF::Grob | |
| Grob (CompositeGrob *parent) | |
| Grob constructor. | |
| Grob () | |
| Grob constructor. | |
| ~Grob () override | |
| Grob destructor. | |
| const std::string & | name () const |
| Gets the name of this Grob. | |
| void | set_shader (const std::string &value) |
| Changes the current shader of this Grob. | |
| void | get_shader_and_shader_properties (std::string &classname, ArgList &properties, bool pointers=true) |
| Gets the classname of the shader and its properties. | |
| void | set_shader_and_shader_properties (const std::string &classname, const ArgList &properties) |
| Sets the shader and its properties. | |
| ArgList & | attributes () |
| Gets the attributes associated with this Grob. | |
| const ArgList & | attributes () const |
| Gets the attributes associated with this Grob. | |
| bool | dirty () const |
| Gets the dirty flag. | |
| void | up_to_date () |
| Tests whether this object is up to date. | |
| bool | graphics_are_locked () const |
| Tests whether this VoxelGrob is locked for graphics display. | |
| void | lock_graphics () |
| Locks graphics for this VoxelGrob. | |
| void | unlock_graphics () |
| Unlocks graphics for this VoxelGrob. | |
| virtual void | redraw () |
| Triggers update events and redraws the scene. | |
| SceneGraph * | scene_graph () const |
| Gets the SceneGraph. | |
| virtual bool | load (const FileName &value) |
| Replaces this Grob with the contents of a file. | |
| virtual bool | save (const NewFileName &value) |
| Saves this Grob to a file. | |
| virtual bool | append (const FileName &value) |
| Appends the content of the specified file to this Grob. | |
| virtual void | rename (const std::string &value) |
| Renames this Grob. | |
| virtual Grob * | duplicate (SceneGraph *sg) |
| Duplicates this Grob. | |
| virtual Object * | query_interface (const std::string &name) |
| Creates an Interface object connected to this Grob. | |
| index_t | nb_grob_attributes () const |
| gets the number of grob attributes | |
| const std::string & | ith_grob_attribute_name (index_t i) const |
| gets the name of a grob attribute | |
| std::string | ith_grob_attribute_value (index_t i) const |
| gets the value of a grob attribute | |
| void | set_grob_attribute (const std::string &name, const std::string &value) |
| sets the value of a grob attribute | |
| void | set_filename (const std::string &value) |
| Sets the name of this Grob. | |
| const std::string & | get_filename () const |
| Gets the filename of this Grob. | |
| bool | get_visible () const |
| Tests whether this Grob is visible. | |
| void | set_visible (bool value) |
| Sets the visibility flag of this Grob. | |
| Object * | get_shader () const |
| Gets the shader associated with this Grob. | |
| Object * | get_shader_manager () const |
| Gets the ShaderManager associated with this Grob. | |
| void | set_obj_to_world_transform (const mat4 &value) |
| Sets the object to world transform. | |
| const mat4 & | get_obj_to_world_transform () const |
| Gets the object to world transform. | |
Public Member Functions inherited from OGF::Node | |
| Node (Node *parent=nullptr) | |
| Node constructor. | |
| ~Node () override | |
| Node destructor. | |
| Node * | get_parent () const |
| Gets the parent. | |
Public Member Functions inherited from OGF::Object | |
| Object (bool transient=false) | |
| Object constructor. | |
| ~Object () override | |
| Object destructor. | |
| virtual MetaClass * | meta_class () const |
| Gets the meta class. | |
| virtual void | set_meta_class (MetaClass *mclass) |
| Sets the meta class. | |
| unsigned int | id () const |
| Gets the identifier of this object. | |
| std::string | string_id () const |
| Gets the unique string identifier. | |
| bool | has_method (const std::string &method_name) const |
| Tests whether a method is defined. | |
| 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. | |
| bool | invoke_method (const std::string &method_name, const ArgList &args) |
| Invokes a method by method name and argument list. | |
| bool | invoke_method (const std::string &method_name) |
| Invokes a method by method name. | |
| bool | has_property (const std::string &prop_name) const |
| Tests whether a property is defined. | |
| virtual bool | get_property (const std::string &prop_name, std::string &prop_value) const |
| Gets a property. | |
| 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. | |
| virtual void | add_connection (Connection *connection) |
| Adds a connection to this object. | |
| virtual void | remove_connection (Connection *connection) |
| Removes a connection to this object. | |
| virtual void | get_element (index_t i, Any &value) const |
| Gets an element by index. | |
| virtual void | set_element (index_t i, const Any &value) |
| Sets an element by index. | |
| void | get_element (index_t item, index_t component, Any &value) const |
| Gets an element by item and component. | |
| void | set_element (index_t item, index_t component, const Any &value) |
| Sets an element by item and component. | |
| virtual void | search (const std::string &needle, const std::string &path="") |
| Displays the names of all objects that contain a substring. | |
| virtual index_t | get_dimension () const |
| Gets the number of elements per item. | |
| bool | get_signals_enabled () const |
| Tests wheter signals are enabled. | |
| void | set_signals_enabled (bool value) |
| Enables or disables signals. | |
| bool | get_slots_enabled () const |
| Tests wheter slots are enabled. | |
| void | set_slots_enabled (bool value) |
| Enables or disables slots. | |
| MetaClass * | get_meta_class () const |
| Gets the meta class. | |
| std::string | get_string_id () const |
| Gets the unique string identifier. | |
| virtual std::string | get_doc () const |
| Gets the documentation. | |
| virtual Sign | compare (const Object *other) const |
| Compares this object with another one. | |
| virtual bool | is_a (const MetaType *type) const |
| Tests whether this object inherits a given type. | |
| void | disconnect () |
| Removes all connections from signals of this objects. | |
| 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. | |
| virtual bool | set_property (const std::string &name, const std::string &value) |
| Sets an individual property. | |
| void | help () const |
| Displays some help about this object. | |
| virtual bool | set_property (const std::string &name, const Any &value) |
| Sets an individual property. | |
| virtual bool | get_property (const std::string &prop_name, Any &prop_value) const |
| Gets a property. | |
Public Member Functions inherited from GEO::Counted | |
| void | ref () const |
| Increments the reference count. | |
| void | unref () const |
| Decrements the reference count. | |
| bool | is_shared () const |
| Check if the object is shared. | |
| int | nb_refs () const |
| Gets the number of references that point to this object. | |
Public Attributes | |
| : bool save_viewer_properties(const std::string& value) | |
| : void set_current_object(const std::string& value) | |
| gom_signals | : virtual void values_changed(const std::string& value) |
Public Attributes inherited from OGF::CompositeGrob | |
| : Scope* get_objects() const { return new CompositeGrobScope(const_cast<CompositeGrob*>(this)) | |
| : bool is_bound(const std::string& name) const | |
Public Attributes inherited from OGF::Grob | |
| : virtual void update() | |
| gom_signals | : virtual void value_changed(Grob* value) |
| : const std::string& get_name() const { return name_ | |
Public Attributes inherited from OGF::Node | |
| : Node* ith_child(index_t i) const { ogf_assert(i < get_nb_children()) | |
| return | children_ [i] |
| : size_t get_nb_children() const { return children_.size() | |
Public Attributes inherited from OGF::Object | |
| : virtual index_t get_nb_elements() const | |
| : bool equals(const Object* other) const | |
Protected Member Functions | |
| void | begin_graphite_file (OutputGraphiteFile &out, bool all_scene) |
| Writes the preamble of a gsg file to a stream. | |
| void | end_graphite_file (OutputGraphiteFile &out) |
| Writes the trailer of a gsg file. | |
| void | serialize_grob_write (Grob *grob, OutputGraphiteFile &out) |
| Writes an object to a geogram file. | |
| Grob * | serialize_grob_read (InputGraphiteFile &in) |
| Reads an object from a geogram file. | |
| void | get_grob_shader (Grob *grob, std::string &classname, ArgList &properties) |
| void | set_grob_shader (Grob *grob, const std::string &classname, const ArgList &properties) |
| void | copy_property_to_arglist (const std::string &obj_prop_name, ArgList &args) |
| Copies an objet property to an arglist. | |
| void | copy_arglist_to_properties (const ArgList &args) |
| Copies all the object properties previously recorded by copy_property_to_arglist() from an ArgList to the gom objects. | |
Protected Member Functions inherited from OGF::Grob | |
| void | initialize_name (const std::string &name) |
| Initializes the name of this Grob. | |
| void | set_shader_manager (Object *s) |
| Sets the ShaderManager associated with this Grob. | |
Protected Member Functions inherited from OGF::Node | |
| void | swap_children (Node *n1, Node *n2) |
| Swaps two children by indices. | |
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. | |
Protected Member Functions inherited from GEO::Counted | |
| Counted () | |
| Creates a reference counted object. | |
| virtual | ~Counted () |
| Destroys a reference counted object. | |
Static Protected Member Functions | |
| static bool | load_aln (const std::string &filename, SceneGraph *sg) |
| Loads alignment data for pointsets. | |
Additional Inherited Members | |
Static Public Member Functions inherited from OGF::Grob | |
| static Grob * | find (SceneGraph *sg, const std::string &name) |
| Finds a Grob by name. | |
Static Public Member Functions inherited from OGF::Object | |
| static Object * | id_to_object (unsigned int id) |
| Gets an object from a unique object id. | |
Static Public Member Functions inherited from GEO::Counted | |
| static void | ref (const Counted *counted) |
| Increments the reference count. | |
| static void | unref (const Counted *counted) |
| Decrements the reference count. | |
Protected Attributes inherited from OGF::Grob | |
| 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_ |
Represents the list of objects loaded in Graphite.
A SceneGraph stores a list of Grob and manages the associated events. It has a current object, that is the target of commands invocation.
Definition at line 62 of file scene_graph.h.
| OGF::SceneGraph::SceneGraph | ( | Interpreter * | interpreter = nullptr, |
| bool | transfer_ownership_to_scenegraph_library = false |
||
| ) |
SceneGraph constructor.
| [in] | interpreter | a pointer to the main interpreter, or nullptr. If interpreter is set to nullptr, then the default interpreter is used. |
|
protected |
Writes the preamble of a gsg file to a stream.
| [in,out] | out | the stream |
| [in] | all_scene | if true, the gsg file is meant to record the whole scene, else it is for a single object |
|
overridevirtual |
|
protected |
Copies all the object properties previously recorded by copy_property_to_arglist() from an ArgList to the gom objects.
| [in] | args | an ArgList, with recorded object properties, with names "objectid.propname", where objectid is the name of a gom object and propname a name of a property of the object. Args with names that do not match this pattern are ignored. |
|
protected |
Copies an objet property to an arglist.
| [in] | obj_prop_name | a string in the form "objectid.propname", where objectid is the name of a gom object and propname a name of a property of the object. |
| [in,out] | args | the ArgList where the value of the property should be copied. Its name will be "objectid.propname". |
|
inline |
Creates a mesh.
| [in] | name | the name of the mesh in the SceneGraph. If no name is specified, then the created object will be given a default name. |
Definition at line 215 of file scene_graph.h.
| Grob * OGF::SceneGraph::create_object | ( | const GrobClassName & | classname, |
| const std::string & | name = "" |
||
| ) |
Creates an object.
| [in] | classname | the class name of the object to create, as a string, with the "OGF::" prefix |
| [in] | name | the name of the object in the SceneGraph. If no name is specified, then the created object will be given a default name. |
| Grob * OGF::SceneGraph::current | ( | ) |
Gets the current object.
|
virtual |
a signal that is triggered whenever the current object changes.
| [in] | value | the name of the new current object |
| Grob * OGF::SceneGraph::duplicate_current | ( | ) |
Duplicates the current object.
The name of the created object will be the same as current object name with "_copy" appended.
|
protected |
Writes the trailer of a gsg file.
| [in,out] | out | the stream |
| Grob * OGF::SceneGraph::find_or_create_object | ( | const GrobClassName & | classname, |
| const std::string & | name | ||
| ) |
Creates a new object or retreives an existing one.
| [in] | classname | the class name of the object to create, as a string, with the "OGF::" prefix. |
| [in] | name | the name of the object |
|
inline |
Gets the application.
Definition at line 327 of file scene_graph.h.
| const std::string & OGF::SceneGraph::get_current_object | ( | ) | const |
Gets the name of the current object.
|
inline |
Gets the render area.
Definition at line 310 of file scene_graph.h.
| Object * OGF::SceneGraph::get_scene_graph_shader_manager | ( | ) | const |
gets the scene graph shader manager.
| std::string OGF::SceneGraph::get_types | ( | ) | const |
Gets the object types for all the objects.
| std::string OGF::SceneGraph::get_values | ( | ) | const |
Gets the names of all the objects in this SceneGraph.
| std::string OGF::SceneGraph::get_visibilities | ( | ) | const |
Gets the visibility flags for all the objects.
| void OGF::SceneGraph::grob_created | ( | const std::string & | name | ) |
a signal that is triggered whenever an object is created in this SceneGraph
| [in] | name | the name of the created object |
| void OGF::SceneGraph::grob_deleted | ( | const std::string & | name | ) |
a signal that is triggered whenever an object is deleted in this SceneGraph
| [in] | name | the name of the deleted object |
|
overridevirtual |
Gets a pointer to the main Interpreter.
Reimplemented from OGF::Grob.
|
overridevirtual |
Tests whether this Grob can be serialized in GeoFile.
| true | if this Grob is serializable |
| false | otherwise |
Reimplemented from OGF::Grob.
|
staticprotected |
Loads alignment data for pointsets.
The loaded transform are stored in the object to world transforms of all objects.
| [in] | filename | name of the alignment data file |
| [in] | sg | a pointer to the SceneGraph |
| true | if alignment data could be read |
| false | otherwise |
| Grob * OGF::SceneGraph::load_object | ( | const FileName & | value, |
| const std::string & | type = "default", |
||
| bool | invoked_from_gui = false |
||
| ) |
Loads an object from a file, and stores it in this SceneGraph.
| [in] | value | the name of the file |
| [in] | type | the class name that should be used to create the object, or "default" (then it is deduced from the file extension) |
| [in] | invoked_from_gui | set to true by file menu, and makes it change directory to the directory that contains the file |
| void OGF::SceneGraph::load_objects | ( | const std::string & | value, |
| const std::string & | type = "default", |
||
| bool | invoked_from_gui = false |
||
| ) |
Loads objects from a list of files, and stores them in this SceneGraph.
| [in] | value | the list of file names, separated with ';' |
| [in] | type | the class name that should be used to create the objects, or "default" (then it is deduced from the file extensions) |
| [in] | invoked_from_gui | set to true by file menu, and makes it change directory to the directory that contains the file |
| void OGF::SceneGraph::move_current_down | ( | ) |
Swaps the current object with the next one.
Does nothing if there is no current object or if current object is the last one
| void OGF::SceneGraph::move_current_up | ( | ) |
Swaps the current object with the previous one.
Does nothing if there is no current object or if current object is the first one
| bool OGF::SceneGraph::save_current_object | ( | const NewFileName & | value | ) |
Saves the current object to a file.
| [in] | value | the name of the file |
|
protected |
Reads an object from a geogram file.
| [in,out] | in | the stream |
|
protected |
Writes an object to a geogram file.
| [in] | grob | a pointer to the object |
| [in,out] | out | the stream where the object should be written |
|
overridevirtual |
Reads this Grob from a GeoFile.
| [in,out] | geofile | the input GeoFile |
| true | if the Grob could be successfully read |
| false | otherwise |
Reimplemented from OGF::Grob.
|
overridevirtual |
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 from OGF::Grob.
|
inline |
Sets the application.
| [in] | app | a pointer to the application. |
Definition at line 318 of file scene_graph.h.
| void OGF::SceneGraph::set_current_object | ( | const std::string & | value, |
| bool | record_history | ||
| ) |
Sets the current object.
| [in] | value | name of the current object |
| [in] | record_history | if true, the change of current object is recorded in Graphite's history |
|
inline |
Sets the render area.
| [in] | rdra | a pointer to the render area. |
Definition at line 301 of file scene_graph.h.
| void OGF::SceneGraph::set_scene_graph_shader_manager | ( | Object * | sgshdmgr | ) |
sets the scene graph shader manager.
| [in] | sgshdmgr | a pointer to the scene graph shader manager. |
| void OGF::SceneGraph::set_visibilities | ( | const std::string & | value | ) |
Sets the visibility flags for all the objects.
| [in] | value | the ';'-separated list of object visibilities, as a string |
| void OGF::SceneGraph::set_visibility | ( | index_t | index, |
| bool | value | ||
| ) |
Sets the visibility flag of one of the objects.
| [in] | index | the index of the object, in O..nb_children()-1 |
| [in] | value | true if the object is made visible, false if it is made invisible |
|
virtual |
a signal that is triggered whenever the list of objects changes.
| [in] | value | the ';'-separated list of object types |
|
override |
a signal that is triggered whenever this SceneGraph changes.
| [in] | value | a pointer to this SceneGraph |
|
virtual |
a signal that is triggered whenever object visibility flags change.
| [in] | value | the ';'-separated list of object visibility flags |
| OGF::SceneGraph::__pad0__ |
Definition at line 105 of file scene_graph.h.
| OGF::SceneGraph::__pad1__ |
Definition at line 253 of file scene_graph.h.
| gom_signals OGF::SceneGraph::__pad2__ |
Definition at line 345 of file scene_graph.h.