Graphite  Version 3
An experimental 3D geometry processing program
mesh_grob_mesh_commands.h
Go to the documentation of this file.
1 /*
2  * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
3  * Copyright (C) 2000-2009 INRIA - Project ALICE
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  * If you modify this software, you should include a notice giving the
20  * name of the person performing the modification, the date of modification,
21  * and the reason for such modification.
22  *
23  * Contact: Bruno Levy - levy@loria.fr
24  *
25  * Project ALICE
26  * LORIA, INRIA Lorraine,
27  * Campus Scientifique, BP 239
28  * 54506 VANDOEUVRE LES NANCY CEDEX
29  * FRANCE
30  *
31  * Note that the GNU General Public License does not permit incorporating
32  * the Software into proprietary programs.
33  *
34  * As an exception to the GPL, Graphite can be linked with the following
35  * (non-GPL) libraries: Qt, SuperLU, WildMagic and CGAL
36  */
37 
38 
39 #ifndef H_OGF_MESH_COMMANDS_MESH_GROB_MESH_COMMANDS_H
40 #define H_OGF_MESH_COMMANDS_MESH_GROB_MESH_COMMANDS_H
41 
42 #include <OGF/mesh/common/common.h>
44 
49 namespace OGF {
50 
54  gom_class MESH_API MeshGrobMeshCommands : public MeshGrobCommands {
55  public:
56 
61 
66 
67  gom_slots:
68 
72  void display_statistics();
73 
78 
89  void copy(
90  const std::string& name,
91  bool edges = true,
92  bool facets = true,
93  bool cells = true,
94  bool attributes = true,
95  bool kill_isolated_vx = false
96  );
97 
108  bool vertices=false,
109  bool edges=false,
110  bool facets=false,
111  bool cells=false,
112  bool kill_isolated_vx=false
113  );
114 
119 
128  double Cx = 0.0,
129  double Cy = 0.0,
130  double Cz = 0.0,
131  double radius = 1.0
132  );
133 
142  double xmin = 0.0,
143  double ymin = 0.0,
144  double zmin = 0.0,
145  double xmax = 1.0,
146  double ymax = 1.0,
147  double zmax = 1.0,
148  bool uniform = true
149  );
150 
151 
157  void append(const MeshGrobName& other);
158 
163  void gather(const NewMeshGrobName& new_mesh);
164  };
165 }
166 
167 #endif
168 
Base class for Commands related with a MeshGrob object.
Commands that manipulate the mesh in a MeshGrob.
void copy(const std::string &name, bool edges=true, bool facets=true, bool cells=true, bool attributes=true, bool kill_isolated_vx=false)
Copies a mesh.
void gather(const NewMeshGrobName &new_mesh)
Gathers all surface meshes into a single surface mesh.
void remove_mesh_elements(bool vertices=false, bool edges=false, bool facets=false, bool cells=false, bool kill_isolated_vx=false)
Remove mesh elements.
void normalize_mesh(double Cx=0.0, double Cy=0.0, double Cz=0.0, double radius=1.0)
Scales and translates a mesh to fit within a sphere.
void display_topology()
computes and displays some topological invariants.
void remove_isolated_vertices()
Remove isolated vertices.
MeshGrobMeshCommands()
MeshGrobMeshCommands constructor.
~MeshGrobMeshCommands() override
MeshGrobMeshCommands destructor.
void normalize_mesh_box(double xmin=0.0, double ymin=0.0, double zmin=0.0, double xmax=1.0, double ymax=1.0, double zmax=1.0, bool uniform=true)
Scales and translates a mesh to fit within a box.
void append(const MeshGrobName &other)
Appends a surface mesh to this mesh. Note: for now, only works for surfaces, and does not append attr...
A template class for strings that need to have a specific type in the GOM system.
Definition: properties.h:218
Base class for Commands related with a MeshGrob object.
Global Graphite namespace.
Definition: common.h:76
Definitions common to all include files in the mesh library.