zxhproj v 2.2
zxhproj

zxhGradientBase.h

00001 
00002 /*=========================================================================
00003 
00004   Program:   ZXH Registration Software
00005   Author:    Xiahai Zhuang
00006   Module:    $RCSfle: zxhGradientBase.h    $
00007   Language:  C++
00008   Date:      $Date: From  2004-01 $
00009   Version:   $Revision: 1.0, 2.0 $
00010 
00011 =========================================================================*/
00012 #ifndef ZXHGRADIENTBASE_H
00013 #define ZXHGRADIENTBASE_H
00014 
00015 #include "zxhTransformBase.h"
00016 #include "zxhMetricBase.h"
00017 
00024 
00025 class zxhGradientBase
00026 {
00027 public:
00029     zxhGradientBase(void):
00030         m_fDifferentialStep(0),m_pDifferential(0), fOptimizeDirectionWeight(0)
00031     {};
00033     virtual ~zxhGradientBase(void);
00034 
00036     zxhGradientBase* Clone( zxhGradientBase * & p )
00037     {
00038         if( p==0 ) return 0 ;
00039         p->m_fDifferentialStep = m_fDifferentialStep ;
00040         p->m_pDifferential = m_pDifferential ;
00041         return p ;
00042     }
00045     virtual void    SetDifferentialStep(float f)                    {m_fDifferentialStep=f;};
00047     virtual float   GetDifferentialStep()                           {return m_fDifferentialStep;};
00049     virtual void    SetDifferential(zxhTransformBase*p)             {m_pDifferential=p;}
00051     virtual zxhTransformBase* GetDifferential()                     {return m_pDifferential;}
00052 
00057     virtual bool    ComputeMetricGradient
00058         (
00059         zxhMetricBase*pMetric,
00060         zxhTransformBase*pInfluence=0
00061         )=0;
00062 
00065     ;
00067     virtual bool    PrePostComputeMetricGradient(
00068         zxhMetricBase*pMetric,
00069         zxhTransformBase*pInfluence,
00070         bool isPre ) { return false ;} ;
00072     virtual void    SetOptimizerDirectionWeight(float f)        { fOptimizeDirectionWeight=f;};
00073 protected:
00074 
00076     float           m_fDifferentialStep;
00078     zxhTransformBase*m_pDifferential;
00082     float       fOptimizeDirectionWeight ;
00083 
00084 };
00085 
00086 
00087 
00088 #endif
00089 
00090 
 All Classes Namespaces Functions Variables Typedefs