Graphite Version 3
An experimental 3D geometry processing program
Loading...
Searching...
No Matches
OGF::MeshGrob Class Reference

A Grob wrapper around Geogram's Mesh class. More...

#include <OGF/mesh/grob/mesh_grob.h>

Inheritance diagram for OGF::MeshGrob:
OGF::Grob GEO::Mesh OGF::Node OGF::Object GEO::Counted

Public Member Functions

 MeshGrob (CompositeGrob *parent, const std::string &name="")
 MeshGrob constructor.
 
 MeshGrob (const std::string &name="")
 MeshGrob constructor. \detail used in scripts, when there is no existing SceneGraph.
 
 ~MeshGrob () override
 MeshGrob destructor;.
 
bool load (const FileName &value) override
 Replaces this Grob with the contents of a file.
 
bool append (const FileName &value) override
 Appends the content of the specified file to this Grob.
 
bool save (const NewFileName &value) override
 Saves this Grob to a file.
 
void clear () override
 Clears this Grob.
 
Grob * duplicate (SceneGraph *sg) override
 Duplicates this Grob.
 
bool is_serializable () const override
 Tests whether this Grob can be serialized in GeoFile.
 
bool serialize_read (InputGraphiteFile &geofile) override
 Reads this Grob from a GeoFile.
 
bool serialize_write (OutputGraphiteFile &geofile) override
 Writes this Grob into a stream.
 
std::string get_scalar_attributes () const
 Gets the list of all scalar attributes.
 
std::string get_selections () const
 Gets the list of all selections.
 
std::string get_filters () const
 Gets the list of all filters.
 
void update () override
 
Box3d bbox () const override
 Gets the bounding box.
 
- 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.
 
virtual Box3d world_bbox () const
 Gets the bounding box in world coordinates.
 
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 Interpreter * interpreter ()
 Gets a pointer to the main Interpreter.
 
virtual void redraw ()
 Triggers update events and redraws the scene.
 
SceneGraph * scene_graph () const
 Gets the SceneGraph.
 
virtual void rename (const std::string &value)
 Renames 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.
 
bool get_selected () const
 Tests whether this Grob is selected.
 
void set_selected (bool value)
 Sets the selection 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.
 
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.
 
- Public Member Functions inherited from GEO::Mesh
 Mesh (index_t dimension=3, bool single_precision=false)
 Mesh constructor.
 
virtual ~Mesh ()
 Mesh destructor.
 
void clear (bool keep_attributes=true, bool keep_memory=false)
 Removes all the elements and attributes of this mesh.
 
void show_stats (const std::string &tag="Mesh") const
 Displays number of vertices, facets and borders.
 
void assert_is_valid ()
 Does some validity checks.
 
void copy (const Mesh &rhs, bool copy_attributes=true, MeshElementsFlags what=MESH_ALL_ELEMENTS)
 Copies a mesh onto this one.
 
bool load (const std::string &filename)
 Loads this mesh from a file.
 
bool save (const std::string &filename) const
 Saves this mesh to a file.
 
std::string get_attributes () const
 Gets the list of all attributes.
 
std::string get_scalar_attributes () const
 Gets the list of all scalar attributes.
 
std::string get_vector_attributes (index_t max_dim=0) const
 Gets the list of all vector attributes.
 
index_t nb_subelements_types () const
 Gets the number of subelements types.
 
MeshSubElementsStore & get_subelements_by_index (index_t i)
 Gets a MeshSubElementsStore by index.
 
const MeshSubElementsStore & get_subelements_by_index (index_t i) const
 Gets a MeshSubElementsStore by index.
 
MeshSubElementsStore & get_subelements_by_type (MeshElementsFlags what)
 Gets a MeshSubElementsStore by subelements type.
 
const MeshSubElementsStore & get_subelements_by_type (MeshElementsFlags what) const
 Gets a MeshSubElementsStore by subelements type.
 

Static Public Member Functions

static MeshGrob * find_or_create (SceneGraph *sg, const std::string &name)
 Finds or creates a MeshGrob with the specified name.
 
static MeshGrob * find (SceneGraph *sg, const std::string &name)
 Finds a MeshGrob by name.
 
static void register_geogram_file_extensions ()
 Registers all Geogram file extensions in Graphite.
 
- 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.
 
- Static Public Member Functions inherited from GEO::Mesh
static std::string subelements_type_to_name (MeshElementsFlags what)
 Gets a subelement name by subelement type.
 
static MeshElementsFlags name_to_subelements_type (const std::string &name)
 Gets a subelement type by subelement name.
 
static bool parse_attribute_name (const std::string &full_attribute_name, MeshElementsFlags &where, std::string &attribute_name, index_t &component)
 Extracts localisation, name and optional component from an attribute name.
 

