zxhproj v 2.2
zxhproj
|
00001 /*========================================================================= 00002 00003 Program: ZXH Registration Software 00004 Author: Xiahai Zhuang 00005 Module: $RCSfle: zxhTransformMatrix.h $ 00006 Language: C++ 00007 Date: $Date: From 2008-11 $ 00008 Version: $Revision: 2.0 $ 00009 =========================================================================*/ 00010 00011 #ifndef zxhTransformMatrix_h 00012 #define zxhTransformMatrix_h 00013 00021 00022 #include "zxhTransformAffine.h" 00023 #include "zxhImageData.h" 00024 #include <string> 00025 00026 class zxhTransformMatrix : public zxhTransformAffine 00027 { 00028 public: 00030 zxhTransformMatrix(); 00032 virtual ~zxhTransformMatrix(); 00033 00035 virtual bool SetTransformFromFile(const char* pFile); 00037 virtual bool SetTransformFromStream(std::ifstream& ifs); 00038 00040 virtual std::string GetPrintString(); 00042 virtual std::string GetMatrixString(); 00043 00045 virtual std::string GetTransformType(){return "MTX";} 00046 00048 virtual zxhTransformBase* Clone(zxhTransformBase*&pRet); 00049 00051 virtual bool GetMultiply(zxhTransformBase*p1,zxhTransformBase*p2); 00053 virtual bool Multiply(zxhTransformBase*p) ; 00055 virtual bool MultiplyBy(zxhTransformBase*p) ; 00057 virtual bool ComposeNext(zxhTransformBase*p) {return this->MultiplyBy(p);}; 00059 virtual bool Compose(zxhTransformBase*pFirst, zxhTransformBase*pSecond) {return this->GetMultiply(pSecond,pFirst);}; 00060 00062 virtual void UpdateMatrix() { this->UpdateInvertMatrix(); }; 00063 00065 static void ComputeInverseTransformMatrix( zxhTransformMatrix* pMatrixResult, zxhTransformAffine*pTransSource); 00066 }; 00067 namespace zxh{ 00068 void ComputeInverseTransformMatrix( zxhTransformMatrix* pMatrixResult, zxhTransformAffine*pTransSource); 00069 } 00070 #endif