|
Graphite Version 3
An experimental 3D geometry processing program
|
Commands that manipulate surface meshes. More...
#include <OGF/mesh/commands/mesh_grob_surface_commands.h>
Public Types | |
| enum | Parameterizer { LSCM , SpectralLSCM , ABFplusplus } |
Public Member Functions | |
| MeshGrobSurfaceCommands () | |
| MeshGrobSurfaceCommands constructor. | |
| ~MeshGrobSurfaceCommands () override | |
| MeshGrobSurfaceCommands destructor. | |
| void | merge_vertices (double epsilon=0.0) |
| Merges vertices that are at the same location or within tolerance. | |
| void | expand_border (double margin=0.05) |
| Preprocessing for remesh_feature_sensitive. | |
| void | fill_holes (index_t max_nb_vertices=0) |
| Fills the holes of the surface. | |
| void | fix_facets_orientation () |
| Fixes facets orientation based on computed visibility. | |
| void | remove_invisible_facets (double min_visibility=0.005) |
| Removes all facets that have visibility smaller than a given threshold. | |
| MeshGrob * | remesh_smooth (const NewMeshGrobName &remesh="remesh", unsigned int nb_points=30000, double tri_shape_adapt=1.0, double tri_size_adapt=0.0, bool adjust=true, double adjust_max_edge_distance=0.5, unsigned int normal_iter=3, unsigned int Lloyd_iter=5, unsigned int Newton_iter=30, unsigned int Newton_m=7, unsigned int LFS_samples=10000) |
| Remeshes a (smooth) surface. | |
| MeshGrob * | remesh_feature_sensitive (const NewMeshGrobName &remesh="remesh", unsigned int nb_points=30000, bool refine=false, double max_dist=0.5, double normal_anisotropy=5.0, unsigned int nb_Lloyd_iter=5, unsigned int nb_Newton_iter=30, unsigned int nb_LpCVT_iter=10, unsigned int Newton_m=7, bool RVC_centroids=false) |
| Remeshes a surface that has sharp features. | |
| MeshGrob * | remesh_quad_dominant (const NewMeshGrobName &remesh="remesh", double rel_edge_len=1.0, bool sharp_features=true, bool optimize_parity=false, double max_scaling_corr=1.0) |
| Generates a quad-dominant mesh. | |
| MeshGrob * | compute_union (const MeshGrobName &other, const NewMeshGrobName &result="result", bool pre_process=false, bool post_process=false) |
| Computes the union between two meshes. | |
| MeshGrob * | compute_intersection (const MeshGrobName &other, const NewMeshGrobName &result="result", bool pre_process=false, bool post_process=false) |
| Computes the intersection between two meshes. | |
| MeshGrob * | compute_difference (const MeshGrobName &other, const NewMeshGrobName &result="result", bool pre_process=false, bool post_process=false) |
| Computes the difference between two meshes. | |
| gom_arg_attribute (operation, handler, "combo_box") gom_arg_attribute(operation | |
| Computes a boolean operation between two meshes. | |
| B A MeshGrob * | compute_boolean_operation (const MeshGrobName &other, const NewMeshGrobName &result="result", const std::string &operation="A+B", bool pre_process=false, bool post_process=false) |
| void | intersect (bool remove_internal_shells=true, bool simplify_coplanar_facets=true, double coplanar_angle_tolerance=0.001, bool interpolate_attributes=false, bool verbose=false, const NewMeshGrobName &skeleton="") |
| Computes intersections in a surface mesh. | |
| void | decimate (index_t nb_bins=100, bool remove_deg3_vrtx=true, bool keep_borders=true, bool repair=true) |
| Simplifies a surface using vertex clustering. | |
| void | split_triangles (index_t nb_times=1) |
| Splits all the triangles of a simplicial mesh into four triangles. | |
| void | split_quads (index_t nb_times=1) |
| Splits all the facets of a mesh into quads. | |
| void | split_catmull_clark (index_t nb_times=1) |
| Splits all the facets of a mesh into quads using Catmull-Clark subdivision. | |
| void | tessellate_facets (index_t max_vertices_per_facet=4) |
| Subdivides the facets until they have less than the specified number of vertices. | |
| void | triangulate () |
| Triangulates all the facets. | |
| void | triangulate_center_vertex () |
| Triangulates all the facets by inserting a vertex in the center of each facet. | |
| void | smooth () |
| Smooths the mesh by optimizing the vertices that are not selected. Selected vertices are locked. | |
| void | segment (MeshSegmenter segmenter=SEGMENT_GEOMETRIC_VSA_L2, index_t nb_segments=10) |
| Segments a mesh. | |
| void | get_charts () |
| Gets the charts attribute from a parameterized mesh. | |
| void | remove_charts () |
| Removes the charts attribute. | |
| void | unglue_sharp_edges (double angle_threshold=90) |
| Unglues facet edges based on specified angle. | |
| void | unglue_charts () |
| Unglues facet edges adjacent to two different charts. | |
| void | make_texture_atlas (bool detect_sharp_edges=false, double sharp_edges_threshold=45.0, ChartParameterizer param=PARAM_ABF, ChartPacker pack=PACK_XATLAS, bool verbose=false) |
| Computes texture coordinates of a surface. | |
| void | pack_texture_space (ChartPacker pack=PACK_XATLAS) |
| Packs charts in texture space. | |
| void | parameterize_chart (const std::string &attribute="tex_coord", ChartParameterizer param=PARAM_LSCM, bool verbose=false) |
| Computes texture coordinates of a single unfoldable surface. | |
| void | bake_normals (const MeshGrobName &surface, index_t size=1024, const NewImageFileName &image="normals.png", index_t nb_dilate=2, const std::string &tex_coord="tex_coord") |
| Bakes normals from a surface to the texture atlas. | |
| void | bake_colors (const MeshGrobName &surface, const std::string &color="color", index_t size=1024, const NewImageFileName &image="colors.png", index_t nb_dilate=2, const std::string &attribute="tex_coord") |
| Bakes colors from a surface to the texture atlas. | |
| void | bake_texture (const MeshGrobName &src_surface, const ImageFileName &src_texture, const std::string &src_tex_coord="tex_coord", index_t size=1024, const NewImageFileName &image="texture.png", index_t nb_dilate=2, const std::string &tex_coord="tex_coord") |
| Bakes texture from a textured surface to an atlas. | |
Public Member Functions inherited from OGF::MeshGrobCommands | |
| MeshGrobCommands () | |
| MeshGrobCommands constructor. | |
| ~MeshGrobCommands () override | |
| MeshGrobCommands destructor. | |
| MeshGrob * | mesh_grob () const |
| Gets the MeshGrob. | |
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. | |
| Interpreter * | interpreter () |
| Gets the main Interpreter. | |
| void | set_chrono (bool value) |
| Sets whether timings are reported. | |
Public Member Functions inherited from OGF::Interface | |
| Interface () | |
| Interface constructor. | |
| ~Interface () override | |
| Interface destructor. | |
| Grob * | grob () const |
| Gets the Grob. | |
| SceneGraph * | scene_graph () const |
| Gets the SceneGraph. | |
| Grob * | get_grob () const |
| Gets the current Grob. | |
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. | |
| 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 | |
| : void repair_surface( double epsilon = 1e-6 | |
| double | min_comp_area = 0.03 |
| double double | max_hole_area = 1e-3 |
| double double double | max_hole_edges = 2000 |
| double double double double | max_degree3_dist = 0.0 |
| double double double double bool | remove_intersections |
| values | |
| A | B |
| A * | B |
Public Attributes inherited from OGF::Commands | |
| : bool get_chrono() const { return chrono_ | |
Public Attributes inherited from OGF::Interface | |
| : virtual void set_grob(Grob* value) | |
Public Attributes inherited from OGF::Object | |
| : virtual index_t get_nb_elements() const | |
| : 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. | |
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 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. | |
| 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. | |
| virtual void | set_vertices_visibility (bool visible) |
| Shows or hides the vertices in the current shader. | |
| 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. | |
| virtual void | show_colors (const std::string &attribute="vertices.colors", MeshGrob *M=nullptr) |
| Shows the colors of a mesh. | |
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. | |
Commands that manipulate surface meshes.
Definition at line 58 of file mesh_grob_surface_commands.h.
| enum OGF::MeshGrobSurfaceCommands::Parameterizer |
Definition at line 424 of file mesh_grob_surface_commands.h.
| void OGF::MeshGrobSurfaceCommands::bake_colors | ( | const MeshGrobName & | surface, |
| const std::string & | color = "color", |
||
| index_t | size = 1024, |
||
| const NewImageFileName & | image = "colors.png", |
||
| index_t | nb_dilate = 2, |
||
| const std::string & | attribute = "tex_coord" |
||
| ) |
Bakes colors from a surface to the texture atlas.
\menu Atlas/Baking
| [in] | surface | the name of the mesh with colors to be baked. can be the current mesh or another one with higher-resolution. |
| [in] | color | the name of the attribute with the colors to be baked. |
| [in] | size | pixel-size of the generated normal map. |
| [in] | image | filename of the generated normal map. |
| [in] | nb_dilate | number of dilations |
| [in] | attribute | the name of the facet corner attribute that stores texture coordinates. |
| void OGF::MeshGrobSurfaceCommands::bake_normals | ( | const MeshGrobName & | surface, |
| index_t | size = 1024, |
||
| const NewImageFileName & | image = "normals.png", |
||
| index_t | nb_dilate = 2, |
||
| const std::string & | tex_coord = "tex_coord" |
||
| ) |
Bakes normals from a surface to the texture atlas.
\menu Atlas/Baking
| [in] | surface | the name of the mesh with normals to be baked. can be the current mesh or another one with higher-resolution normals. |
| [in] | size | pixel-size of the generated normal map. |
| [in] | image | filename of the generated normal map. |
| [in] | nb_dilate | number of dilations |
| [in] | tex_coord | the name of the facet corner attribute that stores texture coordinates. |
| void OGF::MeshGrobSurfaceCommands::bake_texture | ( | const MeshGrobName & | src_surface, |
| const ImageFileName & | src_texture, | ||
| const std::string & | src_tex_coord = "tex_coord", |
||
| index_t | size = 1024, |
||
| const NewImageFileName & | image = "texture.png", |
||
| index_t | nb_dilate = 2, |
||
| const std::string & | tex_coord = "tex_coord" |
||
| ) |
Bakes texture from a textured surface to an atlas.
\menu Atlas/Baking
| [in] | src_surface | the name of the mesh with the texture to be baked. can be the current mesh or another one with higher-resolution normals |
| [in] | src_texture | the texture associated with src_surface |
| [in] | src_tex_coord | the source facet corner attribute with the texture coordinates |
| [in] | size | pixel-size of the generated texture |
| [in] | image | filename of the generated texture |
| [in] | nb_dilate | number of dilations |
| [in] | tex_coord | the name of the facet corner attribute that stores texture coordinates for the generated texture |
| MeshGrob * OGF::MeshGrobSurfaceCommands::compute_difference | ( | const MeshGrobName & | other, |
| const NewMeshGrobName & | result = "result", |
||
| bool | pre_process = false, |
||
| bool | post_process = false |
||
| ) |
Computes the difference between two meshes.
\menu Boolean operations
| [in] | other | name of the other mesh |
| [in] | result | name of the result mesh \advanced |
| [in] | pre_process | triangulate, inputs, remove small edges, make sure there is no intersection |
| [in] | post_process | triangulate result, remove small edges, make sure there is no intersection |
| MeshGrob * OGF::MeshGrobSurfaceCommands::compute_intersection | ( | const MeshGrobName & | other, |
| const NewMeshGrobName & | result = "result", |
||
| bool | pre_process = false, |
||
| bool | post_process = false |
||
| ) |
Computes the intersection between two meshes.
\menu Boolean operations
| [in] | other | name of the other mesh |
| [in] | result | name of the result mesh \advanced |
| [in] | pre_process | triangulate, inputs, remove small edges, make sure there is no intersection |
| [in] | post_process | triangulate result, remove small edges, make sure there is no intersection |
| MeshGrob * OGF::MeshGrobSurfaceCommands::compute_union | ( | const MeshGrobName & | other, |
| const NewMeshGrobName & | result = "result", |
||
| bool | pre_process = false, |
||
| bool | post_process = false |
||
| ) |
Computes the union between two meshes.
\menu Boolean operations
| [in] | other | name of the other mesh |
| [in] | result | name of the result mesh \advanced |
| [in] | pre_process | triangulate, inputs, remove small edges, make sure there is no intersection |
| [in] | post_process | triangulate result, remove small edges, make sure there is no intersection |
| void OGF::MeshGrobSurfaceCommands::decimate | ( | index_t | nb_bins = 100, |
| bool | remove_deg3_vrtx = true, |
||
| bool | keep_borders = true, |
||
| bool | repair = true |
||
| ) |
Simplifies a surface using vertex clustering.
\menu Remesh
| [in] | nb_bins | the higher, the more detailed mesh. |
| [in] | remove_deg3_vrtx | if true, remove degree 3 vertices |
| [in] | keep_borders | if true, do not decimate vertices on the border |
| [in] | repair | if true, repairs the mesh to remove non-manifold edges and borders |
| void OGF::MeshGrobSurfaceCommands::expand_border | ( | double | margin = 0.05 | ) |
Preprocessing for remesh_feature_sensitive.
\menu Repair
| [in] | margin | margin to be added to borders, in % of bbox diagonal. |
| void OGF::MeshGrobSurfaceCommands::fill_holes | ( | index_t | max_nb_vertices = 0 | ) |
Fills the holes of the surface.
\menu Repair
| [in] | max_nb_vertices | maximum number of vertices around a hole. |
| void OGF::MeshGrobSurfaceCommands::fix_facets_orientation | ( | ) |
Fixes facets orientation based on computed visibility.
\menu Repair
| void OGF::MeshGrobSurfaceCommands::get_charts | ( | ) |
Gets the charts attribute from a parameterized mesh.
\menu Atlas/Segmentation
| OGF::MeshGrobSurfaceCommands::gom_arg_attribute | ( | operation | , |
| handler | , | ||
| "combo_box" | |||
| ) |
Computes a boolean operation between two meshes.
\menu Boolean operations
| [in] | other | name of the other mesh |
| [in] | result | name of the result mesh |
| [in] | operation | one of "A+B", "A*B", "A-B", "B-A" \advanced |
| [in] | pre_process | triangulate, inputs, remove small edges, make sure there is no intersection |
| [in] | post_process | triangulate result, remove small edges, make sure there is no intersection |
| void OGF::MeshGrobSurfaceCommands::intersect | ( | bool | remove_internal_shells = true, |
| bool | simplify_coplanar_facets = true, |
||
| double | coplanar_angle_tolerance = 0.001, |
||
| bool | interpolate_attributes = false, |
||
| bool | verbose = false, |
||
| const NewMeshGrobName & | skeleton = "" |
||
| ) |
Computes intersections in a surface mesh.
\menu Boolean operations
| [in] | remove_internal_shells | keep only facets on external hull |
| [in] | simplify_coplanar_facets | retriangulates planar zones |
| [in] | coplanar_angle_tolerance | in degrees |
| [in] | interpolate_attributes | interpolate facet corner attributes on generated intersections. Deactivates coplanar facets simplification if set. |
| [in] | verbose | if set, displays additional information |
| [in] | skeleton | if set, stores the intersection line |
| void OGF::MeshGrobSurfaceCommands::make_texture_atlas | ( | bool | detect_sharp_edges = false, |
| double | sharp_edges_threshold = 45.0, |
||
| ChartParameterizer | param = PARAM_ABF, |
||
| ChartPacker | pack = PACK_XATLAS, |
||
| bool | verbose = false |
||
| ) |
Computes texture coordinates of a surface.
\menu Atlas/Parameterization
| [in] | detect_sharp_edges | if true, generate chart boundary on edges with angle is larger than threshold. |
| [in] | sharp_edges_threshold | if the angle between the normals of two adjacent facets is larger than this threshold then the edge will be a chart boundary. |
| [in] | param | the algorithm used for parameterizing the charts. use ABF for best quality, or LSCM for faster result. |
| [in] | verbose | if true, display statistics during atlas generation. |
| [in] | pack | one of PACK_TETRIS, PACK_XATLAS |
| void OGF::MeshGrobSurfaceCommands::merge_vertices | ( | double | epsilon = 0.0 | ) |
Merges vertices that are at the same location or within tolerance.
\menu Repair
| [in] | epsilon | Tolerance for merging vertices, in % of bbox diagonal. |
| void OGF::MeshGrobSurfaceCommands::pack_texture_space | ( | ChartPacker | pack = PACK_XATLAS | ) |
Packs charts in texture space.
\menu Atlas/Parameterization
| [in] | pack | one of PACK_TETRIS, PACK_XATLAS |
| void OGF::MeshGrobSurfaceCommands::parameterize_chart | ( | const std::string & | attribute = "tex_coord", |
| ChartParameterizer | param = PARAM_LSCM, |
||
| bool | verbose = false |
||
| ) |
Computes texture coordinates of a single unfoldable surface.
\menu Atlas/Parameterization
| [in] | attribute | the name of the attribute that will store texture coordinates. |
| [in] | param | one of LSCM, SpectralLSCM, ABFplusplus. |
| [in] | verbose | if true, display statistics during atlas generation. |
| MeshGrob * OGF::MeshGrobSurfaceCommands::remesh_feature_sensitive | ( | const NewMeshGrobName & | remesh = "remesh", |
| unsigned int | nb_points = 30000, |
||
| bool | refine = false, |
||
| double | max_dist = 0.5, |
||
| double | normal_anisotropy = 5.0, |
||
| unsigned int | nb_Lloyd_iter = 5, |
||
| unsigned int | nb_Newton_iter = 30, |
||
| unsigned int | nb_LpCVT_iter = 10, |
||
| unsigned int | Newton_m = 7, |
||
| bool | RVC_centroids = false |
||
| ) |
Remeshes a surface that has sharp features.
\menu Remesh
| [in] | remesh | name of the generated mesh. |
| [in] | nb_points | desired number of points in the generated mesh. |
| [in] | refine | refine border in order to lower Haussdorff distance. |
| [in] | max_dist | maximum distance to reference, as a fraction of generated mesh average edge length. \advanced |
| [in] | normal_anisotropy | determines how sharp features are taken into account. |
| [in] | nb_Lloyd_iter | number of Lloyd iterations for CVT. |
| [in] | nb_Newton_iter | number of Newton iterations for CVT. |
| [in] | nb_LpCVT_iter | number of feature-sensitive iterations. |
| [in] | Newton_m | number of inner Newton iterations for CVT. |
| [in] | RVC_centroids | use centroids of restricted Voronoi cells. |
| MeshGrob * OGF::MeshGrobSurfaceCommands::remesh_quad_dominant | ( | const NewMeshGrobName & | remesh = "remesh", |
| double | rel_edge_len = 1.0, |
||
| bool | sharp_features = true, |
||
| bool | optimize_parity = false, |
||
| double | max_scaling_corr = 1.0 |
||
| ) |
Generates a quad-dominant mesh.
\menu Remesh
| [in] | remesh | name of the generated mesh. |
| [in] | rel_edge_len | relative edge length. |
| [in] | sharp_features | true for CAD mesh, false otherwise |
| [in] | optimize_parity | tentatively optimize parity. |
| [in] | max_scaling_corr | maximum scaling correction (use 1.0 to disable). |
| MeshGrob * OGF::MeshGrobSurfaceCommands::remesh_smooth | ( | const NewMeshGrobName & | remesh = "remesh", |
| unsigned int | nb_points = 30000, |
||
| double | tri_shape_adapt = 1.0, |
||
| double | tri_size_adapt = 0.0, |
||
| bool | adjust = true, |
||
| double | adjust_max_edge_distance = 0.5, |
||
| unsigned int | normal_iter = 3, |
||
| unsigned int | Lloyd_iter = 5, |
||
| unsigned int | Newton_iter = 30, |
||
| unsigned int | Newton_m = 7, |
||
| unsigned int | LFS_samples = 10000 |
||
| ) |
Remeshes a (smooth) surface.
\menu Remesh
| [in] | remesh | name of the generated surface mesh. |
| [in] | nb_points | desired number of points in the generated mesh. |
| [in] | tri_shape_adapt | adapt triangle shapes (0.0 means no shape adapation, 1.0 for moderate shape adaptation, ...) |
| [in] | tri_size_adapt | adapt triangle sizes (0.0 means no size adaptation, 1.0 for moderate size adaptation, ...) |
| [in] | adjust | if true, adjust the triangles of the remesh to better approximate the input mesh |
| [in] | adjust_max_edge_distance | maximum adjustment, relative to local average edge length \advanced |
| [in] | normal_iter | number of normal smoothing iterations (if anisotropy is non-zero). |
| [in] | Lloyd_iter | number of Lloyd iterations for CVT. |
| [in] | Newton_iter | number of Newton iterations for CVT. |
| [in] | Newton_m | number of inner Newton iterations for CVT. |
| [in] | LFS_samples | number of samples. used to compute gradation. |
| void OGF::MeshGrobSurfaceCommands::remove_charts | ( | ) |
Removes the charts attribute.
\menu Atlas/Segmentation
| void OGF::MeshGrobSurfaceCommands::remove_invisible_facets | ( | double | min_visibility = 0.005 | ) |
Removes all facets that have visibility smaller than a given threshold.
\menu Repair
| [in] | min_visibility | minimum visibility to keep a facet |
| void OGF::MeshGrobSurfaceCommands::segment | ( | MeshSegmenter | segmenter = SEGMENT_GEOMETRIC_VSA_L2, |
| index_t | nb_segments = 10 |
||
| ) |
Segments a mesh.
\menu Atlas/Segmentation
| void OGF::MeshGrobSurfaceCommands::split_catmull_clark | ( | index_t | nb_times = 1 | ) |
Splits all the facets of a mesh into quads using Catmull-Clark subdivision.
\menu Subdivision
| [in] | nb_times | number of times the facets are split. |
| void OGF::MeshGrobSurfaceCommands::split_quads | ( | index_t | nb_times = 1 | ) |
Splits all the facets of a mesh into quads.
\menu Subdivision
| [in] | nb_times | number of times the facets are split. |
| void OGF::MeshGrobSurfaceCommands::split_triangles | ( | index_t | nb_times = 1 | ) |
Splits all the triangles of a simplicial mesh into four triangles.
\menu Subdivision
| [in] | nb_times | number of times the triangles are split. |
| void OGF::MeshGrobSurfaceCommands::tessellate_facets | ( | index_t | max_vertices_per_facet = 4 | ) |
Subdivides the facets until they have less than the specified number of vertices.
\menu Subdivision
|
inline |
Triangulates all the facets.
\menu Subdivision
Definition at line 403 of file mesh_grob_surface_commands.h.
| void OGF::MeshGrobSurfaceCommands::triangulate_center_vertex | ( | ) |
Triangulates all the facets by inserting a vertex in the center of each facet.
\menu Subdivision
| void OGF::MeshGrobSurfaceCommands::unglue_charts | ( | ) |
Unglues facet edges adjacent to two different charts.
\menu Atlas/Segmentation
| void OGF::MeshGrobSurfaceCommands::unglue_sharp_edges | ( | double | angle_threshold = 90 | ) |
Unglues facet edges based on specified angle.
\menu Atlas/Segmentation
| [in] | angle_threshold | unglue facets along edge if angle between adjacent facet is larger than threshold |
| OGF::MeshGrobSurfaceCommands::__pad0__ |
Definition at line 71 of file mesh_grob_surface_commands.h.
| A OGF::MeshGrobSurfaceCommands::B |
Definition at line 316 of file mesh_grob_surface_commands.h.
| A* OGF::MeshGrobSurfaceCommands::B |
Definition at line 316 of file mesh_grob_surface_commands.h.
| double double double double OGF::MeshGrobSurfaceCommands::max_degree3_dist = 0.0 |
Definition at line 96 of file mesh_grob_surface_commands.h.
| double double OGF::MeshGrobSurfaceCommands::max_hole_area = 1e-3 |
Definition at line 94 of file mesh_grob_surface_commands.h.
| double double double OGF::MeshGrobSurfaceCommands::max_hole_edges = 2000 |
Definition at line 95 of file mesh_grob_surface_commands.h.
| double OGF::MeshGrobSurfaceCommands::min_comp_area = 0.03 |
Definition at line 93 of file mesh_grob_surface_commands.h.
| double double double double bool OGF::MeshGrobSurfaceCommands::remove_intersections |
Definition at line 97 of file mesh_grob_surface_commands.h.
| OGF::MeshGrobSurfaceCommands::values |
Definition at line 316 of file mesh_grob_surface_commands.h.