source: molecuilder/src/Actions/ManipulateAtomsProcess.cpp@ 2e06c4

Last change on this file since 2e06c4 was 521e29, checked in by Tillmann Crueger <crueger@…>, 15 years ago

Switched type of pointer used for ActionStates

  • Property mode set to 100644
File size: 1.4 KB
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#include "Helpers/Assert.hpp"
14
15using namespace std;
16
17ManipulateAtomsProcess::ManipulateAtomsProcess(boost::function<void(atom*)> _operation, AtomDescriptor _descr,
18 std::string _name,bool _doRegister) :
19 Process(0,_name,_doRegister),
20 descr(_descr),
21 operation(_operation)
22{}
23
24ManipulateAtomsProcess::~ManipulateAtomsProcess()
25{}
26
27Action::state_ptr ManipulateAtomsProcess::performCall(){
28 World::getInstance().doManipulate(this);
29 return Action::success;
30}
31
32Action::state_ptr ManipulateAtomsProcess::performUndo(Action::state_ptr){
33 ASSERT(0,"Undo called for a ManipulateAtomsProcess");
34 return Action::success;
35}
36
37Action::state_ptr ManipulateAtomsProcess::performRedo(Action::state_ptr){
38 ASSERT(0,"Redo called for a ManipulateAtomsProcess");
39 return Action::success;
40}
41
42bool ManipulateAtomsProcess::canUndo(){
43 return false;
44}
45
46bool ManipulateAtomsProcess::shouldUndo(){
47 return true;
48}
49
50void ManipulateAtomsProcess::doManipulate(World *world){
51 setMaxSteps(world->numAtoms());
52 start();
53 for(World::AtomIterator iter=world->getAtomIter(descr);iter!=world->atomEnd();++iter){
54 setCurrStep(iter.getCount());
55 operation(*iter);
56 }
57 stop();
58}
Note: See TracBrowser for help on using the repository browser.