00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _PB_DATE_FORMAT_MAPPING_
00025 #define _PB_DATE_FORMAT_MAPPING_
00026
00027 #include <MeshViz/graph/PbBase.h>
00028 #include <Inventor/SbString.h>
00029 #include <MeshViz/graph/PiDate.h>
00030
00088 class PbDateFormatMapping : public PbBase {
00089
00090
00091 public:
00092
00096 PbDateFormatMapping() ;
00097
00101 PbDateFormatMapping(const PbDateFormatMapping &dateFormatMap) ;
00102
00106 PbDateFormatMapping(const char *date1, const char *date2,
00107 float coord1, float coord2, const char *format = NULL) ;
00108
00112 PbDateFormatMapping(const SbString& date1, const SbString& date2,
00113 float coord1, float coord2, const SbString& format = "" ) ;
00114
00118 PbDateFormatMapping& operator=(const PbDateFormatMapping &dateFormatMap) ;
00119
00128 SoNONUNICODE int setFormat(const char *format) ;
00129
00136 int setFormat(const SbString& format) ;
00137
00141 SbString getFormat() const
00142 { return m_dateFormat; }
00143
00158 SoNONUNICODE int setDateMapping(const char *date1, const char *date2,
00159 float coord1, float coord2) ;
00160
00173 int setDateMapping(const SbString& date1, const SbString& date2,
00174 float coord1, float coord2) ;
00175
00179 void getDateMapping(SbString &date1, SbString &date2,
00180 float &coord1, float &coord2) const ;
00181
00188 SbBool getCoordinate(const char *date, float &c) const ;
00189
00195 SbBool getCoordinate(const SbString& date, float &c) const ;
00196
00197
00198
00199
00200 private:
00201 float getCoordinateP(const PiDate &date) const ;
00202 PiDate getDateP(float coord) ;
00203
00204 private:
00205
00206 void copy(const PbDateFormatMapping &dateFormatMap, SbBool isConstructorPerCopy) ;
00207
00208
00209
00210
00211 int checkDateFormat() const ;
00212
00213
00214
00215 void setDateMappingP(const PiDate &date1, const PiDate &date2,
00216 float coord1, float coord2) ;
00217 PiDate m_date1 ;
00218 float m_coordinate1, m_coordinate2, m_dateIntervalSecond ;
00219 SbString m_dateFormat, m_date1Str, m_date2Str ;
00220
00221 } ;
00222
00223
00224 #endif
00225
00226