00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkFEMLightObject_h
00019 #define __itkFEMLightObject_h
00020
00021 #include "itkFEMMacro.h"
00022 #include "itkFEMException.h"
00023 #include <iostream>
00024
00025 namespace itk {
00026 namespace fem {
00027
00028
00029
00030
00041 class FEMLightObject
00042 #ifdef FEM_USE_SMART_POINTERS
00043 : public itk::LightObject
00044 #endif
00045 {
00051 #ifndef FEM_USE_SMART_POINTERS
00052 FEM_ABSTRACT_CLASS(FEMLightObject,FEMLightObject)
00053 #else
00057 FEM_ABSTRACT_CLASS(FEMLightObject,itk::LightObject)
00058 #endif
00059
00060 public:
00065 typedef Self Baseclass;
00066
00072 virtual Baseclass::Pointer Clone() const = 0;
00073
00082 virtual int ClassID() const = 0;
00083
00099 virtual void Read( std::istream& f, void* info );
00100
00113 virtual void Write( std::ostream& f ) const;
00114
00124 static FEMLightObject::Pointer CreateFromStream( std::istream& f, void *info );
00125
00130 static void SkipWhiteSpace( std::istream& f );
00131
00136 static const std::string whitespaces;
00137
00138
00139 #ifdef FEM_USE_SMART_POINTERS
00140 protected:
00141 #endif
00142
00145 FEMLightObject() : GN(-1) {}
00146
00150 virtual ~FEMLightObject() {}
00151
00155 FEMLightObject(const FEMLightObject& o) { GN=o.GN; }
00156
00157
00158 public:
00166 int GN;
00167
00168 };
00169
00170
00174 typedef FEMObjectFactory<FEMLightObject> FEMOF;
00175
00176
00177 }}
00178
00179 #endif // #ifndef __itkFEMLightObject_h