|
Graphite Version 3
An experimental 3D geometry processing program
|
A MultiTool that applies a mouse-controlled transform to a subset. More...
#include <OGF/mesh_gfx/tools/mesh_grob_tool.h>
Public Member Functions | |
| MeshGrobTransformTool (ToolsManager *parent) | |
| void | grab (const RayPick &p_ndc) override |
| void | release (const RayPick &p_ndc) override |
| The event handler for mouse release events. | |
| MeshGrob * | mesh_grob () const |
| Gets the MeshGrob this MeshGrobTransformTool operates on. | |
Public Member Functions inherited from OGF::MultiTool | |
| MultiTool (ToolsManager *mgr) | |
| MultiTool constructor. | |
| void | grab (const RayPick &value) override |
| void | drag (const RayPick &value) override |
| The event handler for mouse drag events. | |
| void | release (const RayPick &value) override |
| The event handler for mouse release events. | |
| void | reset () override |
| Resets this Tool. | |
Public Member Functions inherited from OGF::Tool | |
| Tool (ToolsManager *mgr) | |
| Tool constructor. | |
| void | status (const std::string &value) |
| Outputs a message in the status bar. | |
| SceneGraph * | scene_graph () |
| Gets the SceneGraph. | |
| virtual void | configure () |
| Configures this Tool. | |
| ToolsManager * | tools_manager () const |
| Gets the ToolsManager. | |
| const mat4 & | focus () const |
| Gets the current focus matrix. | |
| RenderingContext * | rendering_context () const |
| Gets the RenderingContext. | |
| Grob * | object () const |
| Gets the current object. | |
| vec2 | project_point (vec3 p) const |
| Computes screen-coordinates of a 3D point. | |
| vec2 | ndc_to_dc (vec2 p) const |
| Converts normalized device coordinates to device coordinates. | |
Public Member Functions inherited from OGF::Node | |
| Node (Node *parent=nullptr) | |
| Node constructor. | |
| ~Node () override | |
| Node destructor. | |
| virtual void | add_child (Node *child) |
| Adds a child to this Node. | |
| 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. | |
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. | |
| Numeric::uint32 | 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. | |
Protected Member Functions | |
| void | update_transform_subset (const mat4 &M) |
| Applies the transform M to the subset. | |
| const vec3 & | center () const |
| Gets the center of the subset. | |
| virtual void | pick_subset (MeshGrobTransformSubset *tool, const RayPick &rp)=0 |
| Gets the subset by picking. | |
| virtual void | transform_subset (const mat4 &M)=0 |
| Applies a 3D transform to the subset. | |
| virtual void | clear_subset () |
| Clears the state variables that store the subset. | |
Protected Member Functions inherited from OGF::MultiTool | |
| void | set_tool (int button, Tool *tool) |
| Associates a tool to one of the buttons. | |
| Tool * | get_tool (int button) const |
| Gets a Tool by button id. | |
Protected Member Functions inherited from OGF::Tool | |
| void | set_tooltip (const std::string &text) |
| Sets the tooltip to be displayed under the mouse. | |
| void | reset_tooltip () |
| Removes a tooltip previously created by set_tooltip() | |
Protected Member Functions inherited from OGF::Node | |
| void | swap_children (Node *n1, Node *n2) |
| Swaps two children. | |
| void | move_child_to_top (Node *n) |
| Makes a child the first element in the list. | |
| void | move_child_to_bottom (Node *n) |
| Makes a child the last element in the list. | |
| void | set_ith_child (index_t i, Node *n) |
| Replaces a child. | |
Protected Member Functions inherited from OGF::Object | |
| virtual bool | set_property_and_record_to_history (const std::string &name, const Any &value, Interpreter *interpreter) |
| Sets an individual property and record modification to history. | |
| 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. | |
Protected Attributes | |
| mat4 | prev_inverse_transform_ |
| The inverse of the previous transform. | |
| vec3 | center_ |
Protected Attributes inherited from OGF::MultiTool | |
| Tool_var | tools_ [MOUSE_BUTTONS_NB] |
Protected Attributes inherited from OGF::Tool | |
| ToolsManager * | tools_manager_ |
Friends | |
| class | MeshGrobTransformSubset |
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. | |
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. | |
Public Attributes inherited from OGF::Tool | |
| : virtual void grab(const RayPick& value) | |
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 | |
Static Public Attributes inherited from OGF::Object | |
| static constexpr Numeric::uint32 | INVALID_ID = 0xbadbeef |
A MultiTool that applies a mouse-controlled transform to a subset.
Left mouse button controls a translation, center mouse button controls a scaling, and right mouse button controls a rotation.
Definition at line 378 of file mesh_grob_tool.h.
|
inline |
Definition at line 380 of file mesh_grob_tool.h.
|
inlineprotected |
Gets the center of the subset.
Definition at line 431 of file mesh_grob_tool.h.
|
protectedvirtual |
Clears the state variables that store the subset.
Default implementation does nothing.
Reimplemented in OGF::MeshGrobTransformComponent.
|
override |
|
inline |
Gets the MeshGrob this MeshGrobTransformTool operates on.
Definition at line 409 of file mesh_grob_tool.h.
|
protectedpure virtual |
Gets the subset by picking.
This function is called when the mouse is pressed. It is meant to be overloaded in derived classes, to memorize the picked subset in some state variables.
| [in] | tool | a pointer to the MeshGrobTransformSubset |
| [in] | rp | a RayPick as returned by RenderArea events |
Implemented in OGF::MeshGrobTransformComponent, OGF::MeshGrobCopyComponent, and OGF::MeshGrobTransformFacet.
|
overridevirtual |
The event handler for mouse release events.
| [in] | value | a const reference to the picking event |
Reimplemented from OGF::Tool.
|
protectedpure virtual |
Applies a 3D transform to the subset.
| [in] | M | a const reference of the homogeneous coordinates matrix of the transform. |
Implemented in OGF::MeshGrobTransformComponent, OGF::MeshGrobCopyComponent, and OGF::MeshGrobTransformFacet.
|
inlineprotected |
Applies the transform M to the subset.
The transform /p M is applied to the subset as it was when grab() was called (any previously applied transform is canceled).
| [in] | M | the transform to be applied |
Definition at line 422 of file mesh_grob_tool.h.
|
friend |
Definition at line 466 of file mesh_grob_tool.h.
|
protected |
Definition at line 467 of file mesh_grob_tool.h.
|
protected |
The inverse of the previous transform.
It is used when the transform is updated, to undo the previous transform.
Definition at line 465 of file mesh_grob_tool.h.