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

Base class for tools that operate on MeshGrob. More...

#include <OGF/mesh_gfx/tools/mesh_grob_tool.h>

Inheritance diagram for OGF::MeshGrobTool:
OGF::Tool OGF::Node OGF::Object GEO::Counted OGF::MeshGrobConnectEdges OGF::MeshGrobCreateCenterVertex OGF::MeshGrobCreateEdge OGF::MeshGrobFillHole OGF::MeshGrobFlipComponent OGF::MeshGrobGlueEdges OGF::MeshGrobJoinFacets OGF::MeshGrobPaintTool OGF::MeshGrobProbe OGF::MeshGrobRemoveCenterVertex OGF::MeshGrobRemoveComponent OGF::MeshGrobRemoveFacet OGF::MeshGrobRemoveIncidentFacets OGF::MeshGrobRuler OGF::MeshGrobSelectVertex OGF::MeshGrobSplitFacet OGF::MeshGrobTransformSubset OGF::MeshGrobUnglueEdges OGF::MeshGrobUnselectVertex OGF::MeshGrobZipEdges

Public Member Functions

 MeshGrobTool (ToolsManager *parent)
 MeshGrobTool constructor. More...
 
 ~MeshGrobTool () override
 MeshGrobTool destructor.
 
MeshGrobmesh_grob () const
 Gets the MeshGrob this MeshGrobTool operates on. More...
 
index_t pick_vertex (const RayPick &rp)
 Picks a vertex. More...
 
index_t pick_edge (const RayPick &rp)
 Picks a edge. More...
 
index_t pick_facet (const RayPick &rp)
 Picks a facet. More...
 
index_t pick_cell (const RayPick &rp)
 Picks a cell. More...
 
bool pick_facet_edge (const RayPick &rp, index_t &facet, index_t &corner)
 Picks an edge of a facet. More...
 
index_t pick (const RayPick &rp, MeshElementsFlags what, Image *image=nullptr, index_t x0=0, index_t y0=0, index_t width=0, index_t height=0)
 Picks an element of the mesh. More...
 
vec3 drag_point (const RayPick &rp) const
 Gets the 3D coordinate of a point dragged from the latest picked point to the actual mouse position in a direction parallel to the screen. More...
 
const vec3picked_point () const
 Gets the picked point in world coordinates. More...
 
const vec2picked_ndc () const
 Gets the picked point in normalized device coordinates. More...
 
double picked_depth () const
 Gets the depth of the picked point. More...
 
- Public Member Functions inherited from OGF::Tool
 Tool (ToolsManager *mgr)
 Tool constructor. More...
 
void status (const std::string &value)
 Outputs a message in the status bar. More...
 
SceneGraphscene_graph ()
 Gets the SceneGraph. More...
 
virtual void drag (const RayPick &value)
 The event handler for mouse drag events. More...
 
virtual void release (const RayPick &value)
 The event handler for mouse release events. More...
 
virtual void reset ()
 Resets this Tool. More...
 
virtual void configure ()
 Configures this Tool. More...
 
ToolsManagertools_manager () const
 Gets the ToolsManager. More...
 
const mat4focus () const
 Gets the current focus matrix. More...
 
RenderingContextrendering_context () const
 Gets the RenderingContext. More...
 
Grobobject () const
 Gets the current object. More...
 
vec2 project_point (vec3 p) const
 Computes screen-coordinates of a 3D point. More...
 
vec2 ndc_to_dc (vec2 p) const
 Converts normalized device coordinates to device coordinates. 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.
 
Nodeget_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 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...
 

Protected Attributes

vec3 picked_point_
 
vec2 picked_ndc_
 
double picked_depth_
 
- Protected Attributes inherited from OGF::Tool
ToolsManagertools_manager_
 

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...
 
