Surface.hh
Go to the documentation of this file.
1/*
2 * Copyright 2020 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_SURFACE_HH_
18#define SDF_SURFACE_HH_
19
20#include <gz/utils/ImplPtr.hh>
21#include "sdf/Element.hh"
22#include "sdf/Types.hh"
23#include "sdf/sdf_config.h"
24#include "sdf/system_util.hh"
25
26namespace sdf
27{
28 // Inline bracket to help doxygen filtering.
29 inline namespace SDF_VERSION_NAMESPACE {
32 {
34 public: Contact();
35
42 public: Errors Load(ElementPtr _sdf);
43
48 public: sdf::ElementPtr Element() const;
49
52 public: uint16_t CollideBitmask() const;
53
55 public: void SetCollideBitmask(const uint16_t _bitmask);
56
58 GZ_UTILS_IMPL_PTR(dataPtr)
59 };
60
63 {
65 public: ODE();
66
73 public: Errors Load(ElementPtr _sdf);
74
77 public: double Mu() const;
78
81 public: void SetMu(double _mu);
82
85 public: double Mu2() const;
86
89 public: void SetMu2(double _mu2);
90
93 public: const gz::math::Vector3d &Fdir1() const;
94
97 public: void SetFdir1(const gz::math::Vector3d &_fdir);
98
101 public: double Slip1() const;
102
105 public: void SetSlip1(double _slip1);
106
109 public: double Slip2() const;
110
113 public: void SetSlip2(double _slip2);
114
119 public: sdf::ElementPtr Element() const;
120
122 GZ_UTILS_IMPL_PTR(dataPtr)
123 };
124
127 {
129 public: Friction();
130
137 public: Errors Load(ElementPtr _sdf);
138
142 public: const sdf::ODE *ODE() const;
143
146 public: void SetODE(const sdf::ODE &_ode);
147
152 public: sdf::ElementPtr Element() const;
153
155 GZ_UTILS_IMPL_PTR(dataPtr)
156 };
157
160 {
162 public: Surface();
163
170 public: Errors Load(ElementPtr _sdf);
171
176 public: sdf::ElementPtr Element() const;
177
181 public: const sdf::Contact *Contact() const;
182
185 public: void SetContact(const sdf::Contact &_contact);
186
190 public: const sdf::Friction *Friction() const;
191
194 public: void SetFriction(const sdf::Friction &_friction);
195
201 public: sdf::ElementPtr ToElement() const;
202
209 public: sdf::ElementPtr ToElement(sdf::Errors &_errors) const;
210
212 GZ_UTILS_IMPL_PTR(dataPtr)
213 };
214 }
215}
216
217#endif
Contact information for a surface.
Definition: Surface.hh:32
Errors Load(ElementPtr _sdf)
Load the contact based on a element pointer.
uint16_t CollideBitmask() const
Get the collide bitmask parameter.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
void SetCollideBitmask(const uint16_t _bitmask)
Set the collide bitmask parameter.
Friction information for a surface.
Definition: Surface.hh:127
void SetODE(const sdf::ODE &_ode)
Set the associated ODE object.
Errors Load(ElementPtr _sdf)
Load the friction based on a element pointer.
const sdf::ODE * ODE() const
Get the associated ODE object.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
ODE information for a friction.
Definition: Surface.hh:63
double Slip1() const
Get the slip1.
const gz::math::Vector3d & Fdir1() const
Get the fdir.
double Mu2() const
Get the Mu2.
void SetFdir1(const gz::math::Vector3d &_fdir)
Set fdir.
void SetMu(double _mu)
Set Mu.
double Mu() const
Set the Mu.
ODE()
Default constructor.
void SetSlip2(double _slip2)
Set Slip2.
double Slip2() const
Get the Slip2.
void SetSlip1(double _slip1)
Set Slip1.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
void SetMu2(double _mu2)
Set Mu2.
Errors Load(ElementPtr _sdf)
Load the ODE based on a element pointer.
Surface information for a collision.
Definition: Surface.hh:160
const sdf::Contact * Contact() const
Get the associated contact object.
sdf::ElementPtr ToElement() const
Create and return an SDF element filled with data from this surface.
void SetContact(const sdf::Contact &_contact)
Set the associated contact object.
sdf::ElementPtr ToElement(sdf::Errors &_errors) const
Create and return an SDF element filled with data from this surface.
void SetFriction(const sdf::Friction &_friction)
Set the associated friction object.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
Errors Load(ElementPtr _sdf)
Load the surface based on a element pointer.
const sdf::Friction * Friction() const
Get the associated friction object.
std::vector< Error > Errors
A vector of Error.
Definition: Types.hh:95
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