MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLBase/mlRasterFunctionList.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 // 
00010 // This class maintains a list of raster functions.
00011 // It uses an stl vector to manage the list.
00012 // The class is derived from Base to have a common base class
00013 // for some classes and to have the possibility to add persistence
00014 // to the object later.
00015 //--------------------------------------------------------------------------------
00016 #ifndef __mlRasterFunctionList_H
00017 #define __mlRasterFunctionList_H
00018 
00019 //ML-includes
00020 #ifndef __mlBaseInit_H
00021 #include "mlBaseInit.h"
00022 #endif
00023 #ifndef __mlRasterFunction_H
00024 #include "mlRasterFunction.h"
00025 #endif
00026 
00027 ML_START_NAMESPACE
00028 
00029 //--------------------------------------------------------------------------------
00031 //--------------------------------------------------------------------------------
00032 class MLBASEEXPORT RasterFunctionList : public Base {
00033     
00034 public:
00036     RasterFunctionList()                                   {};
00037     
00039     virtual ~RasterFunctionList()                          {};
00040     
00042     //virtual std::vector<RasterFunction> &getList()   { return objects; }
00043     
00045     virtual size_t getListSize()
00046     { return objects.size(); }
00047     
00049     virtual void setListElement(size_t idx, const RasterFunction &elem)
00050     { objects[idx]=elem; }
00051     
00053     virtual void appendToList(const RasterFunction &elem)
00054     { objects.push_back(elem); }
00055     
00057     virtual const RasterFunction &getListElement(size_t idx)
00058     { return objects[idx]; }
00059     
00061     virtual char* getPersistentState() const                 { return 0; };
00062     
00064     virtual void setPersistentState(const char* /*state*/)   { };
00065     
00067     virtual void clearPersistentState(char* /*state*/) const { };
00068     
00071     RasterFunction* getPtr(MLssize_t index = -1);
00072     
00075     void setValue(MLssize_t index, const RasterFunction& obj);
00076     
00078     void removeValue(MLssize_t index = -1);
00079     
00081     void clear();
00082 
00083 private:
00084     
00085     //--------------------------------------------------------------------------------
00088     //--------------------------------------------------------------------------------
00089     ML_CLASS_HEADER(RasterFunctionList); 
00090     
00092     std::vector<RasterFunction> objects;
00093 };
00094 
00095 ML_END_NAMESPACE
00096 
00097 #endif // of __mlRasterFunctionList_H