source: molecuilder/src/Actions/ManipulateAtomsProcess.cpp@ 91379c

Last change on this file since 91379c was 5738177, checked in by Tillmann Crueger <crueger@…>, 16 years ago

Added a generic Iterator that can be used to iterate only over certain parts of an internal data structure

  • Property mode set to 100644
File size: 971 bytes
Line 
1/*
2 * ManipulateAtomsProcess.cpp
3 *
4 * Created on: Feb 18, 2010
5 * Author: crueger
6 */
7
8#include "ManipulateAtomsProcess.hpp"
9
10#include <iostream>
11
12#include "World.hpp"
13
14using namespace std;
15
16ManipulateAtomsProcess::ManipulateAtomsProcess(boost::function<void(atom*)> _operation, AtomDescriptor _descr,
17 std::string _name,bool _doRegister) :
18 Process(0,_name,_doRegister),
19 descr(_descr),
20 operation(_operation)
21{}
22
23ManipulateAtomsProcess::~ManipulateAtomsProcess()
24{}
25
26void ManipulateAtomsProcess::call(){
27 World::getInstance().doManipulate(this);
28}
29
30void ManipulateAtomsProcess::undo(){
31
32}
33
34bool ManipulateAtomsProcess::canUndo(){
35 return false;
36}
37
38void ManipulateAtomsProcess::doManipulate(World *world){
39 setMaxSteps(world->numAtoms());
40 start();
41 for(World::AtomIterator iter=world->getAtomIter(descr);iter!=world->atomEnd();++iter){
42 setCurrStep(iter.getCount());
43 operation(*iter);
44 }
45 stop();
46}
Note: See TracBrowser for help on using the repository browser.