00001 /*============================================================================= 00002 * Product : OpenPL 00003 * File : plSparseType.h 00004 * Author : Kamel Mekhnacha 00005 * Creation : Thu Jan 31 13:36:39 2002 00006 * 00007 *============================================================================= 00008 * (c) Copyright 2000, Centre National de la Recherche Scientifique, 00009 * all rights reserved 00010 *============================================================================= 00011 * 00012 *------------------------- Description --------------------------------------- 00013 * 00014 * 00015 *----------------------------------------------------------------------------- 00016 */ 00017 00018 00019 #ifndef _plSparseType_h 00020 #define _plSparseType_h 00021 00022 #include <plMath.h> 00023 #include <plType.h> 00024 00025 /***************************************************************************** 00026 * Classes Definitions 00027 *****************************************************************************/ 00028 00029 00030 //============================================================================ 00033 class plSparseType : public plType 00034 { 00035 00036 protected: 00038 void Output(ostream &out) const; 00039 00040 public: 00042 plData first_value()const; 00043 00046 bool next_value(plData &v); 00047 00050 bool next_value(float &v); 00051 00054 bool next_value(double &v); 00055 00058 bool next_value(long double &v); 00059 00062 bool next_value(int &v); 00063 00064 00070 plSparseType(int nvalues, plFloat* values); 00071 00072 00078 plSparseType(const vector <plFloat> & values); 00079 00080 virtual ~plSparseType(){}; 00081 00082 }; 00083 00084 00085 #endif