/* * Copyright 2017 The Cartographer Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using CartographerSharp.Models.Transform; using CartographerSharp.Transform; namespace CartographerSharp.Sensor; /// /// Odometry data structure. /// public struct OdometryData(long time, Rigid3d pose) { public long Time { get; set; } = time; public Rigid3d Pose { get; set; } = pose; } /// /// Operations on OdometryData. /// public static class OdometryDataOperations { /// /// Converts 'odometry_data' to a proto::OdometryData. /// public static Models.Sensor.OdometryData ToProto(OdometryData odometryData) { return new Models.Sensor.OdometryData( odometryData.Time, (Rigid3dProto)odometryData.Pose ); } /// /// Converts 'proto' to an OdometryData. /// public static OdometryData FromProto(Models.Sensor.OdometryData proto) { return new OdometryData( proto.Timestamp, (Rigid3d)proto.Pose ); } }