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
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