58 |
|
#include "primitives/Bond.hpp" |
59 |
|
#include "primitives/Bend.hpp" |
60 |
|
#include "primitives/Torsion.hpp" |
61 |
+ |
#include "primitives/Inversion.hpp" |
62 |
|
#include "primitives/CutoffGroup.hpp" |
63 |
|
|
64 |
|
namespace oopse{ |
76 |
|
typedef std::vector<Bond*>::iterator BondIterator; |
77 |
|
typedef std::vector<Bend*>::iterator BendIterator; |
78 |
|
typedef std::vector<Torsion*>::iterator TorsionIterator; |
79 |
+ |
typedef std::vector<Inversion*>::iterator InversionIterator; |
80 |
|
typedef std::vector<RigidBody*>::iterator RigidBodyIterator; |
81 |
|
typedef std::vector<CutoffGroup*>::iterator CutoffGroupIterator; |
82 |
|
typedef std::vector<StuntDouble*>::iterator IntegrableObjectIterator; |
131 |
|
|
132 |
|
/** add a torsion into this molecule*/ |
133 |
|
void addTorsion(Torsion* torsion); |
134 |
+ |
|
135 |
+ |
/** add an improper torsion into this molecule*/ |
136 |
+ |
void addInversion(Inversion* inversion); |
137 |
|
|
138 |
|
/** add a rigidbody into this molecule */ |
139 |
|
void addRigidBody(RigidBody *rb); |
167 |
|
unsigned int getNTorsions() { |
168 |
|
return torsions_.size(); |
169 |
|
} |
170 |
+ |
|
171 |
+ |
/** Returns the total number of improper torsions in this molecule */ |
172 |
+ |
unsigned int getNInversions() { |
173 |
+ |
return inversions_.size(); |
174 |
+ |
} |
175 |
|
|
176 |
|
/** Returns the total number of rigid bodies in this molecule */ |
177 |
|
unsigned int getNRigidBodies() { |
243 |
|
++i; |
244 |
|
return (i == torsions_.end()) ? NULL : *i; |
245 |
|
} |
246 |
+ |
|
247 |
+ |
Inversion* beginInversion(std::vector<Inversion*>::iterator& i) { |
248 |
+ |
i = inversions_.begin(); |
249 |
+ |
return (i == inversions_.end()) ? NULL : *i; |
250 |
+ |
} |
251 |
|
|
252 |
+ |
Inversion* nextInversion(std::vector<Inversion*>::iterator& i) { |
253 |
+ |
++i; |
254 |
+ |
return (i == inversions_.end()) ? NULL : *i; |
255 |
+ |
} |
256 |
+ |
|
257 |
|
RigidBody* beginRigidBody(std::vector<RigidBody*>::iterator& i) { |
258 |
|
i = rigidBodies_.begin(); |
259 |
|
return (i == rigidBodies_.end()) ? NULL : *i; |
336 |
|
std::vector<Bond*> bonds_; |
337 |
|
std::vector<Bend*> bends_; |
338 |
|
std::vector<Torsion*> torsions_; |
339 |
+ |
std::vector<Inversion*> inversions_; |
340 |
|
std::vector<RigidBody*> rigidBodies_; |
341 |
|
std::vector<StuntDouble*> integrableObjects_; |
342 |
|
std::vector<CutoffGroup*> cutoffGroups_; |