tf2  master
tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.
transform_storage.h
Go to the documentation of this file.
1 // Copyright 2010, Willow Garage, Inc. All rights reserved.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are met:
5 //
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 //
9 // * Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
12 //
13 // * Neither the name of the Willow Garage nor the names of its
14 // contributors may be used to endorse or promote products derived from
15 // this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 // POSSIBILITY OF SUCH DAMAGE.
30 #ifndef TF2__TRANSFORM_STORAGE_H_
31 #define TF2__TRANSFORM_STORAGE_H_
32 
33 #include "tf2/LinearMath/Vector3.h"
35 #include "tf2/time.h"
36 #include "tf2/visibility_control.h"
37 
38 namespace tf2
39 {
40 typedef uint32_t CompactFrameID;
41 
44 {
45 public:
50  const TimePoint & stamp, const Quaternion & q, const Vector3 & t, CompactFrameID frame_id,
51  CompactFrameID child_frame_id);
52 
55  {
56  *this = rhs;
57  }
58 
61  {
62  rotation_ = rhs.rotation_;
64  stamp_ = rhs.stamp_;
65  frame_id_ = rhs.frame_id_;
67  return *this;
68  }
69 
71  tf2::Vector3 translation_;
75 };
76 } // namespace tf2
77 #endif // TF2__TRANSFORM_STORAGE_H_
tf2::TransformStorage::TransformStorage
TransformStorage()
tf2::TransformStorage::TransformStorage
TransformStorage(const TransformStorage &rhs)
Definition: transform_storage.h:54
tf2::TransformStorage::operator=
TransformStorage & operator=(const TransformStorage &rhs)
Definition: transform_storage.h:60
tf2::TransformStorage::stamp_
TimePoint stamp_
Definition: transform_storage.h:72
tf2::TransformStorage::child_frame_id_
CompactFrameID child_frame_id_
Definition: transform_storage.h:74
tf2::CompactFrameID
uint32_t CompactFrameID
Definition: transform_storage.h:40
tf2::TransformStorage::rotation_
tf2::Quaternion rotation_
Definition: transform_storage.h:70
tf2::TransformStorage
Storage for transforms and their parent.
Definition: transform_storage.h:43
time.h
std::chrono::time_point< std::chrono::system_clock, Duration >
Quaternion.h
tf2::TransformStorage::translation_
tf2::Vector3 translation_
Definition: transform_storage.h:71
tf2::TransformStorage::frame_id_
CompactFrameID frame_id_
Definition: transform_storage.h:73
visibility_control.h
Vector3.h
tf2
Definition: buffer_core.h:53
TF2_PUBLIC
#define TF2_PUBLIC
Definition: visibility_control.h:57
tf2::Quaternion
The Quaternion implements quaternion to perform linear algebra rotations in combination with Matrix3x...
Definition: Quaternion.h:29