| [57dd40] | 1 | /* | 
|---|
|  | 2 | * UndoRedoHelpers.hpp | 
|---|
|  | 3 | * | 
|---|
|  | 4 | *  Created on: Apr 5, 2012 | 
|---|
|  | 5 | *      Author: heber | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
|  | 8 | #ifndef UNDOREDOHELPERS_HPP_ | 
|---|
|  | 9 | #define UNDOREDOHELPERS_HPP_ | 
|---|
|  | 10 |  | 
|---|
|  | 11 |  | 
|---|
|  | 12 | // include config.h | 
|---|
|  | 13 | #ifdef HAVE_CONFIG_H | 
|---|
|  | 14 | #include <config.h> | 
|---|
|  | 15 | #endif | 
|---|
|  | 16 |  | 
|---|
|  | 17 | #include <vector> | 
|---|
|  | 18 |  | 
|---|
|  | 19 | #include "Atom/AtomicInfo.hpp" | 
|---|
| [af9be32] | 20 | #include "Bond/BondInfo.hpp" | 
|---|
| [57dd40] | 21 |  | 
|---|
|  | 22 | namespace MoleCuilder { | 
|---|
|  | 23 |  | 
|---|
|  | 24 | /** Adds removed atoms back to the world whose state is stored as AtomicInfo. | 
|---|
|  | 25 | * | 
|---|
|  | 26 | * @param atoms vector of atomicInfo | 
|---|
|  | 27 | * @return restoral was successful, at least atom could not be restored. | 
|---|
|  | 28 | */ | 
|---|
|  | 29 | bool AddAtomsFromAtomicInfo(std::vector<AtomicInfo> &atoms); | 
|---|
|  | 30 |  | 
|---|
|  | 31 | /** Removes atoms whose state information is stored as AtomicInfo. | 
|---|
|  | 32 | * | 
|---|
|  | 33 | * @param atoms vector of atomicInfo | 
|---|
|  | 34 | */ | 
|---|
|  | 35 | void RemoveAtomsFromAtomicInfo(std::vector<AtomicInfo> &atoms); | 
|---|
|  | 36 |  | 
|---|
| [af9be32] | 37 | /** Stores the required bond information in for all \a atoms in \a bonds. | 
|---|
|  | 38 | * | 
|---|
|  | 39 | * @param atoms atoms whose bonds to store | 
|---|
|  | 40 | * @param bonds vector with bond information on return | 
|---|
|  | 41 | */ | 
|---|
|  | 42 | void StoreBondInformationFromAtoms( | 
|---|
|  | 43 | const std::vector<const atom*> &atoms, | 
|---|
|  | 44 | std::vector<BondInfo> &bonds); | 
|---|
|  | 45 |  | 
|---|
|  | 46 | /** Recreates bonds from information stored in \a bonds. | 
|---|
|  | 47 | * | 
|---|
|  | 48 | * @param bonds bond state information | 
|---|
|  | 49 | * @return true - all bonds restored, false - at least one bond could not be restored | 
|---|
|  | 50 | */ | 
|---|
|  | 51 | bool AddBondsFromBondInfo(const std::vector< BondInfo > &bonds); | 
|---|
|  | 52 |  | 
|---|
| [57dd40] | 53 | /** Sets atoms to state information stored as AtomicInfo. | 
|---|
|  | 54 | * | 
|---|
|  | 55 | * @param movedatoms vector of atomicInfo | 
|---|
|  | 56 | */ | 
|---|
|  | 57 | void SetAtomsFromAtomicInfo(std::vector<AtomicInfo> &movedatoms); | 
|---|
|  | 58 |  | 
|---|
|  | 59 | /** Selects all atoms inside the given vector | 
|---|
|  | 60 | * | 
|---|
|  | 61 | * @param movedatoms vector of atomicInfo | 
|---|
|  | 62 | */ | 
|---|
|  | 63 | void SelectAtomsFromAtomicInfo(std::vector<AtomicInfo> &movedatoms); | 
|---|
|  | 64 |  | 
|---|
|  | 65 | /** Sets the atoms whose id is stored in given AtomicInfo in \a movedatoms | 
|---|
|  | 66 | *  to position in \a MovedToVector. | 
|---|
|  | 67 | * | 
|---|
|  | 68 | * @param movedatoms atoms whose position to change | 
|---|
|  | 69 | * @param MovedToVector vector with old positions | 
|---|
|  | 70 | */ | 
|---|
|  | 71 | void ResetAtomPosition(const std::vector<AtomicInfo> &movedatoms, const std::vector<Vector> &MovedToVector); | 
|---|
| [8ea3e7] | 72 |  | 
|---|
|  | 73 | /** Remove all molecules identified by their ids given in \a ids. | 
|---|
|  | 74 | * | 
|---|
|  | 75 | * @param ids vector of molecular ids to remove | 
|---|
|  | 76 | */ | 
|---|
|  | 77 | void RemoveMoleculesWithAtomsByIds(const std::vector<moleculeId_t> &ids); | 
|---|
| [57dd40] | 78 | } | 
|---|
|  | 79 |  | 
|---|
|  | 80 |  | 
|---|
|  | 81 |  | 
|---|
|  | 82 | #endif /* UNDOREDOHELPERS_HPP_ */ | 
|---|