Loading...
Searching...
No Matches
Mesh.hh
Go to the documentation of this file.
1/*
2 * Copyright 2018 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16*/
17#ifndef SDF_MESH_HH_
18#define SDF_MESH_HH_
19
20#include <string>
21#include <optional>
22
23#include <gz/math/Vector3.hh>
24#include <gz/math/Inertial.hh>
25#include <gz/utils/ImplPtr.hh>
27#include <sdf/Element.hh>
28#include <sdf/Error.hh>
29#include <sdf/sdf_config.h>
30
31namespace sdf
32{
33 // Inline bracket to help doxygen filtering.
34 inline namespace SDF_VERSION_NAMESPACE {
35 //
36
37 // Forward declarations.
38 class ParserConfig;
39
42 {
44 NONE,
49 };
50
53 {
56
63 public: Errors Load(ElementPtr _sdf);
64
69 public: sdf::ElementPtr Element() const;
70
73 public: unsigned int MaxConvexHulls() const;
74
77 public: void SetMaxConvexHulls(unsigned int _maxConvexHulls);
78
82 public: unsigned int VoxelResolution() const;
83
87 public: void SetVoxelResolution(unsigned int _voxelResolution);
88
90 GZ_UTILS_IMPL_PTR(dataPtr)
91 };
92
96 {
98 public: Mesh();
99
106 public: Errors Load(ElementPtr _sdf);
107
115 public: Errors Load(sdf::ElementPtr _sdf, const ParserConfig &_config);
116
121
125 public: std::string OptimizationStr() const;
126
129 public: void SetOptimization(MeshOptimization _optimization);
130
136 public: bool SetOptimization(const std::string &_optimizationStr);
137
142
146 const sdf::ConvexDecomposition &_convexDecomposition);
147
150 public: std::string Uri() const;
151
154 public: void SetUri(const std::string &_uri);
155
158 public: const std::string &FilePath() const;
159
162 public: void SetFilePath(const std::string &_filePath);
163
166 public: gz::math::Vector3d Scale() const;
167
170 public: void SetScale(const gz::math::Vector3d &_scale);
171
176 public: std::string Submesh() const;
177
181 public: void SetSubmesh(const std::string &_submesh);
182
188 public: bool CenterSubmesh() const;
189
193 public: void SetCenterSubmesh(const bool _center);
194
203 public: std::optional<gz::math::Inertiald>
205 double _density,
206 const sdf::ElementPtr _autoInertiaParams,
207 const ParserConfig &_config);
208
212 public: sdf::ElementPtr Element() const;
213
219 public: sdf::ElementPtr ToElement() const;
220
227 public: sdf::ElementPtr ToElement(sdf::Errors &_errors) const;
228
230 GZ_UTILS_IMPL_PTR(dataPtr)
231 };
232 }
233}
234#endif
Convex decomposition.
Definition Mesh.hh:53
void SetVoxelResolution(unsigned int _voxelResolution)
Set the voxel resolution to use for representing the mesh.
Errors Load(ElementPtr _sdf)
Load the contact based on a element pointer.
void SetMaxConvexHulls(unsigned int _maxConvexHulls)
Set the maximum number of convex hulls that can be generated.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
unsigned int VoxelResolution() const
Get the voxel resolution to use for representing the mesh.
unsigned int MaxConvexHulls() const
Get the maximum number of convex hulls that can be generated.
Mesh represents a mesh shape, and is usually accessed through a Geometry.
Definition Mesh.hh:96
void SetFilePath(const std::string &_filePath)
Set the path to the file where this element was loaded from.
Errors Load(sdf::ElementPtr _sdf, const ParserConfig &_config)
Load the mesh geometry based on a element pointer.
void SetConvexDecomposition(const sdf::ConvexDecomposition &_convexDecomposition)
Set the associated ConvexDecomposition object.
Errors Load(ElementPtr _sdf)
Load the mesh geometry based on a element pointer.
std::string Submesh() const
A submesh, contained with the mesh at the specified URI, may optionally be specified.
void SetUri(const std::string &_uri)
Set the mesh's URI.
sdf::ElementPtr ToElement() const
Create and return an SDF element filled with data from this mesh.
const std::string & FilePath() const
The path to the file where this element was loaded from.
std::optional< gz::math::Inertiald > CalculateInertial(sdf::Errors &_errors, double _density, const sdf::ElementPtr _autoInertiaParams, const ParserConfig &_config)
Calculate and return the Inertial values for the Mesh.
const sdf::ConvexDecomposition * ConvexDecomposition() const
Get the associated ConvexDecomposition object.
bool CenterSubmesh() const
Get whether the submesh should be centered at 0,0,0.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
bool SetOptimization(const std::string &_optimizationStr)
Set the mesh optimization method.
void SetSubmesh(const std::string &_submesh)
Set the mesh's submesh.
void SetOptimization(MeshOptimization _optimization)
Set the mesh optimization method.
void SetCenterSubmesh(const bool _center)
Set whether the submesh should be centered.
void SetScale(const gz::math::Vector3d &_scale)
Set the mesh's scale factor.
std::string Uri() const
Get the mesh's URI.
MeshOptimization Optimization() const
Get the mesh's optimization method.
std::string OptimizationStr() const
Get the mesh's optimization method.
sdf::ElementPtr ToElement(sdf::Errors &_errors) const
Create and return an SDF element filled with data from this mesh.
gz::math::Vector3d Scale() const
Get the mesh's scale factor.
This class contains configuration options for the libsdformat parser.
Definition ParserConfig.hh:106
std::vector< Error > Errors
A vector of Error.
Definition Types.hh:81
MeshOptimization
Mesh optimization method.
Definition Mesh.hh:42
std::shared_ptr< Element > ElementPtr
Definition Element.hh:55
namespace for Simulation Description Format parser
Definition Actor.hh:35
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition system_util.hh:25