Graphite  Version 3
An experimental 3D geometry processing program
voxel_grob_attributes_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_VOXEL_COMMANDS_VOXEL_GROB_ATTRIBUTES_COMMANDS_H
40 #define H_OGF_VOXEL_COMMANDS_VOXEL_GROB_ATTRIBUTES_COMMANDS_H
41 
45 
51 namespace OGF {
52 
56  gom_class VOXEL_API VoxelGrobAttributesCommands : public VoxelGrobCommands {
57  public:
58 
63 
68 
69  gom_slots:
70 
80  void init_box_from_object(
81  const GrobName& object,
82  index_t nu = 128,
83  index_t nv = 128,
84  index_t nw = 128
85  );
86 
91  void delete_attribute(const std::string& name);
92 
93 
101  const std::string& name,
102  float min_val = 0.0, float max_val = 1.0
103  );
104 
113  const MeshGrobName& surface,
114  const std::string& attribute="distance",
115  bool signed_dist=false
116  );
117 
131  const MeshGrobName& points,
132  const std::string& attribute="distance",
133  index_t depth = 8,
134  const NewMeshGrobName& reconstruction="reconstruction"
135  );
136 
137 
145  const std::string& attribute,
146  const FileName& filename
147  );
148 
149  /*********************************************************************/
150 
151  };
152 
153 }
154 #endif
155 
A template class for strings that need to have a specific type in the GOM system.
Definition: properties.h:218
Commands that manipulate voxel attributes.
void Poisson_reconstruction(const MeshGrobName &points, const std::string &attribute="distance", index_t depth=8, const NewMeshGrobName &reconstruction="reconstruction")
Reconstructs a surface from points and normals using Misha Kahzdan's Screened Poisson Reconstruction.
void delete_attribute(const std::string &name)
Deletes an attribute.
void normalize_attribute(const std::string &name, float min_val=0.0, float max_val=1.0)
Normalizes a floating-point attribute.
void load_attribute(const std::string &attribute, const FileName &filename)
Loads an attribute for a 32 bit floating point raw file.
~VoxelGrobAttributesCommands() override
VoxelGrobAttributesCommands destructor.
VoxelGrobAttributesCommands()
VoxelGrobAttributesCommands constructor.
void compute_distance_to_surface(const MeshGrobName &surface, const std::string &attribute="distance", bool signed_dist=false)
Computes the distance between each vertex and a surface.
Base class for Commands related with a VoxelGrob object.
the MeshGrob class.
geo_index_t index_t
The type for storing and manipulating indices.
Definition: numeric.h:329
Global Graphite namespace.
Definition: common.h:76
Definitions common to all include files in the voxel library.
Base class for Commands related with a VoxelGrob object.