00001 /* 00002 * Karto (tm) Robot Navigation Software - Software Development Kit 00003 * Release 2.1 00004 * 00005 * Copyright (C) 2006-2011, SRI International (R) 00006 * 00007 * The material contained in this release is copyrighted. It may not be copied, 00008 * reproduced, translated, reverse engineered, modified or reduced to any electronic 00009 * medium or machine-readable form without the prior written consent of 00010 * SRI International (R). 00011 * 00012 * Portions of files in this release may be unpublished work 00013 * containing SRI International (R) CONFIDENTIAL AND PROPRIETARY INFORMATION. 00014 * Disclosure, use, reverse engineering, modification, or reproduction without 00015 * written authorization of SRI International (R) is likewise prohibited. 00016 * 00017 * Karto (tm) is a Trademark of SRI International (R). 00018 * 00019 * Author(s): Benson Limketkai (bensonl@ai.sri.com) 00020 */ 00021 00022 #pragma once 00023 00024 #ifndef __KARTO_RIGIDBODYTRANSFORM__ 00025 #define __KARTO_RIGIDBODYTRANSFORM__ 00026 00027 #include <OpenKarto/Types.h> 00028 #include <OpenKarto/Macros.h> 00029 00030 namespace karto 00031 { 00036 class KARTO_EXPORT RigidBodyTransform 00037 { 00038 private: 00039 karto::Pose2 m_Transform; 00040 karto::Pose2 m_InvTransform; 00041 00042 public: 00047 RigidBodyTransform(const karto::Pose2& rPose); 00048 00054 RigidBodyTransform(const karto::Pose2& rPose1, const karto::Pose2& rPose2); 00055 00056 public: 00062 karto::Pose2 TransformPose(const karto::Pose2& rSourcePose); 00063 00069 karto::Pose2 InverseTransformPose(const karto::Pose2& rSourcePose); 00070 00071 private: 00077 void SetTransform(const karto::Pose2& rPose1, const karto::Pose2& rPose2); 00078 }; // class RigidBodyTransform 00079 00080 } // namespace karto 00081 00082 #endif // __KARTO_RIGIDBODYTRANSFORM__ 00083 00084