source: molecuilder/src/Actions/ManipulateAtomsProcess.cpp@ 36b8d8

Last change on this file since 36b8d8 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
RevLine 
[cbc27f]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
[5738177]12#include "World.hpp"
13
[cbc27f]14using namespace std;
15
16ManipulateAtomsProcess::ManipulateAtomsProcess(boost::function<void(atom*)> _operation, AtomDescriptor _descr,
17 std::string _name,bool _doRegister) :
[98a2987]18 Process(0,_name,_doRegister),
[cbc27f]19 descr(_descr),
[98a2987]20 operation(_operation)
[cbc27f]21{}
22
23ManipulateAtomsProcess::~ManipulateAtomsProcess()
24{}
25
26void ManipulateAtomsProcess::call(){
[4c60ef]27 World::getInstance().doManipulate(this);
[cbc27f]28}
29
30void ManipulateAtomsProcess::undo(){
31
32}
33
34bool ManipulateAtomsProcess::canUndo(){
35 return false;
36}
[9ef76a]37
38void ManipulateAtomsProcess::doManipulate(World *world){
39 setMaxSteps(world->numAtoms());
40 start();
[5738177]41 for(World::AtomIterator iter=world->getAtomIter(descr);iter!=world->atomEnd();++iter){
[9ef76a]42 setCurrStep(iter.getCount());
43 operation(*iter);
44 }
45 stop();
46}
Note: See TracBrowser for help on using the repository browser.