- Public Attributes inherited from OGF::Tool
 __pad0__: virtual void grab(const RayPick& 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 inherited from OGF::Tool
void set_tooltip (const std::string &text)
 Sets the tooltip to be displayed under the mouse. More...
 
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 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...
 

Detailed Description

Base class for tools that operate on MeshGrob.

Definition at line 61 of file mesh_grob_tool.h.

Constructor & Destructor Documentation

◆ MeshGrobTool()

OGF::MeshGrobTool::MeshGrobTool ( ToolsManager parent)

MeshGrobTool constructor.

Parameters
[in]parentthe ToolsManager this MeshGrobTool belongs to

Member Function Documentation

◆ drag_point()

vec3 OGF::MeshGrobTool::drag_point ( const RayPick rp) const

Gets the 3D coordinate of a point dragged from the latest picked point to the actual mouse position in a direction parallel to the screen.

Parameters
[in]rpa RayPick as returned by RenderArea events
Returns
the dragged point

◆ mesh_grob()

MeshGrob* OGF::MeshGrobTool::mesh_grob ( ) const
inline

Gets the MeshGrob this MeshGrobTool operates on.

Returns
a pointer to the MeshGrob

Definition at line 79 of file mesh_grob_tool.h.

◆ pick()

index_t OGF::MeshGrobTool::pick ( const RayPick rp,
MeshElementsFlags  what,
Image image = nullptr,
index_t  x0 = 0,
index_t  y0 = 0,
index_t  width = 0,
index_t  height = 0 
)

Picks an element of the mesh.

The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
[in]whatone of (MESH_VERTICES, MESH_EDGES, MESH_FACETS, MESH_CELLS). It is also possible to use a bitwise-or combination of them (but then it is no longer possible to know what element type was picked).
[in]imagea pointer to an optional image to get the picking framebuffer (can be used by selection tools). The image is supposed to be uninitialized. The function allocates it to the correct size and reads the pixels from the picking buffer.
[in]x0,y0,width,heightoptional image bounds. If let unspecified, the entire picking buffer is copied.
Returns
the index of the picked element or index_t(-1) if nothing was picked.

◆ pick_cell()

index_t OGF::MeshGrobTool::pick_cell ( const RayPick rp)

Picks a cell.

The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
Returns
the index of the picked cell or NO_CELL if no cell was picked.

◆ pick_edge()

index_t OGF::MeshGrobTool::pick_edge ( const RayPick rp)

Picks a edge.

Edges are the ones that are explicitly stored in the mesh. To pick an edge of a facet, use pick_facet_edge() instead. The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
Returns
the index of the picked edge or NO_EDGE if no edge was picked.

◆ pick_facet()

index_t OGF::MeshGrobTool::pick_facet ( const RayPick rp)

Picks a facet.

The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
Returns
the index of the picked facet or NO_FACET if no facet was picked.

◆ pick_facet_edge()

bool OGF::MeshGrobTool::pick_facet_edge ( const RayPick rp,
index_t facet,
index_t corner 
)

Picks an edge of a facet.

The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
[out]facetthe picked facet
[out]cornerthe first facet corner of the picked edge
Return values
trueif a facet edge was picked
falseotherwise

◆ pick_vertex()

index_t OGF::MeshGrobTool::pick_vertex ( const RayPick rp)

Picks a vertex.

The picked point, depth and normalized device coordinates can then be queried by using picked_point(), picked_depth(), picked_ndc() respectively.

Parameters
[in]rpa RayPick as returned by RenderArea events
Returns
the index of the picked vertex or NO_VERTEX if no vertex was picked.

◆ picked_depth()

double OGF::MeshGrobTool::picked_depth ( ) const
inline

Gets the depth of the picked point.

Returns
the depth of the latest point picked by one of the pick_xxx() functions.

Definition at line 203 of file mesh_grob_tool.h.

◆ picked_ndc()

const vec2& OGF::MeshGrobTool::picked_ndc ( ) const
inline

Gets the picked point in normalized device coordinates.

Returns
a const reference to the normalized device coordinates (x and y in [-1.0,1.0]) of the latest point picked by one of the pick_xxx() functions.

Definition at line 194 of file mesh_grob_tool.h.

◆ picked_point()

const vec3& OGF::MeshGrobTool::picked_point ( ) const
inline

Gets the picked point in world coordinates.

Returns
a const reference to the 3D world coordinates of the latest point picked by one of the pick_xxx() functions.

Definition at line 184 of file mesh_grob_tool.h.


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