Loading...
Searching...
No Matches
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 "sdf/Element.hh"
21#include "sdf/Types.hh"
22#include "sdf/sdf_config.h"
23#include "sdf/system_util.hh"
24
25namespace sdf
26{
27 // Inline bracket to help doxygen filtering.
28 inline namespace SDF_VERSION_NAMESPACE {
29 //
30 // Forward declaration.
31 class ContactPrivate;
32 class SurfacePrivate;
33
36 {
38 public: Contact();
39
42 public: Contact(const Contact &_contact);
43
46 public: Contact(Contact &&_contact) noexcept;
47
51 public: Contact &operator=(Contact &&_contact);
52
56 public: Contact &operator=(const Contact &_contact);
57
59 public: ~Contact();
60
67 public: Errors Load(ElementPtr _sdf);
68
73 public: sdf::ElementPtr Element() const;
74
77 public: uint16_t CollideBitmask() const;
78
80 public: void SetCollideBitmask(const uint16_t _bitmask);
81
83 private: ContactPrivate *dataPtr;
84 };
85
88 {
90 public: Surface();
91
94 public: Surface(const Surface &_surface);
95
98 public: Surface(Surface &&_surface) noexcept;
99
103 public: Surface &operator=(Surface &&_surface);
104
108 public: Surface &operator=(const Surface &_surface);
109
111 public: ~Surface();
112
119 public: Errors Load(ElementPtr _sdf);
120
125 public: sdf::ElementPtr Element() const;
126
130 public: sdf::Contact *Contact() const;
131
134 public: void SetContact(const sdf::Contact &_contact);
135
137 private: SurfacePrivate *dataPtr;
138 };
139 }
140}
141
142#endif
Contact information for a surface.
Definition Surface.hh:36
Contact(Contact &&_contact) noexcept
Move constructor.
void SetCollideBitmask(const uint16_t _bitmask)
Set the collide bitmask parameter.
Contact & operator=(Contact &&_contact)
Move assignment operator.
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.
Errors Load(ElementPtr _sdf)
Load the contact based on a element pointer.
Contact()
Default constructor.
Contact & operator=(const Contact &_contact)
Copy assignment operator.
~Contact()
Destructor.
Contact(const Contact &_contact)
Copy constructor.
Surface information for a collision.
Definition Surface.hh:88
Surface & operator=(Surface &&_surface)
Move assignment operator.
sdf::ElementPtr Element() const
Get a pointer to the SDF element that was used during load.
sdf::Contact * Contact() const
Get the associated contact object.
void SetContact(const sdf::Contact &_contact)
Set the associated contact object.
Errors Load(ElementPtr _sdf)
Load the surface based on a element pointer.
Surface & operator=(const Surface &_surface)
Copy assignment operator.
Surface()
Default constructor.
~Surface()
Destructor.
Surface(const Surface &_surface)
Copy constructor.
Surface(Surface &&_surface) noexcept
Move constructor.
std::vector< Error > Errors
A vector of Error.
Definition Types.hh:89
std::shared_ptr< Element > ElementPtr
Definition Element.hh:53
namespace for Simulation Description Format parser
Definition Actor.hh:33
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition system_util.hh:48