Changeset 25d9d9
- Timestamp:
- Jun 12, 2016, 8:48:21 AM (9 years ago)
- Branches:
- Fix_BoundInBox_CenterInBox_MoleculeActions
- Parents:
- 996ef1
- git-author:
- Frederik Heber <heber@…> (06/11/16 16:43:54)
- git-committer:
- Frederik Heber <heber@…> (06/12/16 08:48:21)
- Files:
-
- 6 added
- 6 edited
- 8 moved
Legend:
- Unmodified
- Added
- Removed
-
doc/userguide/userguide.xml
r996ef1 r25d9d9 1154 1154 </section> 1155 1155 <section xml:id="domain.bound-in-box"> 1156 <title xml:id="domain.bound-in-box.title">Bound atoms inside box </title>1156 <title xml:id="domain.bound-in-box.title">Bound selected molecules inside box </title> 1157 1157 <para>The following applies the current boundary conditions to the 1158 atoms . In case of periodic or wrapped boundary conditions the atoms1159 w ill be periodically translated to be inside the domain1160 again.</para>1161 <programlisting>... -- bound-in-box</programlisting>1158 atoms of all currently selected molecules. In case of periodic or 1159 wrapped boundary conditions the atoms will be periodically translated 1160 to be inside the domain again.</para> 1161 <programlisting>... --select-all-molecules --bound-in-box</programlisting> 1162 1162 </section> 1163 1163 <section xml:id="domain.center-in-box"> 1164 <title xml:id="domain.center-in-box.title">Center atoms inside the domain</title> 1165 <para>This is a combination of changing the box and bounding the 1166 atoms inside it.</para> 1167 <programlisting>... --center-in-box "20,0,20,0,0,20"</programlisting> 1164 <title xml:id="domain.center-in-box.title">Center each selected molecule inside the domain</title> 1165 <para>This takes each molecule in turn, calculates its center and shifts all 1166 associated atoms in such a way that its center coincides with that of the 1167 domain.</para> 1168 <programlisting>... --select-molecule-by-order -1 1169 --center-in-box "20,0,20,0,0,20"</programlisting> 1168 1170 </section> 1169 1171 <section xml:id="domain.center-edge"> -
src/Actions/GlobalListOfActions.hpp
r996ef1 r25d9d9 73 73 (GraphSubgraphDissection) \ 74 74 (MoleculeBondFile) \ 75 (MoleculeBoundInBox) \ 76 (MoleculeCenterInBox) \ 75 77 (MoleculeChangeName) \ 76 78 (MoleculeChangeBondAngle) \ … … 145 147 (TesselationNonConvexEnvelope) \ 146 148 (WorldAddEmptyBoundary) \ 147 (WorldBoundInBox) \148 (WorldCenterInBox) \149 149 (WorldCenterOnEdge) \ 150 150 (WorldChangeBox) \ -
src/Actions/Makefile.am
r996ef1 r25d9d9 301 301 MOLECULEACTIONSOURCE = \ 302 302 Actions/MoleculeAction/BondFileAction.cpp \ 303 Actions/MoleculeAction/BoundInBoxAction.cpp \ 304 Actions/MoleculeAction/CenterInBoxAction.cpp \ 303 305 Actions/MoleculeAction/ChangeBondAngleAction.cpp \ 304 306 Actions/MoleculeAction/ChangeNameAction.cpp \ … … 319 321 MOLECULEACTIONHEADER = \ 320 322 Actions/MoleculeAction/BondFileAction.hpp \ 323 Actions/MoleculeAction/BoundInBoxAction.hpp \ 324 Actions/MoleculeAction/CenterInBoxAction.hpp \ 321 325 Actions/MoleculeAction/ChangeBondAngleAction.hpp \ 322 326 Actions/MoleculeAction/ChangeNameAction.hpp \ … … 337 341 MOLECULEACTIONDEFS = \ 338 342 Actions/MoleculeAction/BondFileAction.def \ 343 Actions/MoleculeAction/BoundInBoxAction.def \ 344 Actions/MoleculeAction/CenterInBoxAction.def \ 339 345 Actions/MoleculeAction/ChangeBondAngleAction.def \ 340 346 Actions/MoleculeAction/ChangeNameAction.def \ … … 579 585 WORLDACTIONSOURCE = \ 580 586 Actions/WorldAction/AddEmptyBoundaryAction.cpp \ 581 Actions/WorldAction/BoundInBoxAction.cpp \582 Actions/WorldAction/CenterInBoxAction.cpp \583 587 Actions/WorldAction/CenterOnEdgeAction.cpp \ 584 588 Actions/WorldAction/ChangeBoxAction.cpp \ … … 593 597 WORLDACTIONHEADER = \ 594 598 Actions/WorldAction/AddEmptyBoundaryAction.hpp \ 595 Actions/WorldAction/BoundInBoxAction.hpp \596 Actions/WorldAction/CenterInBoxAction.hpp \597 599 Actions/WorldAction/CenterOnEdgeAction.hpp \ 598 600 Actions/WorldAction/ChangeBoxAction.hpp \ … … 607 609 WORLDACTIONDEFS = \ 608 610 Actions/WorldAction/AddEmptyBoundaryAction.def \ 609 Actions/WorldAction/BoundInBoxAction.def \610 Actions/WorldAction/CenterInBoxAction.def \611 611 Actions/WorldAction/CenterOnEdgeAction.def \ 612 612 Actions/WorldAction/ChangeBoxAction.def \ -
src/Actions/MoleculeAction/BoundInBoxAction.cpp
r996ef1 r25d9d9 45 45 #include <vector> 46 46 47 #include "Actions/ WorldAction/BoundInBoxAction.hpp"47 #include "Actions/MoleculeAction/BoundInBoxAction.hpp" 48 48 49 49 using namespace MoleCuilder; … … 53 53 #include "Action_impl_pre.hpp" 54 54 /** =========== define the function ====================== */ 55 ActionState::ptr WorldBoundInBoxAction::performCall() {55 ActionState::ptr MoleculeBoundInBoxAction::performCall() { 56 56 // create undo state 57 57 std::vector< boost::shared_ptr<Vector> > OldPositions; 58 58 { 59 std::vector<const molecule*> AllMolecules = const_cast<const World &>(World::getInstance()).60 get AllMolecules();61 for (vector<const molecule*>::iterator MolRunner = AllMolecules.begin();62 MolRunner != AllMolecules.end();59 std::vector<const molecule*> SelectedMolecules = const_cast<const World &>(World::getInstance()). 60 getSelectedMolecules(); 61 for (vector<const molecule*>::iterator MolRunner = SelectedMolecules.begin(); 62 MolRunner != SelectedMolecules.end(); 63 63 ++MolRunner) { 64 64 for(molecule::const_iterator AtomRunner = (*MolRunner)->begin(); … … 73 73 } 74 74 } 75 WorldBoundInBoxState *undoState = new WorldBoundInBoxState(OldPositions, params);75 MoleculeBoundInBoxState *undoState = new MoleculeBoundInBoxState(OldPositions, params); 76 76 77 77 // center 78 std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();79 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {78 std::vector<molecule*> SelectedMolecules = World::getInstance().getSelectedMolecules(); 79 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); MolRunner != SelectedMolecules.end(); ++MolRunner) { 80 80 (*MolRunner)->BoundInBox(); 81 81 } … … 83 83 } 84 84 85 ActionState::ptr WorldBoundInBoxAction::performUndo(ActionState::ptr _state) {86 WorldBoundInBoxState *state = assert_cast<WorldBoundInBoxState*>(_state.get());85 ActionState::ptr MoleculeBoundInBoxAction::performUndo(ActionState::ptr _state) { 86 MoleculeBoundInBoxState *state = assert_cast<MoleculeBoundInBoxState*>(_state.get()); 87 87 88 88 // place atoms on old positions 89 89 std::vector< boost::shared_ptr<Vector> >::const_iterator OldPositionsIter = state->OldPositions.begin(); 90 std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();91 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();92 MolRunner != AllMolecules.end();90 std::vector<molecule*> SelectedMolecules = World::getInstance().getSelectedMolecules(); 91 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); 92 MolRunner != SelectedMolecules.end(); 93 93 ++MolRunner) { 94 94 for(molecule::iterator AtomRunner = (*MolRunner)->begin(); … … 96 96 ++AtomRunner) { 97 97 ASSERT(OldPositionsIter != state->OldPositions.end(), 98 " WorldBoundInBoxAction::performUndo() - too few positions stored in UndoState.");98 "MoleculeBoundInBoxAction::performUndo() - too few positions stored in UndoState."); 99 99 (*AtomRunner)->setPosition(**(OldPositionsIter++)); 100 100 } … … 104 104 } 105 105 106 ActionState::ptr WorldBoundInBoxAction::performRedo(ActionState::ptr _state){107 // WorldBoundInBoxState *state = assert_cast<WorldBoundInBoxState*>(_state.get());106 ActionState::ptr MoleculeBoundInBoxAction::performRedo(ActionState::ptr _state){ 107 // MoleculeBoundInBoxState *state = assert_cast<MoleculeBoundInBoxState*>(_state.get()); 108 108 109 109 // center 110 std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();111 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();112 MolRunner != AllMolecules.end();110 std::vector<molecule*> SelectedMolecules = World::getInstance().getSelectedMolecules(); 111 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); 112 MolRunner != SelectedMolecules.end(); 113 113 ++MolRunner) { 114 114 (*MolRunner)->BoundInBox(); … … 118 118 } 119 119 120 bool WorldBoundInBoxAction::canUndo() {120 bool MoleculeBoundInBoxAction::canUndo() { 121 121 return true; 122 122 } 123 123 124 bool WorldBoundInBoxAction::shouldUndo() {124 bool MoleculeBoundInBoxAction::shouldUndo() { 125 125 return true; 126 126 } -
src/Actions/MoleculeAction/BoundInBoxAction.def
r996ef1 r25d9d9 27 27 28 28 // some defines for all the names, you may use ACTION, STATE and PARAMS 29 #define CATEGORY World30 #define MENUNAME " world"29 #define CATEGORY Molecule 30 #define MENUNAME "molecule" 31 31 #define MENUPOSITION 2 32 32 #define ACTIONNAME BoundInBox … … 35 35 36 36 // finally the information stored in the ActionTrait specialization 37 #define DESCRIPTION "bound all atomsin the domain"37 #define DESCRIPTION "bound each selected molecule in the domain" 38 38 #undef SHORTFORM -
src/Actions/MoleculeAction/CenterInBoxAction.cpp
r996ef1 r25d9d9 53 53 #include <vector> 54 54 55 #include "Actions/ WorldAction/CenterInBoxAction.hpp"55 #include "Actions/MoleculeAction/CenterInBoxAction.hpp" 56 56 57 57 using namespace MoleCuilder; … … 61 61 #include "Action_impl_pre.hpp" 62 62 /** =========== define the function ====================== */ 63 ActionState::ptr WorldCenterInBoxAction::performCall() {63 ActionState::ptr MoleculeCenterInBoxAction::performCall() { 64 64 // create undo state 65 65 std::stringstream undostream; … … 69 69 std::vector< boost::shared_ptr<Vector> > OldPositions; 70 70 { 71 std::vector<const molecule*> AllMolecules = const_cast<const World &>(World::getInstance()).72 get AllMolecules();73 for (std::vector<const molecule*>::iterator MolRunner = AllMolecules.begin();74 MolRunner != AllMolecules.end();71 std::vector<const molecule*> SelectedMolecules = const_cast<const World &>(World::getInstance()). 72 getSelectedMolecules(); 73 for (std::vector<const molecule*>::iterator MolRunner = SelectedMolecules.begin(); 74 MolRunner != SelectedMolecules.end(); 75 75 ++MolRunner) { 76 76 for(molecule::const_iterator AtomRunner = (*MolRunner)->begin(); … … 90 90 91 91 // center atoms 92 std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();93 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {92 std::vector<molecule*> SelectedMolecules = World::getInstance().getSelectedMolecules(); 93 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); MolRunner != SelectedMolecules.end(); ++MolRunner) { 94 94 (*MolRunner)->CenterInBox(); 95 95 } … … 99 99 100 100 // create undo state 101 WorldCenterInBoxState *UndoState =102 new WorldCenterInBoxState(101 MoleculeCenterInBoxState *UndoState = 102 new MoleculeCenterInBoxState( 103 103 undostream.str(), 104 104 OldPositions, … … 109 109 } 110 110 111 ActionState::ptr WorldCenterInBoxAction::performUndo(ActionState::ptr _state) {112 WorldCenterInBoxState *state = assert_cast<WorldCenterInBoxState*>(_state.get());111 ActionState::ptr MoleculeCenterInBoxAction::performUndo(ActionState::ptr _state) { 112 MoleculeCenterInBoxState *state = assert_cast<MoleculeCenterInBoxState*>(_state.get()); 113 113 114 114 // restore domain … … 121 121 // place atoms on old positions 122 122 std::vector< boost::shared_ptr<Vector> >::const_iterator OldPositionsIter = state->OldPositions.begin(); 123 std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();124 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();125 MolRunner != AllMolecules.end();123 std::vector<molecule*> SelectedMolecules = World::getInstance().getSelectedMolecules(); 124 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); 125 MolRunner != SelectedMolecules.end(); 126 126 ++MolRunner) { 127 127 for(molecule::iterator AtomRunner = (*MolRunner)->begin(); … … 140 140 } 141 141 142 ActionState::ptr WorldCenterInBoxAction::performRedo(ActionState::ptr _state){143 WorldCenterInBoxState *state = assert_cast<WorldCenterInBoxState*>(_state.get());142 ActionState::ptr MoleculeCenterInBoxAction::performRedo(ActionState::ptr _state){ 143 MoleculeCenterInBoxState *state = assert_cast<MoleculeCenterInBoxState*>(_state.get()); 144 144 145 145 // set new domain … … 147 147 148 148 // center atoms 149 std::vector<molecule *> AllMolecules = World::getInstance().getAllMolecules();150 for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {149 std::vector<molecule *> SelectedMolecules = World::getInstance().getSelectedMolecules(); 150 for (std::vector<molecule*>::iterator MolRunner = SelectedMolecules.begin(); MolRunner != SelectedMolecules.end(); ++MolRunner) { 151 151 (*MolRunner)->CenterInBox(); 152 152 } … … 158 158 } 159 159 160 bool WorldCenterInBoxAction::canUndo() {160 bool MoleculeCenterInBoxAction::canUndo() { 161 161 return true; 162 162 } 163 163 164 bool WorldCenterInBoxAction::shouldUndo() {164 bool MoleculeCenterInBoxAction::shouldUndo() { 165 165 return true; 166 166 } -
src/Actions/MoleculeAction/CenterInBoxAction.def
r996ef1 r25d9d9 28 28 29 29 // some defines for all the names, you may use ACTION, STATE and PARAMS 30 #define CATEGORY World31 #define MENUNAME " world"30 #define CATEGORY Molecule 31 #define MENUNAME "molecule" 32 32 #define MENUPOSITION 3 33 33 #define ACTIONNAME CenterInBox … … 36 36 37 37 // finally the information stored in the ActionTrait specialization 38 #define DESCRIPTION "center all atomsin the domain"38 #define DESCRIPTION "center each selected molecule in the domain" 39 39 #define SHORTFORM "b" -
tests/regression/Domain/BoundInBox/testsuite-domain-bound-in-box-allmolecules.at
r996ef1 r25d9d9 18 18 ### bound atoms in defined domain 19 19 20 AT_SETUP([Domain - bounding in domain ])20 AT_SETUP([Domain - bounding in domain all molecules]) 21 21 AT_KEYWORDS([domain bound-in-box]) 22 22 … … 24 24 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/pre/test.conf $file], 0) 25 25 AT_CHECK([chmod u+w $file], 0) 26 AT_CHECK([../../molecuilder -i $file -- bound-in-box], 0, [stdout], [stderr])26 AT_CHECK([../../molecuilder -i $file --select-all-molecules --bound-in-box], 0, [stdout], [stderr]) 27 27 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/post/test.conf], 0, [stdout], [stderr]) 28 28 … … 30 30 31 31 32 AT_SETUP([Domain - bounding in domain with Undo])32 AT_SETUP([Domain - bounding in domain all molecules with Undo]) 33 33 AT_KEYWORDS([domain bound-in-box undo]) 34 34 … … 36 36 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/pre/test.conf $file], 0) 37 37 AT_CHECK([chmod u+w $file], 0) 38 AT_CHECK([../../molecuilder -i $file -- bound-in-box --undo], 0, [stdout], [stderr])38 AT_CHECK([../../molecuilder -i $file --select-all-molecules --bound-in-box --undo], 0, [stdout], [stderr]) 39 39 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/post/test-undo.conf], 0, [stdout], [stderr]) 40 40 … … 42 42 43 43 44 AT_SETUP([Domain - bounding in domain with Redo])44 AT_SETUP([Domain - bounding in domain all molecules with Redo]) 45 45 AT_KEYWORDS([domain bound-in-box redo]) 46 46 … … 48 48 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/pre/test.conf $file], 0) 49 49 AT_CHECK([chmod u+w $file], 0) 50 AT_CHECK([../../molecuilder -i $file -- bound-in-box --undo --redo], 0, [stdout], [stderr])50 AT_CHECK([../../molecuilder -i $file --select-all-molecules --bound-in-box --undo --redo], 0, [stdout], [stderr]) 51 51 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/BoundInBox/post/test.conf], 0, [stdout], [stderr]) 52 52 -
tests/regression/Domain/CenterInBox/testsuite-domain-center-in-box-allmolecules.at
r996ef1 r25d9d9 18 18 ### center atoms in defined domain 19 19 20 AT_SETUP([Domain - setting and centering in domain ])20 AT_SETUP([Domain - setting and centering in domain all molecules]) 21 21 AT_KEYWORDS([domain center-in-box]) 22 22 … … 24 24 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/pre/test.conf $file], 0) 25 25 AT_CHECK([chmod u+w $file], 0) 26 AT_CHECK([../../molecuilder -i $file -b "15, 0, 15, 0, 0, 15"], 0, [stdout], [stderr])26 AT_CHECK([../../molecuilder -i $file --select-all-molecules -b "15, 0, 15, 0, 0, 15"], 0, [stdout], [stderr]) 27 27 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore]) 28 28 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test.conf], 0, [stdout], [stderr]) … … 31 31 32 32 33 AT_SETUP([Domain - setting and centering in domain with Undo])33 AT_SETUP([Domain - setting and centering in domain all molecules with Undo]) 34 34 AT_KEYWORDS([domain center-in-box undo]) 35 35 … … 37 37 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/pre/test.conf $file], 0) 38 38 AT_CHECK([chmod u+w $file], 0) 39 AT_CHECK([../../molecuilder -i $file -b "15, 0, 15, 0, 0, 15" --undo], 0, [stdout], [stderr])39 AT_CHECK([../../molecuilder -i $file --select-all-molecules -b "15, 0, 15, 0, 0, 15" --undo], 0, [stdout], [stderr]) 40 40 AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore]) 41 41 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test-undo.conf], 0, [stdout], [stderr]) … … 44 44 45 45 46 AT_SETUP([Domain - setting and centering in domain with Redo])46 AT_SETUP([Domain - setting and centering in domain all molecules with Redo]) 47 47 AT_KEYWORDS([domain center-in-box redo]) 48 48 … … 50 50 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/pre/test.conf $file], 0) 51 51 AT_CHECK([chmod u+w $file], 0) 52 AT_CHECK([../../molecuilder -i $file -b "15, 0, 15, 0, 0, 15" --undo --redo], 0, [stdout], [stderr])52 AT_CHECK([../../molecuilder -i $file --select-all-molecules -b "15, 0, 15, 0, 0, 15" --undo --redo], 0, [stdout], [stderr]) 53 53 AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore]) 54 54 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test.conf], 0, [stdout], [stderr]) -
tests/regression/Domain/testsuite-domain.at
r996ef1 r25d9d9 22 22 23 23 # bound atoms in defined domain 24 m4_include([Domain/BoundInBox/testsuite-domain-bound-in-box.at]) 24 m4_include([Domain/BoundInBox/testsuite-domain-bound-in-box-allmolecules.at]) 25 m4_include([Domain/BoundInBox/testsuite-domain-bound-in-box-somemolecules.at]) 25 26 26 27 # center atoms in defined domain 27 m4_include([Domain/CenterInBox/testsuite-domain-center-in-box.at]) 28 m4_include([Domain/CenterInBox/testsuite-domain-center-in-box-allmolecules.at]) 29 m4_include([Domain/CenterInBox/testsuite-domain-center-in-box-somemolecules.at]) 28 30 29 31 # center atoms with defined boundary -
tests/regression/Makefile.am
r996ef1 r25d9d9 63 63 $(srcdir)/Domain/testsuite-domain.at \ 64 64 $(srcdir)/Domain/AddEmptyBoundary/testsuite-domain-add-empty-boundary.at \ 65 $(srcdir)/Domain/BoundInBox/testsuite-domain-bound-in-box.at \ 66 $(srcdir)/Domain/CenterInBox/testsuite-domain-center-in-box.at \ 65 $(srcdir)/Domain/BoundInBox/testsuite-domain-bound-in-box-allmolecules.at \ 66 $(srcdir)/Domain/BoundInBox/testsuite-domain-bound-in-box-somemolecules.at \ 67 $(srcdir)/Domain/CenterInBox/testsuite-domain-center-in-box-allmolecules.at \ 68 $(srcdir)/Domain/CenterInBox/testsuite-domain-center-in-box-somemolecules.at \ 67 69 $(srcdir)/Domain/CenterOnEdge/testsuite-domain-center-on-edge.at \ 68 70 $(srcdir)/Domain/ChangeBox/testsuite-domain-change-box.at \ -
utils/Python/boxmaker.py.in
r996ef1 r25d9d9 340 340 341 341 mol.CommandVerbose('0') 342 mol.WorldCenterInBox('%f 0 0 %f 0 %f' % tuple(cell)) 342 mol.SelectionAllMolecules() 343 mol.MoleculeCenterInBox('%f 0 0 %f 0 %f' % tuple(cell)) 344 mol.SelectionNotAllMolecules() 343 345 mol.WorldRepeatBox('%d %d %d' % tuple(nbox)) 344 346 mol.WorldOutputAs(opt.outfilename + '.data')
Note:
See TracChangeset
for help on using the changeset viewer.