zxhproj v 2.2
zxhproj
|
00001 00002 /*========================================================================= 00003 00004 Program: ZXH Registration Software 00005 Author: Xiahai Zhuang 00006 Module: $RCSfle: zxhMetricConstDiscretePathBase.h $ 00007 Language: C++ 00008 Date: $Date: From 2011-01 $ 00009 Version: $Revision: 2.1.3 $ 00010 revision: 00011 =========================================================================*/ 00012 #ifndef zxhMetricConstDiscretePathBase_h 00013 #define zxhMetricConstDiscretePathBase_h 00014 00015 #include "zxh.h" 00016 #include "zxhImageData.h" 00017 #include "zxhMetricBase.h" 00018 #include <time.h> 00019 #include <math.h> 00020 00031 #ifndef ZXH_CONSTDISCRETEPATH_NUMREFIMAGE 00032 #define ZXH_CONSTDISCRETEPATH_NUMREFIMAGE 10 00033 #endif 00034 00035 class zxhMetricConstDiscretePathBase 00036 { 00037 public: 00039 zxhMetricConstDiscretePathBase(void); 00041 ~zxhMetricConstDiscretePathBase(void); 00042 00044 virtual std::string GetMetricType() {return "_CONSTDISCRETEPATH_"; } ; 00045 00047 virtual zxhMetricConstDiscretePathBase* Clone( zxhMetricConstDiscretePathBase * & pRet ); 00048 00050 virtual void SetNumberOfConstDiscretePathStep( int n ) { m_nNumberOfConstDiscretePathStep = n ; } ; 00052 virtual int GetNumberOfConstDiscretePathStep()const { return m_nNumberOfConstDiscretePathStep ;}; 00054 virtual void SetStepsForUpdatingRefImage( int n ) { m_nStepsForUpdatingRefImage=n;} ; 00056 virtual int GetStepsForUpdatingRefImage( )const { return m_nStepsForUpdatingRefImage ;} ; 00058 virtual void SetIsoSpacingUpdatedRefImage( float f ) { m_fIsoSpacingUpdatedRefImage=f;} ; 00060 virtual float GetIsoSpacingUpdatedRefImage( )const { return m_fIsoSpacingUpdatedRefImage ;} ; 00065 virtual bool UpdateAndSetImage() ; 00066 00067 protected: 00069 void GetUpdateImageSpacingSizeInfo( float spacing[], int size[], zxhImageInfo &imageinfo ) const ; 00071 bool NeedUpdateImage() { m_iTimesCallingUpdatingRefImage++ ; return (( (m_iTimesCallingUpdatingRefImage-1) % m_nStepsForUpdatingRefImage) == 0 ) ; } ; 00075 virtual bool UpdateImage() ; 00077 virtual void SetUpdatedImages()=0 ; 00078 /* variables */ 00079 protected: 00081 virtual void SetConstDiscretePathMetricBase()=0; 00083 zxhMetricBase* m_pConstDiscretePathMetricBase ; 00084 00087 int m_nNumberOfConstDiscretePathStep ; 00091 zxhImageData* m_pImageRefOrigin[ZXH_CONSTDISCRETEPATH_NUMREFIMAGE] ; 00093 zxhTransformBase* m_pConstDiscretePathTransform; 00094 00096 int m_nStepsForUpdatingRefImage ; 00098 int m_iTimesCallingUpdatingRefImage ; 00099 00102 zxhImageData m_imgRefUpdated[ZXH_CONSTDISCRETEPATH_NUMREFIMAGE] ; 00105 float m_fIsoSpacingUpdatedRefImage ; 00106 00107 }; 00108 00109 00110 #endif 00111 00112 00113 00114