51 |
|
MemoryUtils::deleteVectorOfPointer(torsions_); |
52 |
|
MemoryUtils::deleteVectorOfPointer(rigidBodies_); |
53 |
|
MemoryUtils::deleteVectorOfPointer(cutoffGroups_); |
54 |
< |
|
54 |
> |
MemoryUtils::deleteVectorOfPointer(constraintPairs_); |
55 |
> |
MemoryUtils::deleteVectorOfPointer(constraintElems_); |
56 |
|
//integrableObjects_ don't own the objects |
57 |
|
integrableObjects_.clear(); |
58 |
|
|
102 |
|
|
103 |
|
} |
104 |
|
|
105 |
+ |
void Molecule::addConstraintElem(ConstraintElem* cp) { |
106 |
+ |
if (std::find(constraintElems_.begin(), constraintElems_.end(), cp) == constraintElems_.end()) { |
107 |
+ |
constraintElems_.push_back(cp); |
108 |
+ |
} |
109 |
|
|
110 |
+ |
} |
111 |
+ |
|
112 |
|
void Molecule::complete() { |
113 |
|
|
114 |
|
std::set<Atom*> rigidAtoms; |
148 |
|
integrableObjects_.insert(integrableObjects_.end(), rigidBodies_.begin(), rigidBodies_.end()); |
149 |
|
} |
150 |
|
|
144 |
– |
Atom* Molecule::beginAtom(std::vector<Atom*>::iterator& i) { |
145 |
– |
i = atoms_.begin(); |
146 |
– |
return (i == atoms_.end()) ? NULL : *i; |
147 |
– |
} |
148 |
– |
|
149 |
– |
Atom* Molecule::nextAtom(std::vector<Atom*>::iterator& i) { |
150 |
– |
++i; |
151 |
– |
return (i == atoms_.end()) ? NULL : *i; |
152 |
– |
} |
153 |
– |
|
154 |
– |
Bond* Molecule::beginBond(std::vector<Bond*>::iterator& i) { |
155 |
– |
i = bonds_.begin(); |
156 |
– |
return (i == bonds_.end()) ? NULL : *i; |
157 |
– |
} |
158 |
– |
|
159 |
– |
Bond* Molecule::nextBond(std::vector<Bond*>::iterator& i) { |
160 |
– |
++i; |
161 |
– |
return (i == bonds_.end()) ? NULL : *i; |
162 |
– |
|
163 |
– |
} |
164 |
– |
|
165 |
– |
|
166 |
– |
Bend* Molecule::beginBend(std::vector<Bend*>::iterator& i) { |
167 |
– |
i = bends_.begin(); |
168 |
– |
return (i == bends_.end()) ? NULL : *i; |
169 |
– |
} |
170 |
– |
|
171 |
– |
Bend* Molecule::nextBend(std::vector<Bend*>::iterator& i) { |
172 |
– |
++i; |
173 |
– |
return (i == bends_.end()) ? NULL : *i; |
174 |
– |
} |
175 |
– |
|
176 |
– |
Torsion* Molecule::beginTorsion(std::vector<Torsion*>::iterator& i) { |
177 |
– |
i = torsions_.begin(); |
178 |
– |
return (i == torsions_.end()) ? NULL : *i; |
179 |
– |
} |
180 |
– |
|
181 |
– |
Torsion* Molecule::nextTorsion(std::vector<Torsion*>::iterator& i) { |
182 |
– |
++i; |
183 |
– |
return (i == torsions_.end()) ? NULL : *i; |
184 |
– |
} |
185 |
– |
|
186 |
– |
RigidBody* Molecule::beginRigidBody(std::vector<RigidBody*>::iterator& i) { |
187 |
– |
i = rigidBodies_.begin(); |
188 |
– |
return (i == rigidBodies_.end()) ? NULL : *i; |
189 |
– |
} |
190 |
– |
|
191 |
– |
RigidBody* Molecule::nextRigidBody(std::vector<RigidBody*>::iterator& i) { |
192 |
– |
++i; |
193 |
– |
return (i == rigidBodies_.end()) ? NULL : *i; |
194 |
– |
} |
195 |
– |
|
196 |
– |
StuntDouble* Molecule::beginIntegrableObject(std::vector<StuntDouble*>::iterator& i) { |
197 |
– |
i = integrableObjects_.begin(); |
198 |
– |
return (i == integrableObjects_.end()) ? NULL : *i; |
199 |
– |
} |
200 |
– |
|
201 |
– |
StuntDouble* Molecule::nextIntegrableObject(std::vector<StuntDouble*>::iterator& i) { |
202 |
– |
++i; |
203 |
– |
return (i == integrableObjects_.end()) ? NULL : *i; |
204 |
– |
} |
205 |
– |
|
206 |
– |
CutoffGroup* Molecule::beginCutoffGroup(std::vector<CutoffGroup*>::iterator& i) { |
207 |
– |
i = cutoffGroups_.begin(); |
208 |
– |
return (i == cutoffGroups_.end()) ? NULL : *i; |
209 |
– |
} |
210 |
– |
|
211 |
– |
CutoffGroup* Molecule::nextCutoffGroup(std::vector<CutoffGroup*>::iterator& i) { |
212 |
– |
++i; |
213 |
– |
return (i == cutoffGroups_.end()) ? NULL : *i; |
214 |
– |
} |
215 |
– |
|
216 |
– |
ConstraintPair* Molecule::beginConstraintPair(std::vector<ConstraintPair*>::iterator& i) { |
217 |
– |
i = constraintPairs_.begin(); |
218 |
– |
return (i == constraintPairs_.end()) ? NULL : *i; |
219 |
– |
} |
220 |
– |
|
221 |
– |
ConstraintPair* Molecule::nextConstraintPair(std::vector<ConstraintPair*>::iterator& i) { |
222 |
– |
++i; |
223 |
– |
return (i == constraintPairs_.end()) ? NULL : *i; |
224 |
– |
} |
225 |
– |
|
151 |
|
double Molecule::getMass() { |
152 |
|
StuntDouble* sd; |
153 |
|
std::vector<StuntDouble*>::iterator i; |