MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLBase/mlCurveList.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00005 
00010 //
00011 // Classes:
00012 // - CurveList: A list of CurveData object pointers (legacy).
00013 // - CurveDataBaseList: A list of CurveData object pointers implemented via a BaseList (recommended).
00014 //----------------------------------------------------------------------------------
00015 
00016 #ifndef __mlCurveList_H
00017 #define __mlCurveList_H
00018 
00019 
00020 // ML includes
00021 #include "mlBase.h"
00022 #include "mlModuleIncludes.h"
00023 #include "mlTreeNode.h"
00024 #include "mlBaseInit.h"
00025 
00026 // Local includes
00027 #include "mlCurveData.h"
00028 
00029 
00030 ML_START_NAMESPACE
00031 
00032 
00033 // ------------------------------------------------------------------
00034 // Base object class CurveList
00035 
00040 // ------------------------------------------------------------------
00041 class MLBASEEXPORT CurveList : public Base
00042 {
00043 public:
00044 
00045   // --------------------------------------------
00047   // --------------------------------------------
00049 
00051   CurveList ();
00053   CurveList (const CurveList &curveList, bool deepCopyArg = false);
00054 
00056   virtual ~CurveList () {}
00057 
00059   virtual CurveList &operator = (const CurveList &srcCurveList);
00060 
00062   virtual void clear ();
00063 
00065 
00066 
00067   // --------------------------------------------
00069   // --------------------------------------------
00071 
00073   virtual std::vector<CurveData*> &getCurveList ();
00075   virtual CurveData *getCurveData (MLssize_t iCurve);
00076 
00078 
00079 
00080   // --------------------------------------------
00082   // --------------------------------------------
00084 
00086   virtual MLssize_t getNumCurves ();
00087 
00089   virtual double getXMin ();
00091   virtual double getXMax ();
00093   virtual double getYMin ();
00095   virtual double getYMax ();
00097   virtual void getXYRange (double *xMin, double *xMax, double *yMin, double *yMax);
00098 
00100   
00102 
00103   virtual void addStateToTree(TreeNode* parent) const;
00104   // Set current version number
00105   ML_SET_ADDSTATE_VERSION(1);
00107   virtual void readStateFromTree(TreeNode* parent);
00109 
00110   virtual CurveList* deepCopy() const { return new CurveList(*this, /*deepCopy=*/true); };
00111 
00112 #ifdef ML_DEPRECATED
00113 
00114 
00115 
00118   ML_DEPRECATED void getXYRange (float *xMin, float *xMax, float *yMin, float *yMax);
00119 
00121 #endif
00122 
00123 protected:
00124 
00126   std::vector<CurveData*> _curveList;
00127 
00128 private:
00130   ML_CLASS_HEADER(CurveList)
00131 };
00132 
00133 
00134 
00135 // ------------------------------------------------------------------
00136 // Class CurveDataBaseList
00137 
00140 // ------------------------------------------------------------------
00141 class MLBASEEXPORT CurveDataBaseList : public BaseList 
00142 {
00143 
00144   private:
00146   ML_CLASS_HEADER(CurveDataBaseList);
00147 };
00148 
00149 
00150 ML_END_NAMESPACE
00151 
00152 
00153 #endif
00154 // __mlCurveList_H
00155 
00156