Loading...
Searching...
No Matches
SemanticPose.hh
Go to the documentation of this file.
1/*
2 * Copyright 2019 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_SEMANTIC_POSE_HH_
18#define SDF_SEMANTIC_POSE_HH_
19
20#include <memory>
21#include <string>
22#include <ignition/math/Pose3.hh>
23
24#include <sdf/Error.hh>
25#include <sdf/Element.hh>
26#include <sdf/sdf_config.h>
27#include "sdf/system_util.hh"
28
29#ifdef _WIN32
30// Disable warning C4251 which is triggered by
31// std::unique_ptr
32#pragma warning(push)
33#pragma warning(disable: 4251)
34#endif
35
36namespace sdf
37{
38 // Inline bracket to help doxygen filtering.
39 inline namespace SDF_VERSION_NAMESPACE {
40 //
41
42 // Forward declare private data class.
43 class SemanticPosePrivate;
44 struct PoseRelativeToGraph;
45
54 {
57 public: const ignition::math::Pose3d &RawPose() const;
58
63 public: const std::string &RelativeTo() const;
64
72 public: Errors Resolve(ignition::math::Pose3d &_pose,
73 const std::string &_resolveTo = "") const;
74
82 private: SemanticPose(
83 const ignition::math::Pose3d &_pose,
84 const std::string &_relativeTo,
85 const std::string &_defaultResolveTo,
86 std::weak_ptr<const sdf::PoseRelativeToGraph> _graph);
87
89 public: ~SemanticPose();
90
93 public: SemanticPose(const SemanticPose &_semanticPose);
94
97 public: SemanticPose(SemanticPose &&_semanticPose) noexcept;
98
102 public: SemanticPose &operator=(SemanticPose &&_semanticPose);
103
107 public: SemanticPose &operator=(const SemanticPose &_semanticPose);
108
109 friend class Collision;
110 friend class Frame;
111 friend class Joint;
112 friend class Light;
113 friend class Link;
114 friend class Model;
115 friend class Sensor;
116 friend class Visual;
117
119 private: std::unique_ptr<SemanticPosePrivate> dataPtr;
120 };
121 }
122}
123
124#ifdef _WIN32
125#pragma warning(pop)
126#endif
127
128#endif
Information about an SDF sensor.
Definition Sensor.hh:122
A collision element descibes the collision properties associated with a link.
Definition Collision.hh:45
A Frame element descibes the properties associated with an explicit frame defined in a Model or World...
Definition Frame.hh:42
Definition Joint.hh:84
Provides a description of a light source.
Definition Light.hh:63
Definition Model.hh:44
SemanticPose is a data structure that can be used by different DOM objects to resolve poses on a Pose...
Definition SemanticPose.hh:54
SemanticPose & operator=(const SemanticPose &_semanticPose)
Copy assignment operator.
Errors Resolve(ignition::math::Pose3d &_pose, const std::string &_resolveTo="") const
Resolve pose of this object with respect to another named frame.
SemanticPose(SemanticPose &&_semanticPose) noexcept
Move constructor.
const ignition::math::Pose3d & RawPose() const
Get the raw Pose3 transform.
const std::string & RelativeTo() const
Get the name of the coordinate frame relative to which this object's pose is expressed.
SemanticPose(const SemanticPose &_semanticPose)
Copy constructor.
SemanticPose & operator=(SemanticPose &&_semanticPose)
Move assignment operator.
~SemanticPose()
Destructor.
Definition Visual.hh:46
std::vector< Error > Errors
A vector of Error.
Definition Types.hh:89
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