ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/GenericData.hpp
Revision: 1093
Committed: Wed Mar 17 14:22:59 2004 UTC (20 years, 3 months ago) by tim
File size: 2455 byte(s)
Log Message:
incorporate SMD into ZConstraint,it does not sound a good choice, next commit will seperate SMD and ZConstraint

File Contents

# Content
1 #ifndef __GENERICDATA_H__
2 #define __GENERICDATA_H__
3
4 #include <algorithm>
5 #include <string>
6 #include <vector>
7
8 #define ZCONSTIME_ID "ZCONSTIME"
9 #define ZCONSPARADATA_ID "ZCONSPARA"
10 #define ZCONSFILENAME_ID "ZCONSFILENAME"
11 #define ZCONSTOL_ID "ZCONSTOL"
12 #define ZCONSFORCEPOLICY_ID "ZCONSFORCEPOLICY"
13 #define ZCONSGAP_ID "ZCONSGAP"
14 #define ZCONSFIXTIME_ID "ZCONSFIXTIME"
15 #define ZCONSUSINGSMD_ID "ZCONSUSINGSMD"
16
17 #define CHIVALUE_ID "CHIVALUE"
18 #define INTEGRALOFCHIDT_ID "INTEGRALOFCHIDT"
19 #define ETAVALUE_ID "ETAVALUE"
20
21 using namespace std;
22
23 class GenericData
24 {
25 public:
26 GenericData();
27 GenericData(const GenericData& rhs) { id = rhs.getID(); }
28 GenericData& operator =(const GenericData& rhs);
29 virtual ~GenericData() {}
30
31 const string& getID() const { return id; }
32 void setID(string rhs) { id = rhs; }
33
34 protected:
35 string id;
36 };
37
38 /** Something we can improve it here is to use template
39 **
40 */
41
42 class IntData : public GenericData{
43
44 public:
45
46 double getData() { return data; }
47 void setData(int rhs) { data = rhs; }
48
49 protected:
50 int data;
51 };
52
53 class DoubleData : public GenericData{
54
55 public:
56
57 double getData() { return data; }
58 void setData(double rhs) { data = rhs; }
59
60 protected:
61 double data;
62 };
63
64 class StringData : public GenericData{
65
66 public:
67 const string& getData() const { return data; }
68 void setData(const string& rhs) { data = rhs; }
69 protected:
70 string data;
71 };
72
73 struct ZConsParaItem {
74 int zconsIndex;
75 bool havingZPos;
76 double zPos;
77 double kRatio;
78 bool havingCantVel;
79 double cantVel;
80 };
81
82 class ZConsParaData : public GenericData{
83
84 public:
85 ZConsParaData();
86 void addItem(ZConsParaItem& item) {data.push_back(item);}
87 vector<ZConsParaItem>* getData() {return &data;}
88 void setData(vector<ZConsParaItem>& theData) {data = theData;}
89 void sortByIndex();
90 bool isIndexUnique();
91
92 private:
93 vector<ZConsParaItem> data;
94 };
95
96 class ZConsParaSortCriterion{
97 public:
98 bool operator ()(const ZConsParaItem& item1, const ZConsParaItem& item2){
99 return item1.zconsIndex < item2.zconsIndex;
100 }
101
102 };
103
104 class DoubleArrayData : public GenericData{
105
106 public:
107 vector<double> getData() const { return data; }
108 void setData(double* source, int num){
109 data.clear();
110 for(int i = 0; i < num; i++)
111 data.push_back(source[i]);
112 }
113 protected:
114 vector<double> data;
115 };
116 #endif