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
00089 class PbDateFormatMapping : public PbBase {
00090
00091
00092 public:
00093
00097 PbDateFormatMapping() ;
00098
00102 PbDateFormatMapping(const PbDateFormatMapping &dateFormatMap) ;
00103
00107 PbDateFormatMapping(const char *date1, const char *date2,
00108 float coord1, float coord2, const char *format = NULL) ;
00109
00113 PbDateFormatMapping(const SbString& date1, const SbString& date2,
00114 float coord1, float coord2, const SbString& format = "" ) ;
00115
00119 PbDateFormatMapping& operator=(const PbDateFormatMapping &dateFormatMap) ;
00120
00129 SoNONUNICODE int setFormat(const char *format) ;
00130
00137 int setFormat(const SbString& format) ;
00138
00142 SbString getFormat() const
00143 { return m_dateFormat; }
00144
00159 SoNONUNICODE int setDateMapping(const char *date1, const char *date2,
00160 float coord1, float coord2) ;
00161
00174 int setDateMapping(const SbString& date1, const SbString& date2,
00175 float coord1, float coord2) ;
00176
00180 void getDateMapping(SbString &date1, SbString &date2,
00181 float &coord1, float &coord2) const ;
00182
00189 SbBool getCoordinate(const char *date, float &c) const ;
00190
00196 SbBool getCoordinate(const SbString& date, float &c) const ;
00197
00198
00199
00200
00201 private:
00202 float getCoordinateP(const PiDate &date) const ;
00203 PiDate getDateP(float coord) ;
00204
00205 private:
00206
00207 void copy(const PbDateFormatMapping &dateFormatMap, SbBool isConstructorPerCopy) ;
00208
00209
00210
00211
00212 int checkDateFormat() const ;
00213
00214
00215
00216 void setDateMappingP(const PiDate &date1, const PiDate &date2,
00217 float coord1, float coord2) ;
00218 PiDate m_date1 ;
00219 float m_coordinate1, m_coordinate2, m_dateIntervalSecond ;
00220 SbString m_dateFormat, m_date1Str, m_date2Str ;
00221
00222 } ;
00223
00224
00225 #endif
00226
00227