| 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_; |