transform.cc
Go to the documentation of this file.
00001 /*
00002  * Copyright 2016 The Cartographer Authors
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #include "cartographer/transform/transform.h"
00018 
00019 namespace cartographer {
00020 namespace transform {
00021 
00022 Rigid2d ToRigid2(const proto::Rigid2d& transform) {
00023   return Rigid2d({transform.translation().x(), transform.translation().y()},
00024                  transform.rotation());
00025 }
00026 
00027 Eigen::Vector2d ToEigen(const proto::Vector2d& vector) {
00028   return Eigen::Vector2d(vector.x(), vector.y());
00029 }
00030 
00031 Eigen::Vector3f ToEigen(const proto::Vector3f& vector) {
00032   return Eigen::Vector3f(vector.x(), vector.y(), vector.z());
00033 }
00034 
00035 Eigen::Vector4f ToEigen(const proto::Vector4f& vector) {
00036   return Eigen::Vector4f(vector.x(), vector.y(), vector.z(), vector.t());
00037 }
00038 
00039 Eigen::Vector3d ToEigen(const proto::Vector3d& vector) {
00040   return Eigen::Vector3d(vector.x(), vector.y(), vector.z());
00041 }
00042 
00043 Eigen::Quaterniond ToEigen(const proto::Quaterniond& quaternion) {
00044   return Eigen::Quaterniond(quaternion.w(), quaternion.x(), quaternion.y(),
00045                             quaternion.z());
00046 }
00047 
00048 proto::Rigid2d ToProto(const transform::Rigid2d& transform) {
00049   proto::Rigid2d proto;
00050   proto.mutable_translation()->set_x(transform.translation().x());
00051   proto.mutable_translation()->set_y(transform.translation().y());
00052   proto.set_rotation(transform.rotation().angle());
00053   return proto;
00054 }
00055 
00056 proto::Rigid2f ToProto(const transform::Rigid2f& transform) {
00057   proto::Rigid2f proto;
00058   proto.mutable_translation()->set_x(transform.translation().x());
00059   proto.mutable_translation()->set_y(transform.translation().y());
00060   proto.set_rotation(transform.rotation().angle());
00061   return proto;
00062 }
00063 
00064 proto::Rigid3d ToProto(const transform::Rigid3d& rigid) {
00065   proto::Rigid3d proto;
00066   *proto.mutable_translation() = ToProto(rigid.translation());
00067   *proto.mutable_rotation() = ToProto(rigid.rotation());
00068   return proto;
00069 }
00070 
00071 transform::Rigid3d ToRigid3(const proto::Rigid3d& rigid) {
00072   return transform::Rigid3d(ToEigen(rigid.translation()),
00073                             ToEigen(rigid.rotation()));
00074 }
00075 
00076 proto::Rigid3f ToProto(const transform::Rigid3f& rigid) {
00077   proto::Rigid3f proto;
00078   *proto.mutable_translation() = ToProto(rigid.translation());
00079   *proto.mutable_rotation() = ToProto(rigid.rotation());
00080   return proto;
00081 }
00082 
00083 proto::Vector2d ToProto(const Eigen::Vector2d& vector) {
00084   proto::Vector2d proto;
00085   proto.set_x(vector.x());
00086   proto.set_y(vector.y());
00087   return proto;
00088 }
00089 
00090 proto::Vector3f ToProto(const Eigen::Vector3f& vector) {
00091   proto::Vector3f proto;
00092   proto.set_x(vector.x());
00093   proto.set_y(vector.y());
00094   proto.set_z(vector.z());
00095   return proto;
00096 }
00097 
00098 proto::Vector4f ToProto(const Eigen::Vector4f& vector) {
00099   proto::Vector4f proto;
00100   proto.set_x(vector.x());
00101   proto.set_y(vector.y());
00102   proto.set_z(vector.z());
00103   proto.set_t(vector.w());
00104   return proto;
00105 }
00106 
00107 proto::Vector3d ToProto(const Eigen::Vector3d& vector) {
00108   proto::Vector3d proto;
00109   proto.set_x(vector.x());
00110   proto.set_y(vector.y());
00111   proto.set_z(vector.z());
00112   return proto;
00113 }
00114 
00115 proto::Quaternionf ToProto(const Eigen::Quaternionf& quaternion) {
00116   proto::Quaternionf proto;
00117   proto.set_w(quaternion.w());
00118   proto.set_x(quaternion.x());
00119   proto.set_y(quaternion.y());
00120   proto.set_z(quaternion.z());
00121   return proto;
00122 }
00123 
00124 proto::Quaterniond ToProto(const Eigen::Quaterniond& quaternion) {
00125   proto::Quaterniond proto;
00126   proto.set_w(quaternion.w());
00127   proto.set_x(quaternion.x());
00128   proto.set_y(quaternion.y());
00129   proto.set_z(quaternion.z());
00130   return proto;
00131 }
00132 
00133 }  // namespace transform
00134 }  // namespace cartographer


cartographer
Author(s): The Cartographer Authors
autogenerated on Thu May 9 2019 02:27:36