ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/GenericData.hpp
Revision: 682
Committed: Tue Aug 12 17:51:33 2003 UTC (20 years, 11 months ago) by tim
File size: 1716 byte(s)
Log Message:
added harmonical potential to z-constraint method

File Contents

# User Rev Content
1 tim 658 #ifndef __GENERICDATA_H__
2     #define __GENERICDATA_H__
3    
4 tim 682 #include <algorithm>
5 tim 658 #include <string>
6     #include <vector>
7    
8 tim 682 #define ZCONSTIME_ID "ZCONSTIME"
9     #define ZCONSPARADATA_ID "ZCONSPARA"
10     #define ZCONSFILENAME_ID "ZCONSFILENAME"
11     #define ZCONSTOL_ID "ZCONSTOL"
12    
13 tim 658 using namespace std;
14    
15     class GenericData
16     {
17     public:
18     GenericData();
19     GenericData(const GenericData& rhs) { id = rhs.getID(); }
20     GenericData& operator =(const GenericData& rhs);
21     virtual ~GenericData() {}
22    
23     const string& getID() const { return id; }
24     void setID(string rhs) { id = rhs; }
25    
26     protected:
27     string id;
28     };
29    
30     /** Something we can improve it here is to use template
31     **
32     */
33     class DoubleData : public GenericData{
34    
35     public:
36    
37     double getData() { return data; }
38     void setData(double rhs) { data = rhs; }
39    
40     protected:
41     double data;
42     };
43    
44     class StringData : public GenericData{
45    
46     public:
47     const string& getData() const { return data; }
48     void setData(const string& rhs) { data = rhs; }
49     protected:
50     string data;
51     };
52 tim 682
53     struct ZConsParaItem
54     {
55     int zconsIndex;
56     bool havingZPos;
57     double zPos;
58     double kRatio;
59     };
60    
61     class ZConsParaData : public GenericData{
62    
63     public:
64     ZConsParaData();
65     void addItem(ZConsParaItem& item) {data.push_back(item);}
66     vector<ZConsParaItem>* getData() {return &data;}
67     void setData(vector<ZConsParaItem>& theData) {data = theData;}
68     void sortByIndex();
69    
70     private:
71     vector<ZConsParaItem> data;
72     };
73    
74     class ZConsParaSortCriterion{
75     public:
76     bool operator ()(const ZConsParaItem& item1, const ZConsParaItem& item2){
77     return item1.zconsIndex < item2.zconsIndex;
78     }
79    
80     };
81    
82 tim 658 #endif