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

Commands that manipulate volume meshes. More...

#include <OGF/mesh/commands/mesh_grob_volume_commands.h>

Inheritance diagram for OGF::MeshGrobVolumeCommands:
OGF::MeshGrobCommands OGF::Commands OGF::Interface OGF::Object GEO::Counted

Public Types

enum  VoronoiSimplification { keep_everything , simplify_tet , simplify_tet_voro }
 

Public Member Functions

 MeshGrobVolumeCommands ()
 MeshGrobVolumeCommands constructor.
 
 ~MeshGrobVolumeCommands () override
 MeshGrobVolumeCommands destructor.
 
void hex_dominant_meshing (const NewMeshGrobName &hexdom_name="hexes", unsigned int nb_points=30000, bool prisms=true, bool pyramids=true, bool border_refine=false, double border_max_dist=0.2, double min_normal_cos=0.5, double max_corner_cos=0.6)
 Fills a closed mesh with hexaedra (+other cells). More...
 
void Voronoi_meshing (const NewMeshGrobName &voronoi="voronoi", index_t nb_cells=1000, VoronoiSimplification simplification=simplify_tet_voro, double angle_threshold=1e-3, double shrink=0.0, const NewMeshGrobName &points="", bool exact=true, bool tessellate_non_convex=false, bool generate_ids=true, bool medial_axis=false)
 Generates a Voronoi mesh from a volume and points. More...
 
void volume_mesh_statistics (bool save_histo=false, index_t nb_bins=100)
 Computes and displays various statistics for a hex-dominant mesh. More...
 
void tet_meshing_with_points (const MeshGrobName &points, const NewMeshGrobName &tetrahedra="tetrahedra", bool refine_surface=false, double max_distance=0.2)
 Creates a tetrahedral mesh from a closed surface mesh and a pointset, using tetgen. Initial closed surface is remeshed. More...
 
void tet2hex (const NewMeshGrobName &hexdom_name="hexes", bool prisms=true, bool pyramids=true, double min_normal_cos=0.5, double max_corner_cos=0.6)
 Converts a tetrahedral mesh into a hexahedral dominant mesh by merging tetrahedra. More...
 
void remesh_tetrahedra (double quality=0.5)
 Extracts the boundary of the zone with tetrahedral cells and remeshes it using Tetgen. More...
 
void display_volume ()
 Displays the volume of a mesh.
 
void compute_borders ()
 Copies the border of the volume into the surfacic part of the mesh.
 
- Public Member Functions inherited from OGF::MeshGrobCommands
 MeshGrobCommands ()
 MeshGrobCommands constructor.
 
 ~MeshGrobCommands () override
 MeshGrobCommands destructor.
 
MeshGrobmesh_grob () const
 Gets the MeshGrob. More...
 
- Public Member Functions inherited from OGF::Commands
 Commands ()
 Commands constructor.
 
 ~Commands () override
 Commands destructor.
 
bool invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val) override
 Invokes a method by method name and argument list, and gets the return value. More...
 
Interpreterinterpreter ()
 Gets the main Interpreter. More...
 
void set_chrono (bool value)
 Sets whether timings are reported. More...
 
- Public Member Functions inherited from OGF::Interface
 Interface ()
 Interface constructor.
 
 ~Interface () override
 Interface destructor.
 
Grobgrob () const
 Gets the Grob. More...
 
SceneGraphscene_graph () const
 Gets the SceneGraph. More...
 
Grobget_grob () const
 Gets the current Grob. 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...
 
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...
 

