--- branches/new_design/OOPSE-2.0/src/primitives/Molecule.cpp 2004/11/01 20:15:58 1692 +++ branches/new_design/OOPSE-2.0/src/primitives/Molecule.cpp 2004/11/01 22:52:57 1695 @@ -30,56 +30,60 @@ * @version 1.0 */ -#include "primitives/Molecule.hpp" #include +#include +#include "primitives/Molecule.hpp" +#include "utils/MemoryUtils.hpp" + namespace oopse { Molecule::~Molecule() { - deleteVectorOfPointer(atoms_); - deleteVectorOfPointer(bonds_); - deleteVectorOfPointer(bends_); - deleteVectorOfPointer(torsions_); - deleteVectorOfPointer(rigidbodies_); - deleteVectorOfPointer(cutoffGroups_); + MemoryUtils::deleteVectorOfPointer(atoms_); + MemoryUtils::deleteVectorOfPointer(bonds_); + MemoryUtils::deleteVectorOfPointer(bends_); + MemoryUtils::deleteVectorOfPointer(torsions_); + MemoryUtils::deleteVectorOfPointer(rigidBodies_); + MemoryUtils::deleteVectorOfPointer(cutoffGroups_); + //integrableObjects_ don't own the objects integrableObjects_.clear(); } void Molecule::addAtom(Atom* atom) { - if (atoms_.find(atom) == atoms_.end()) { + if (std::find(atoms_.begin(), atoms_.end(), atom) == atoms_.end()) { atoms_.push_back(atom); } } void Molecule::addBond(Bond* bond) { - if (bonds_.find(bond) == bonds_.end()) { + if (std::find(bonds_.begin(), bonds_.end(), bond) == bonds_.end()) { bonds_.push_back(bond); } } void Molecule::addBend(Bend* bend) { - if (bends_.find(bend) == bends_.end()) { + if (std::find(bends_.begin(), bends_.end(), bend) == bends_.end()) { bends_.push_back(bend); } } void Molecule::addTorsion(Torsion* torsion) { - if (torsions_.find(torsion) == torsions_.end()) { + if (std::find(torsions_.begin(), torsions_.end(), torsion) == torsions_.end()) { torsions_.push_back(torsion); } } void Molecule::addRigidBody(RigidBody *rb) { - if (rigidBodies_.find(bond) == bonds_.end()) { + if (std::find(rigidBodies_.begin(), rigidBodies_.end(), rb) == rigidBodies_.end()) { rigidBodies_.push_back(rb); } } void Molecule::addCutoffGroup(CutoffGroup* cp) { - if (cutoffGroups_.find(bond) == bonds_.end()) { + if (std::find(cutoffGroups_.begin(), cutoffGroups_.end(), cp) == cutoffGroups_.end()) { cutoffGroups_.push_back(cp); } @@ -92,11 +96,11 @@ void Molecule::complete() { std::set rigidAtoms; RigidBody* rb; - std::vector rbIter; + std::vector::iterator rbIter; for (rb = beginRigidBody(rbIter); rb != NULL; rb = nextRigidBody(rbIter)) { - rigidAtoms.insert(rb->beginAtomIter(), rb->endAtomIter()); + rigidAtoms.insert(rb->getBeginAtomIter(), rb->getEndAtomIter()); } //find all free atoms (which do not belong to rigid bodies) @@ -190,10 +194,10 @@ void Molecule::calcForces() { Bond* bond; Bend* bend; Torsion* torsion; - std::vector rbIter; - std::vector bondIter;; - std::vector bendIter; - std::vector torsionIter; + std::vector::iterator rbIter; + std::vector::iterator bondIter;; + std::vector::iterator bendIter; + std::vector::iterator torsionIter; for (rb = beginRigidBody(rbIter); rb != NULL; rb = nextRigidBody(rbIter)) { rb->updateAtoms(); @@ -219,9 +223,9 @@ double Molecule::getPotential() { Bend* bend; Torsion* torsion; //std::vector rbIter; - std::vector bondIter;; - std::vector bendIter; - std::vector torsionIter; + std::vector::iterator bondIter;; + std::vector::iterator bendIter; + std::vector::iterator torsionIter; double potential = 0; @@ -262,12 +266,12 @@ void Molecule::moveCom(const Vetor3d& delta) { return com; } -void Molecule::moveCom(const Vetor3d& delta) { +void Molecule::moveCom(const Vector3d& delta) { StuntDouble* sd; std::vector::iterator i; for (sd = beginIntegrableObject(i); sd != NULL; sd = nextIntegrableObject(i)){ - s->setPos(sd->getPos() + delta); + sd->setPos(sd->getPos() + delta); } } @@ -290,7 +294,7 @@ std::ostream& operator <<(std::ostream& o, const Molec return velCom; } -std::ostream& operator <<(std::ostream& o, const Molecule& mol) { +std::ostream& operator <<(std::ostream& o, Molecule& mol) { o << std::endl; o << "Molecule " << mol.getGlobalIndex() << "has: " << std::endl; o << mol.getNAtoms() << " atoms" << std::endl;