00001 #ifndef GrayLevelImageFloat_H 00002 #define GrayLevelImageFloat_H 00003 00004 #include "SingleElementImage.h" 00005 #include "ImageSuperClasses.h" 00006 #include "MultiElementImage.h" 00007 00008 namespace puma2 { 00009 00014 class GrayLevelImageFloat : 00015 public SingleElementImage<float> 00016 { 00017 public: 00018 00022 GrayLevelImageFloat(int xwidth = 0, int height = 0); 00023 00024 GrayLevelImageFloat(const GrayLevelImageFloat &); 00025 00036 GrayLevelImageFloat(int width, int height, GrayLevelImageFloat * m, int xo, int yo); 00037 00041 ~GrayLevelImageFloat(); 00042 00044 double getElementTypeMinimum() const { return 0; }; 00045 00047 double getElementTypeMaximum() const { return 1; }; 00048 00050 void readFromFile(const char * fileName); 00052 void writeToFile(const char * fileName) const; 00053 00057 MultiElementImage<float,1> & asMultiElementImage(); 00058 // we could initialize alt only, when we need it 00059 // { if (alt == NULL) alt = new ...; return *alt; } 00060 // but we would have to store xo, yo, -- another 00061 // DESIGN OPTION 00062 00074 operator MultiElementImage<float,1>& () { return asMultiElementImage(); } 00075 00076 void operator= (const GrayLevelImageFloat & g) { 00077 SingleElementImage<float>::operator=(g); 00078 } 00079 00080 protected: 00081 virtual void reset(); 00082 private: 00083 MultiElementImage<float,1> * alt; 00084 }; 00085 00086 } 00087 00088 #endif