Public Attributes

 : std::string get_attributes() const
 
 : std::string list_attributes( const std::string& localisations=""
 
const std::string & types =""
 
const std::string const std::string & dims
 
- 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
 
- Public Attributes inherited from GEO::Mesh
MeshVertices vertices
 
MeshEdges edges
 
MeshFacets facets
 
MeshFacetCornersStore facet_corners
 
MeshCells cells
 
MeshCellCornersStore cell_corners
 
MeshCellFacetsStore cell_facets
 

Additional Inherited Members

- Static Public Attributes inherited from OGF::Object
static constexpr Numeric::uint32 INVALID_ID = 0xbadbeef
 
- 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.
 
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 Member Functions inherited from GEO::Mesh
void display_attributes (const std::string &tag, const std::string &subelement_name, const MeshSubElementsStore &subelements) const
 Displays the list of attributes to the Logger.
 
 Mesh (const Mesh &rhs)=delete
 Forbids copy.
 
const Mesh & operator= (const Mesh &rhs)=delete
 Forbids copy.
 
- Protected Attributes inherited from OGF::Grob
std::string name_
 
std::string filename_
 
bool visible_
 
bool selected_
 
SceneGraph * scene_graph_
 
mat4 obj_to_world_
 
Object_var shader_manager_
 
ArgList grob_attributes_
 
bool dirty_
 
index_t nb_graphics_locks_
 
 Indicates the mesh elements (vertices, facets or cells) present in a mesh. More...

Detailed Description

A Grob wrapper around Geogram's Mesh class.

Definition at line 56 of file mesh_grob.h.

Constructor & Destructor Documentation

◆ MeshGrob()

OGF::MeshGrob::MeshGrob ( CompositeGrob *  parent,
const std::string &  name = "" 
)

MeshGrob constructor.

Parameters
[in]parenta pointer to the container (the scenegraph in most cases).

Member Function Documentation

◆ append()

bool OGF::MeshGrob::append ( const FileName &  value)
overridevirtual

Appends the content of the specified file to this Grob.

Parameters
[in]filenamethe name of the file to append
Return values
trueon success
falseotherwise

Reimplemented from OGF::Grob.

◆ bbox()

Box3d OGF::MeshGrob::bbox ( ) const
overridevirtual

Gets the bounding box.

Returns
the bounding box

Implements OGF::Grob.

◆ clear()

void OGF::MeshGrob::clear ( )
overridevirtual

Clears this Grob.

Reimplemented from OGF::Grob.

◆ duplicate()

Grob * OGF::MeshGrob::duplicate ( SceneGraph *  sg)
overridevirtual

Duplicates this Grob.

The newly created Grob has the same name as the current one, with "_copy" appended.

Reimplemented from OGF::Grob.

◆ find()

static MeshGrob * OGF::MeshGrob::find ( SceneGraph *  sg,
const std::string &  name 
)
static

Finds a MeshGrob by name.

Parameters
[in]sga pointer to the SceneGraph
[in]namethe name
Returns
a pointer to the MeshGrob named as name in the SceneGraph sg if it exists, or nil otherwise.

◆ find_or_create()

static MeshGrob * OGF::MeshGrob::find_or_create ( SceneGraph *  sg,
const std::string &  name 
)
static

Finds or creates a MeshGrob with the specified name.

Parameters
[in]sga pointer to the SceneGraph
[in]namethe name
Returns
a pointer to the MeshGrob named as name in the SceneGraph sg if it exists, or a newly created MeshGrob otherwise.

◆ get_filters()

std::string OGF::MeshGrob::get_filters ( ) const

Gets the list of all filters.

Returns
a ';'-separated list of all selections. Each filter name is prefixed by the subelement is is bound to.

◆ get_scalar_attributes()

std::string OGF::MeshGrob::get_scalar_attributes ( ) const

Gets the list of all scalar attributes.

Returns
a ';'-separated list of all scalar attributes. Each attribute name is prefixed by the subelement it is bound to. For vector attributes, all their components are listed.

◆ get_selections()

std::string OGF::MeshGrob::get_selections ( ) const

Gets the list of all selections.

Returns
a ';'-separated list of all selections. Each selection name is prefixed by the subelement is is bound to.

◆ is_serializable()

bool OGF::MeshGrob::is_serializable ( ) const
overridevirtual

Tests whether this Grob can be serialized in GeoFile.

Return values
trueif this Grob is serializable
falseotherwise
See also
serialize_read(), serialize_write()

Reimplemented from OGF::Grob.

◆ load()

bool OGF::MeshGrob::load ( const FileName &  value)
overridevirtual

Replaces this Grob with the contents of a file.

Parameters
[in]filenamethe name of the file to load
Return values
trueon success
falseotherwise

Reimplemented from OGF::Grob.

◆ register_geogram_file_extensions()

static void OGF::MeshGrob::register_geogram_file_extensions ( )
static

Registers all Geogram file extensions in Graphite.

Note
This function is automatically called at Graphite startup, in the initialization function of the mesh library.

◆ save()

bool OGF::MeshGrob::save ( const NewFileName &  value)
overridevirtual

Saves this Grob to a file.

Parameters
[in]filenamethe name of the file where to save
Return values
trueon success
falseotherwise

Reimplemented from OGF::Grob.

◆ serialize_read()

bool OGF::MeshGrob::serialize_read ( InputGraphiteFile &  geofile)
overridevirtual

Reads this Grob from a GeoFile.

Parameters
[in,out]geofilethe input GeoFile
Return values
trueif the Grob could be successfully read
falseotherwise
See also
is_serializable()

Reimplemented from OGF::Grob.

◆ serialize_write()

bool OGF::MeshGrob::serialize_write ( OutputGraphiteFile &  geofile)
overridevirtual

Writes this Grob into a stream.

Parameters
[in,out]geofilethe output GeoFile The file extension determines the file format used to write the object.
Return values
trueif the Grob could be successfully written
falseotherwise
See also
is_serializable()

Reimplemented from OGF::Grob.

◆ update()

void OGF::MeshGrob::update ( )
override

Member Data Documentation

◆ __pad0__

OGF::MeshGrob::__pad0__

Definition at line 115 of file mesh_grob.h.

◆ __pad1__

OGF::MeshGrob::__pad1__

Definition at line 147 of file mesh_grob.h.

◆ dims

const std::string const std::string& OGF::MeshGrob::dims
Initial value:
=""
)

Definition at line 160 of file mesh_grob.h.

◆ types

const std::string& OGF::MeshGrob::types =""

Definition at line 159 of file mesh_grob.h.


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