- Timestamp:
- May 18, 2017, 8:05:20 PM (8 years ago)
- Branches:
- ForceAnnealing_goodresults, ForceAnnealing_tocheck
- Children:
- ffd7cd
- Parents:
- d5c1c8
- git-author:
- Frederik Heber <frederik.heber@…> (05/18/17 19:33:25)
- git-committer:
- Frederik Heber <frederik.heber@…> (05/18/17 20:05:20)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/SelectionAction/Atoms/AtomByOrderAction.cpp
rd5c1c8 rc5bd60c 54 54 /** =========== define the function ====================== */ 55 55 ActionState::ptr SelectionAtomByOrderAction::performCall() { 56 const atom *Walker = const_cast<const World &>(World::getInstance()). 57 getAtom(AtomByOrder(params.order.get())); 58 if (Walker != NULL) { 59 if (!World::getInstance().isSelected(Walker)) { 60 LOG(1, "Selecting atom " << *Walker); 61 World::getInstance().selectAtom(Walker); 62 LOG(0, World::getInstance().countSelectedAtoms() << " atoms selected."); 63 return ActionState::ptr(new SelectionAtomByOrderState(Walker->getId(), params)); 56 size_t no_selected = 0; 57 const std::vector<int> &indices = params.orders.get(); 58 std::vector<atomId_t> atomids; 59 const World &const_world = World::getConstInstance(); 60 World &world = World::getInstance(); 61 for( std::vector<int>::const_iterator iter = indices.begin(); 62 iter != indices.end(); ++iter) { 63 const atom * const walker = const_world.getAtom(AtomByOrder(*iter)); 64 65 if (walker != NULL) { 66 if (!const_world.isSelected(walker)) { 67 //LOG(1, "Selecting atom " << *walker); 68 world.selectAtom(walker); 69 atomids.push_back(walker->getId()); 70 ++no_selected; 71 } 64 72 } else { 65 return Action::success; 73 STATUS("Cannot find atom by given index "+toString(*iter)+"."); 74 return Action::failure; 66 75 } 76 } 77 78 LOG(0, no_selected << " atoms additionally selected."); 79 if (no_selected != 0) { 80 return ActionState::ptr(new SelectionAtomByOrderState(atomids, params)); 67 81 } else { 68 STATUS("Cannot find atom by given order of "+toString(params.order.get())+"."); 69 return Action::failure; 82 return Action::success; 70 83 } 71 84 } … … 74 87 SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get()); 75 88 76 World::getInstance().unselectAllAtoms(AtomById(state->WalkerId)); 89 World &world = World::getInstance(); 90 for (std::vector<atomId_t>::const_iterator iter = state->WalkerIds.begin(); 91 iter != state->WalkerIds.end(); ++iter) 92 world.unselectAllAtoms(AtomById(*iter)); 77 93 78 94 return ActionState::ptr(_state); … … 82 98 SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get()); 83 99 84 World::getInstance().selectAllAtoms(AtomById(state->WalkerId)); 100 World &world = World::getInstance(); 101 for (std::vector<atomId_t>::const_iterator iter = state->WalkerIds.begin(); 102 iter != state->WalkerIds.end(); ++iter) 103 world.selectAllAtoms(AtomById(*iter)); 85 104 86 105 return ActionState::ptr(_state);
Note:
See TracChangeset
for help on using the changeset viewer.
