--- trunk/OOPSE/libmdtools/GenericData.hpp 2003/08/28 21:09:47 736 +++ trunk/OOPSE/libmdtools/GenericData.hpp 2004/04/20 05:39:38 1126 @@ -10,7 +10,14 @@ #define ZCONSFILENAME_ID "ZCONSFILENAME" #define ZCONSTOL_ID "ZCONSTOL" #define ZCONSFORCEPOLICY_ID "ZCONSFORCEPOLICY" +#define ZCONSGAP_ID "ZCONSGAP" +#define ZCONSFIXTIME_ID "ZCONSFIXTIME" +#define ZCONSUSINGSMD_ID "ZCONSUSINGSMD" +#define CHIVALUE_ID "CHIVALUE" +#define INTEGRALOFCHIDT_ID "INTEGRALOFCHIDT" +#define ETAVALUE_ID "ETAVALUE" + using namespace std; class GenericData @@ -20,56 +27,69 @@ class GenericData GenericData(const GenericData& rhs) { id = rhs.getID(); } GenericData& operator =(const GenericData& rhs); virtual ~GenericData() {} - + const string& getID() const { return id; } - void setID(string rhs) { id = rhs; } - + void setID(string rhs) { id = rhs; } + protected: string id; }; /** Something we can improve it here is to use template - ** + ** */ + +class IntData : public GenericData{ + + public: + + double getData() { return data; } + void setData(int rhs) { data = rhs; } + + protected: + int data; +}; + class DoubleData : public GenericData{ public: double getData() { return data; } void setData(double rhs) { data = rhs; } - + protected: double data; }; class StringData : public GenericData{ - - public: + + public: const string& getData() const { return data; } void setData(const string& rhs) { data = rhs; } protected: - string data; + string data; }; -struct ZConsParaItem -{ +struct ZConsParaItem { int zconsIndex; bool havingZPos; double zPos; double kRatio; + bool havingCantVel; + double cantVel; }; class ZConsParaData : public GenericData{ - - public: + + public: ZConsParaData(); void addItem(ZConsParaItem& item) {data.push_back(item);} vector* getData() {return &data;} void setData(vector& theData) {data = theData;} void sortByIndex(); bool isIndexUnique(); - - private: + + private: vector data; }; @@ -81,4 +101,45 @@ class ZConsParaSortCriterion{ }; +class DoubleArrayData : public GenericData{ + + public: + vector getData() const { return data; } + void setData(double* source, int num){ + data.clear(); + for(int i = 0; i < num; i++) + data.push_back(source[i]); + } + protected: + vector data; +}; + +struct AtomInfo : public GenericData{ + public: + string AtomType; + double pos[3]; + double dipole[3]; +}; + +class AtomData : public GenericData{ + public: + ~AtomData(); + void addAtomInfo(AtomInfo* info) {data.push_back(info);} + void clearAllAtomInfo(); + AtomInfo* beginAtomInfo(vector::iterator& i){ + i = data.begin(); + return i != data.end()? *i : NULL; + } + AtomInfo* nextAtomInfo(vector::iterator& i){ + ++i; + return i != data.end()? *i: NULL; + } + vector getData() {return data;} + int getSize() {return data.size();} + protected: + vector data; +}; + + + #endif