go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxBaseComponent.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00027 #ifndef __elxBaseComponent_h
00028 #define __elxBaseComponent_h
00029 
00031 #ifdef _MSC_VER
00032 #pragma warning ( disable : 4786 )
00033 #pragma warning ( disable : 4503 )
00034 #endif
00035 
00036 #include <iostream>
00037 #include <sstream>
00038 
00040 #define __ELASTIX_VERSION 4.500
00041 
00043 namespace elastix
00044 {
00045 
00061   class BaseComponent
00062   {
00063   public:
00064 
00071     virtual int BeforeAllBase(void) { return 0;};
00072     virtual int BeforeAll(void) { return 0;};
00073 
00080     virtual void BeforeRegistrationBase(void) {};
00081     virtual void BeforeEachResolutionBase(void) {};
00082     virtual void AfterEachResolutionBase(void) {};
00083     virtual void AfterEachIterationBase(void) {};
00084     virtual void AfterRegistrationBase(void) {};
00085 
00092     virtual void BeforeRegistration(void) {};
00093     virtual void BeforeEachResolution(void) {};
00094     virtual void AfterEachResolution(void) {};
00095     virtual void AfterEachIteration(void) {};
00096     virtual void AfterRegistration(void) {};
00097 
00103     virtual const char * elxGetClassName( void ) const
00104     {
00105       return "BaseComponent";
00106     }
00107 
00115     virtual void SetComponentLabel( const char * label, unsigned int idx)
00116     {
00117       std::ostringstream makestring;
00118       makestring << label << idx;
00119       this->m_ComponentLabel = makestring.str();
00120     }
00121 
00123     virtual const char * GetComponentLabel( void ) const
00124     {
00125       return this->m_ComponentLabel.c_str();
00126     }
00127 
00128   protected:
00129 
00130     BaseComponent() {}
00131     virtual ~BaseComponent() {}
00132 
00133   private:
00134 
00135     BaseComponent( const BaseComponent & );   // purposely not implemented
00136     void operator=( const BaseComponent & );  // purposely not implemented
00137 
00138     std::string m_ComponentLabel;
00139 
00140   }; // end class BaseComponent
00141 
00142 
00143 } // end namespace elastix
00144 
00146 namespace elx = elastix;
00147 
00148 
00149 #endif // end #ifndef __elxBaseComponent_h
00150 


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo