eLynx SDK
v3.3.0 C++ image processing API reference |
00001 //============================================================================ 00002 // AbstractTransformation.h Math.Component package 00003 //============================================================================ 00004 // Usage : abstract image transformation class definition 00005 //---------------------------------------------------------------------------- 00006 // Inheritance : 00007 // AbstractTransformation 00008 //---------------------------------------------------------------------------- 00009 // Copyright (C) 2006 by eLynx project 00010 // 00011 // This library is free software; you can redistribute it and/or 00012 // modify it under the terms of the GNU Library General Public 00013 // License as published by the Free Software Foundation; either 00014 // version 2 of the License, or (at your option) any later version. 00015 // 00016 // This library is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00019 // See the GNU Library General Public License for more details. 00020 //---------------------------------------------------------------------------- 00021 #ifndef __AbstractTransformation_h__ 00022 #define __AbstractTransformation_h__ 00023 00024 #include <elx/core/CoreTypes.h> 00025 #include "MathLib.h" 00026 #include <boost/shared_ptr.hpp> 00027 00028 namespace eLynx { 00029 namespace Math { 00030 00040 class ExportedByMath AbstractTransformation 00041 { 00042 public: 00043 00045 AbstractTransformation() {} 00046 00049 virtual ~AbstractTransformation() {} 00050 00055 virtual boost::shared_ptr<AbstractTransformation> Clone() const = 0; 00056 00060 virtual bool IsIdentity() const = 0; 00061 00069 virtual void Transform(double iX, double iY, double& oX, double& oY) const = 0; 00070 00081 virtual void GetTransformedBBox(uint32 iWidth, uint32 iHeight, 00082 double& oLeft, double& oTop, double& oWidth, double& oHeight) const = 0; 00083 00091 virtual void InverseTransform(double iX, double iY, 00092 double& oX, double& oY) const = 0; 00093 00104 virtual void GetInverseBBox(uint32 iWidth, uint32 iHeight, 00105 double& oLeft, double& oTop, double& oWidth, double& oHeight) const = 0; 00106 }; 00107 00108 } // namespace Math 00109 } // namespace eLynx 00110 00111 #endif // __AbstractTransformation_h__ 00112