| 113 |  | protected: | 
| 114 |  | vector<double> data; | 
| 115 |  | }; | 
| 116 | + |  | 
| 117 | + | struct AtomInfo : public GenericData{ | 
| 118 | + | public: | 
| 119 | + | string AtomType; | 
| 120 | + | double pos[3]; | 
| 121 | + | double dipole[3]; | 
| 122 | + | }; | 
| 123 | + |  | 
| 124 | + | class AtomData : public GenericData{ | 
| 125 | + | public: | 
| 126 | + | ~AtomData(); | 
| 127 | + | void addAtomInfo(AtomInfo* info) {data.push_back(info);} | 
| 128 | + | void clearAllAtomInfo(); | 
| 129 | + | AtomInfo* beginAtomInfo(vector<AtomInfo*>::iterator& i){ | 
| 130 | + | i = data.begin(); | 
| 131 | + | return i != data.end()? *i : NULL; | 
| 132 | + | } | 
| 133 | + | AtomInfo* nextAtomInfo(vector<AtomInfo*>::iterator& i){ | 
| 134 | + | i++; | 
| 135 | + | return i != data.end()? *i: NULL; | 
| 136 | + | } | 
| 137 | + | vector<AtomInfo*> getData() {return data;} | 
| 138 | + | int getSize() {return data.size();} | 
| 139 | + | protected: | 
| 140 | + | vector<AtomInfo*> data; | 
| 141 | + | }; | 
| 142 | + |  | 
| 143 | + |  | 
| 144 | + |  | 
| 145 |  | #endif |