ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/GenericData.hpp
Revision: 1091
Committed: Tue Mar 16 19:22:56 2004 UTC (21 years, 1 month ago) by tim
File size: 2204 byte(s)
Log Message:
ZConstraint now can support sequential moving. Refactorying is needed to support SMD in 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
16 #define CHIVALUE_ID "CHIVALUE"
17 #define INTEGRALOFCHIDT_ID "INTEGRALOFCHIDT"
18 #define ETAVALUE_ID "ETAVALUE"
19
20 using namespace std;
21
22 class GenericData
23 {
24 public:
25 GenericData();
26 GenericData(const GenericData& rhs) { id = rhs.getID(); }
27 GenericData& operator =(const GenericData& rhs);
28 virtual ~GenericData() {}
29
30 const string& getID() const { return id; }
31 void setID(string rhs) { id = rhs; }
32
33 protected:
34 string id;
35 };
36
37 /** Something we can improve it here is to use template
38 **
39 */
40 class DoubleData : public GenericData{
41
42 public:
43
44 double getData() { return data; }
45 void setData(double rhs) { data = rhs; }
46
47 protected:
48 double data;
49 };
50
51 class StringData : public GenericData{
52
53 public:
54 const string& getData() const { return data; }
55 void setData(const string& rhs) { data = rhs; }
56 protected:
57 string data;
58 };
59
60 struct ZConsParaItem {
61 int zconsIndex;
62 bool havingZPos;
63 double zPos;
64 double kRatio;
65 };
66
67 class ZConsParaData : public GenericData{
68
69 public:
70 ZConsParaData();
71 void addItem(ZConsParaItem& item) {data.push_back(item);}
72 vector<ZConsParaItem>* getData() {return &data;}
73 void setData(vector<ZConsParaItem>& theData) {data = theData;}
74 void sortByIndex();
75 bool isIndexUnique();
76
77 private:
78 vector<ZConsParaItem> data;
79 };
80
81 class ZConsParaSortCriterion{
82 public:
83 bool operator ()(const ZConsParaItem& item1, const ZConsParaItem& item2){
84 return item1.zconsIndex < item2.zconsIndex;
85 }
86
87 };
88
89 class DoubleArrayData : public GenericData{
90
91 public:
92 vector<double> getData() const { return data; }
93 void setData(double* source, int num){
94 data.clear();
95 for(int i = 0; i < num; i++)
96 data.push_back(source[i]);
97 }
98 protected:
99 vector<double> data;
100 };
101 #endif