zxhproj v 2.2
zxhproj

zxhMetricConstDiscretePathBase.h

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 
 All Classes Namespaces Functions Variables Typedefs