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 
25 namespace 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
class SDFORMAT_VISIBLE Element
Definition: Element.hh:49
Surface information for a collision.
Definition: Surface.hh:87
std::shared_ptr< Element > ElementPtr
Definition: Element.hh:53
std::vector< Error > Errors
A vector of Error.
Definition: Types.hh:89
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system_util.hh:48
Contact information for a surface.
Definition: Surface.hh:35
namespace for Simulation Description Format parser
Definition: Actor.hh:32