Public Attributes

 __pad0__: void tet_meshing( bool preprocess=false
 
double epsilon =0.001
 
double double max_hole_area =0.01
 
double double bool refine =false
 
double double bool double quality =1.0
 
double double bool double bool keep_regions =false
 
double double bool double bool bool verbose
 
- Public Attributes inherited from OGF::Commands
 __pad0__: bool get_chrono() const { return chrono_
 
- Public Attributes inherited from OGF::Interface
 __pad0__: virtual void set_grob(Grob* value)
 
- Public Attributes inherited from OGF::Object
 __pad0__: virtual index_t get_nb_elements() const
 
 __pad1__: bool equals(const Object* other) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OGF::Commands
static bool command_is_running ()
 Tests whether a command is currently running. More...
 
- 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...
 
- Protected Member Functions inherited from OGF::MeshGrobCommands
virtual void hide_attribute ()
 Hides an attribute shown by show_attribute().
 
virtual void show_attribute (const std::string &attribute_name, MeshGrob *M=nullptr)
 Shows an attribute. More...
 
virtual void show_charts (const std::string &attribute="chart")
 Shows the charts, stored in the "chart" facet attribute.
 
virtual void show_mesh (MeshGrob *M=nullptr)
 Shows the mesh. More...
 
virtual void set_vertices_visibility (bool visible)
 Shows or hides the vertices in the current shader. More...
 
void show_vertices ()
 Shows the vertices in the current shader.
 
void hide_vertices ()
 Hides the vertices in the current shader.
 
virtual void show_UV (const std::string &UV_attribute_name="facet_corners.tex_coord", MeshGrob *M=nullptr)
 Shows the parameterization of a mesh. More...
 
virtual void show_colors (const std::string &attribute="vertices.colors", MeshGrob *M=nullptr)
 Shows the colors of a mesh. 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

Commands that manipulate volume meshes.

Definition at line 55 of file mesh_grob_volume_commands.h.

Member Function Documentation

◆ hex_dominant_meshing()

void OGF::MeshGrobVolumeCommands::hex_dominant_meshing ( const NewMeshGrobName hexdom_name = "hexes",
unsigned int  nb_points = 30000,
bool  prisms = true,
bool  pyramids = true,
bool  border_refine = false,
double  border_max_dist = 0.2,
double  min_normal_cos = 0.5,
double  max_corner_cos = 0.6 
)

Fills a closed mesh with hexaedra (+other cells).

Parameters
[in]hexdom_namename of the generated mesh.
[in]nb_pointsdesired number of points in the generated mesh.
[in]prismsgenerate prisms.
[in]pyramidsgenerate pyramids.
[in]border_refinerefine border in order to lower Haussdorff distance.
[in]border_max_distmaximum distance to reference, as a fraction of input mesh average edge length (TODO: check). \advanced
[in]min_normal_cosminimum angle cosine between two triangular faces merged into an hex face.
[in]max_corner_cosmaximum angle cosine at a quad corner.

◆ remesh_tetrahedra()

void OGF::MeshGrobVolumeCommands::remesh_tetrahedra ( double  quality = 0.5)

Extracts the boundary of the zone with tetrahedral cells and remeshes it using Tetgen.

Parameters
[in]quality1.0 for high quality, 5.0 for low quality. \menu Advanced

◆ tet2hex()

void OGF::MeshGrobVolumeCommands::tet2hex ( const NewMeshGrobName hexdom_name = "hexes",
bool  prisms = true,
bool  pyramids = true,
double  min_normal_cos = 0.5,
double  max_corner_cos = 0.6 
)

Converts a tetrahedral mesh into a hexahedral dominant mesh by merging tetrahedra.

Parameters
[in]hexdom_namename of the generated mesh.
[in]prismsgenerate prisms.
[in]pyramidsgenerate pyramids. \advanced
[in]min_normal_cosminimum angle cosine between two triangular faces merged into an hex face.
[in]max_corner_cosmaximum angle cosine at a quad corner. \menu Advanced

◆ tet_meshing_with_points()

void OGF::MeshGrobVolumeCommands::tet_meshing_with_points ( const MeshGrobName points,
const NewMeshGrobName tetrahedra = "tetrahedra",
bool  refine_surface = false,
double  max_distance = 0.2 
)

Creates a tetrahedral mesh from a closed surface mesh and a pointset, using tetgen. Initial closed surface is remeshed.

Parameters
[in]pointsa pointset that will be inserted into the generated tetrahedral mesh
[in]tetrahedrathe name of the generated tetrahedralized mesh
[in]refine_surfaceif true, insert vertices until distance to original surface is smaller than max_distance
[in]max_distancemaximum distance to original surface, as a proportion of average edge length of original surface \menu Advanced

◆ volume_mesh_statistics()

void OGF::MeshGrobVolumeCommands::volume_mesh_statistics ( bool  save_histo = false,
index_t  nb_bins = 100 
)

Computes and displays various statistics for a hex-dominant mesh.

Parameters
[in]save_histoif true, save dihedral and facet angle histograms
[in]nb_binsnumber of bins in the computed histograms

◆ Voronoi_meshing()

void OGF::MeshGrobVolumeCommands::Voronoi_meshing ( const NewMeshGrobName voronoi = "voronoi",
index_t  nb_cells = 1000,
VoronoiSimplification  simplification = simplify_tet_voro,
double  angle_threshold = 1e-3,
double  shrink = 0.0,
const NewMeshGrobName points = "",
bool  exact = true,
bool  tessellate_non_convex = false,
bool  generate_ids = true,
bool  medial_axis = false 
)

Generates a Voronoi mesh from a volume and points.

Parameters
[out]voronoiname of the generated Voronoi mesh
[in]nb_cellsnumber of Voronoi cells to generate
[in]simplificationspecifies how cells and faces should be simplified
[in]angle_threshold(in degrees) simplify boundary edges whenever their facets have normal angle smaller than threshold
[in]shrinkoptional shrink factor for displaying cells \advanced
[in]pointsoptional name of the pointset used to compute the Voronoi diagram
[in]exactif true, all intersection perdicates are evaluated with exact arithmetics and symbolic perturbations
[in]generate_idsif true, generate ids in attributes. Necessary to output OVM files.
[in]medial_axisif true, generate an approximation of the medial axis (by removing facets from the computed mesh).

Member Data Documentation

◆ verbose

double double bool double bool bool OGF::MeshGrobVolumeCommands::verbose
Initial value:
=false
)

Definition at line 91 of file mesh_grob_volume_commands.h.


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