00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freProfileOption.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freProfileOption_h 00023 #define __freProfileOption_h 00024 00025 #include "freControllerProfileBase.h" 00026 00027 namespace FREE 00028 { 00029 namespace CtrlProfile 00030 { 00031 00041 class ProfileOption : public ControllerProfileBase 00042 { 00043 public: 00044 typedef ProfileOption Self; 00045 typedef ControllerProfileBase Superclass; 00046 typedef itk::SmartPointer<Self> Pointer; 00047 typedef itk::SmartPointer<const Self> ConstPointer; 00048 00049 itkTypeMacro(ProfileOption, ControllerProfileBase); 00050 itkNewMacro(ProfileOption); 00051 00052 void CheckForControllerID() { m_bControllerID = true; }; 00053 void CheckForInheritance() { m_bInheritance = true; }; 00054 void CheckForDescription() { m_bDescription = true; }; 00055 void CheckForParameters() { m_bParameters = true; }; 00056 void CheckForSubComponents() { m_bSubComponents = true; }; 00057 void CheckForIO() { m_bIO = true; }; 00058 00063 bool ProfileMatchesOption(const ControllerProfileBase& profile) const; 00064 00066 ProfileOption& operator = (const ProfileOption& rProfile); 00067 00068 virtual void Reset(); 00069 00070 protected: 00071 ProfileOption(); 00072 00073 virtual ~ProfileOption(); 00074 00076 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00077 00079 virtual std::string SaveData(const unsigned int& iDepth, bool& bHasSubElements) const; 00080 00083 bool m_bControllerID; 00084 bool m_bInheritance; 00085 bool m_bDescription; 00086 bool m_bParameters; 00087 bool m_bSubComponents; 00088 bool m_bIO; 00089 00090 private: 00092 ProfileOption( const ProfileOption& rProfile ); 00093 }; 00094 00095 }//end of namespace CtrlProfile 00096 }//end of namespace FREE 00097 00098 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000