Changeset f01769 for src


Ignore:
Timestamp:
Jul 24, 2015, 4:44:34 PM (10 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, Candidate_v1.7.0, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
a58c16
Parents:
1259df
git-author:
Frederik Heber <heber@…> (06/01/15 16:57:36)
git-committer:
Frederik Heber <heber@…> (07/24/15 16:44:34)
Message:

Replaced World::getAtom() wherever possible by const version.

  • some AtomSet member functions now have const atom ptr instead of atom ptr.
  • molecule can return const and non-const AtomSet.
  • added FromIdToConstAtom to allow iterate through atoms in molecule (which are stored by id, not by ptr) in const fashion.
  • in molecule::isInMolecule() is now const, ::CopyMolecule..() is non-const (because copying involves father atom who is stored non-const).
Location:
src
Files:
53 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/AtomAction/ChangeElementAction.cpp

    r1259df rf01769  
    5757/** =========== define the function ====================== */
    5858ActionState::ptr AtomChangeElementAction::performCall() {
    59   atom *first = NULL;
    60   molecule *mol = NULL;
    61 
    6259  // create undo state
    6360  ElementMap Elements;
     
    6865
    6966  for (World::AtomSelectionIterator iter = World::getInstance().beginAtomSelection(); iter != World::getInstance().endAtomSelection(); ++iter) {
    70     first = iter->second;
     67    atom *first = iter->second;
    7168    LOG(1, "Changing atom " << *first << " to element " << *params.elemental.get() << ".");
    7269    first->setType(params.elemental.get());
     
    7774ActionState::ptr AtomChangeElementAction::performUndo(ActionState::ptr _state) {
    7875  AtomChangeElementState *state = assert_cast<AtomChangeElementState*>(_state.get());
    79   atom *first = NULL;
    80   molecule *mol = NULL;
    81 
    8276  for(ElementMap::const_iterator iter = state->Elements.begin(); iter != state->Elements.end(); ++iter) {
    83     first = World::getInstance().getAtom(AtomById(iter->first));
     77    atom *first = World::getInstance().getAtom(AtomById(iter->first));
    8478    first->setType(iter->second);
    8579  }
     
    9084ActionState::ptr AtomChangeElementAction::performRedo(ActionState::ptr _state){
    9185  AtomChangeElementState *state = assert_cast<AtomChangeElementState*>(_state.get());
    92   atom *first = NULL;
    93   molecule *mol = NULL;
    9486
    9587  for(ElementMap::const_iterator iter = state->Elements.begin(); iter != state->Elements.end(); ++iter) {
    96     first = World::getInstance().getAtom(AtomById(iter->first));
     88    atom *first = World::getInstance().getAtom(AtomById(iter->first));
    9789    first->setType(state->params.elemental.get());
    9890  }
  • src/Actions/FillAction/FillRegularGridAction.cpp

    r1259df rf01769  
    7575  }
    7676  molecule *filler = *(molecules.begin());
    77   for(molecule::const_iterator iter = filler->begin(); iter != filler->end(); ++iter)
     77  for(molecule::const_iterator iter = const_cast<const molecule *>(filler)->begin();
     78      iter != const_cast<const molecule *>(filler)->end(); ++iter)
    7879    movedatoms.push_back( AtomicInfo(*(*iter)) );
    7980  LOG(1, "INFO: Chosen molecule has " << filler->size() << " atoms.");
  • src/Actions/FillAction/FillSurfaceAction.cpp

    r1259df rf01769  
    7878  }
    7979  molecule *filler = *(molecules.begin());
    80   for(molecule::const_iterator iter = filler->begin(); iter != filler->end(); ++iter)
     80  for(molecule::const_iterator iter = const_cast<const molecule *>(filler)->begin();
     81      iter != const_cast<const molecule *>(filler)->end(); ++iter)
    8182    movedatoms.push_back( AtomicInfo(*(*iter)) );
    8283  LOG(1, "INFO: Chosen molecule has " << filler->size() << " atoms.");
     
    8788  // determine center with respect to alignment axis
    8889  Vector sum = zeroVec;
    89   for (molecule::iterator it2=filler->begin();it2 !=filler->end();++it2) {
     90  for (molecule::const_iterator it2=const_cast<const molecule *>(filler)->begin();
     91      it2 !=const_cast<const molecule *>(filler)->end();++it2) {
    9092    const Vector helper = (**it2).getPosition().partition(params.AlignedAxis.get()).second;
    9193    sum += helper;
  • src/Actions/FillAction/SuspendInMoleculeAction.cpp

    r1259df rf01769  
    122122    filler = *(molecules.begin());
    123123  }
    124   for(molecule::const_iterator iter = filler->begin(); iter != filler->end(); ++iter)
     124  for(molecule::const_iterator iter = const_cast<const molecule *>(filler)->begin();
     125      iter != const_cast<const molecule *>(filler)->end(); ++iter)
    125126    movedatoms.push_back( AtomicInfo(*(*iter)) );
    126127  LOG(1, "INFO: Chosen molecule has " << filler->size() << " atoms.");
     
    174175      << fillermass << " atomicmassunit, and it's volume is "
    175176      << fillervolume << (IsAngstroem ? " angstrom" : " atomiclength") << "^3.");
    176   const double solventdensity = fillermass / fillervolume;
     177//  const double solventdensity = fillermass / fillervolume;
    177178
    178179  /// solve cubic polynomial
  • src/Actions/MoleculeAction/RemoveAction.cpp

    r1259df rf01769  
    6868      iter != molecules.end(); ++iter) {
    6969    std::vector<AtomicInfo> Walkers;
    70     for (molecule::const_iterator atomiter = (*iter)->begin();
    71         atomiter != (*iter)->end(); ++atomiter) {
     70    for (molecule::const_iterator atomiter = const_cast<const molecule *>(*iter)->begin();
     71        atomiter != const_cast<const molecule *>(*iter)->end(); ++atomiter) {
    7272      Walkers.push_back(AtomicInfo(**atomiter));
    7373    }
  • src/Actions/SelectionAction/Atoms/AtomByIdAction.cpp

    r1259df rf01769  
    6565  undoatomids.reserve(atomids.size());
    6666  for (atomids_t::const_iterator iter = atomids.begin(); iter != atomids.end(); ++iter) {
    67     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
     67    const atom *Walker = const_cast<const World &>(World::getInstance()).
     68        getAtom(AtomById(*iter));
    6869    if (Walker != NULL) {
    6970      if (!World::getInstance().isSelected(Walker)) {
     
    104105
    105106  for (atomids_t::const_iterator iter = state->undoatomids.begin();
    106       iter != state->undoatomids.end(); ++iter) {
    107     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
    108     World::getInstance().unselectAtom(Walker);
    109   }
     107      iter != state->undoatomids.end(); ++iter)
     108    World::getInstance().unselectAllAtoms(AtomById(*iter));
    110109
    111110  return ActionState::ptr(_state);
     
    116115
    117116  for (atomids_t::const_iterator iter = state->undoatomids.begin();
    118       iter != state->undoatomids.end(); ++iter) {
    119     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
    120     World::getInstance().selectAtom(Walker);
    121   }
     117      iter != state->undoatomids.end(); ++iter)
     118    World::getInstance().selectAllAtoms(AtomById(*iter));
    122119
    123120  return ActionState::ptr(_state);
  • src/Actions/SelectionAction/Atoms/AtomByOrderAction.cpp

    r1259df rf01769  
    5454/** =========== define the function ====================== */
    5555ActionState::ptr SelectionAtomByOrderAction::performCall() {
    56   const atom *Walker = World::getInstance().getAtom(AtomByOrder(params.order.get()));
     56  const atom *Walker = const_cast<const World &>(World::getInstance()).
     57      getAtom(AtomByOrder(params.order.get()));
    5758  if (Walker != NULL) {
    5859    if (!World::getInstance().isSelected(Walker)) {
     
    7374  SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get());
    7475
    75   const atom *Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
    76   World::getInstance().unselectAtom(Walker);
     76  World::getInstance().unselectAllAtoms(AtomById(state->WalkerId));
    7777
    7878  return ActionState::ptr(_state);
     
    8282  SelectionAtomByOrderState *state = assert_cast<SelectionAtomByOrderState*>(_state.get());
    8383
    84   const atom *Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
    85   World::getInstance().selectAtom(Walker);
     84  World::getInstance().selectAllAtoms(AtomById(state->WalkerId));
    8685
    8786  return ActionState::ptr(_state);
  • src/Actions/SelectionAction/Atoms/NotAtomByIdAction.cpp

    r1259df rf01769  
    6565  undoatomids.reserve(atomids.size());
    6666  for (atomids_t::const_iterator iter = atomids.begin(); iter != atomids.end(); ++iter) {
    67     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
     67    const atom *Walker = const_cast<const World &>(World::getInstance()).
     68        getAtom(AtomById(*iter));
    6869    if (Walker != NULL) {
    6970      if (World::getInstance().isSelected(Walker)) {
     
    104105
    105106  for (atomids_t::const_iterator iter = state->undoatomids.begin();
    106       iter != state->undoatomids.end(); ++iter) {
    107     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
    108     World::getInstance().selectAtom(Walker);
    109   }
     107      iter != state->undoatomids.end(); ++iter)
     108    World::getInstance().selectAllAtoms(AtomById(*iter));
    110109
    111110  return ActionState::ptr(_state);
     
    116115
    117116  for (atomids_t::const_iterator iter = state->undoatomids.begin();
    118       iter != state->undoatomids.end(); ++iter) {
    119     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
    120     World::getInstance().unselectAtom(Walker);
    121   }
     117      iter != state->undoatomids.end(); ++iter)
     118    World::getInstance().unselectAllAtoms(AtomById(*iter));
    122119
    123120  return ActionState::ptr(_state);
  • src/Actions/SelectionAction/Atoms/NotAtomByOrderAction.cpp

    r1259df rf01769  
    5454/** =========== define the function ====================== */
    5555ActionState::ptr SelectionNotAtomByOrderAction::performCall() {
    56   const atom * Walker = World::getInstance().getAtom(AtomByOrder(params.order.get()));
     56  const atom * Walker = const_cast<const World &>(World::getInstance()).
     57      getAtom(AtomByOrder(params.order.get()));
    5758  if (Walker != NULL) {
    5859    if (World::getInstance().isSelected(Walker)) {
     
    7374  SelectionNotAtomByOrderState *state = assert_cast<SelectionNotAtomByOrderState*>(_state.get());
    7475
    75   const atom * Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
    76   World::getInstance().selectAtom(Walker);
     76  World::getInstance().selectAllAtoms(AtomById(state->WalkerId));
    7777
    7878  return ActionState::ptr(_state);
     
    8282  SelectionNotAtomByOrderState *state = assert_cast<SelectionNotAtomByOrderState*>(_state.get());
    8383
    84   const atom * Walker = World::getInstance().getAtom(AtomById(state->WalkerId));
    85   World::getInstance().unselectAtom(Walker);
     84  World::getInstance().unselectAllAtoms(AtomById(state->WalkerId));
    8685
    8786  return ActionState::ptr(_state);
  • src/Actions/TesselationAction/ConvexEnvelopeAction.cpp

    r1259df rf01769  
    8686    // we check whether all molecule's atoms are still inside
    8787    std::vector<std::string> outside_atoms;
    88     for(molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter)
     88    for(molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     89        iter != const_cast<const molecule *>(mol)->end(); ++iter)
    8990      if (!TesselStruct->IsInnerPoint((*iter)->getPosition(), LCList))
    9091        outside_atoms.push_back((*iter)->getName());
  • src/Actions/WorldAction/RepeatBoxAction.cpp

    r1259df rf01769  
    6363void repeatMoleculesinDomain(
    6464    std::vector< unsigned int > Repeater,
    65     const std::vector<const molecule *> &AllMolecules)
     65    const std::vector<molecule *> &AllMolecules)
    6666{
    6767  LOG(0, "STATUS: Repeating box " << Repeater << " times for (x,y,z) axis.");
     
    9595        if ((n[0] == 0) && (n[1] == 0) && (n[2] == 0))
    9696          continue;
    97         for (vector<const molecule *>::const_iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
    98           const molecule * const mol = *MolRunner;
     97        for (vector<molecule *>::const_iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
     98          molecule * const mol = *MolRunner;
    9999          LOG(2, "DEBUG: Current mol is " << mol->name << "." << endl);
    100100          molecule * const newmol = mol->CopyMolecule();
     
    114114ActionState::ptr WorldRepeatBoxAction::performCall() {
    115115  DoLog(0) && (Log() << Verbose(0) << "Using all molecules." << endl);
    116   std::vector<const molecule *> AllMolecules =
    117       const_cast<const World &>(World::getInstance()).getAllMolecules();
     116  std::vector<molecule *> AllMolecules = World::getInstance().getAllMolecules();
    118117
    119118  // prepare undo state
    120119  RealSpaceMatrix olddomain = World::getInstance().getDomain().getM();
    121   std::set<const molecule *> oldmolecules;
    122   for(std::vector<const molecule *>::const_iterator iter = AllMolecules.begin();
     120  std::set<molecule *> oldmolecules;
     121  for(std::vector<molecule *>::const_iterator iter = AllMolecules.begin();
    123122      iter != AllMolecules.end();
    124123      ++iter)
     
    136135ActionState::ptr WorldRepeatBoxAction::performUndo(ActionState::ptr _state) {
    137136  WorldRepeatBoxState *state = assert_cast<WorldRepeatBoxState*>(_state.get());
    138   MoleculeListClass *molecules = World::getInstance().getMolecules();
    139137
    140138  // set old domain
     
    159157  WorldRepeatBoxState *state = assert_cast<WorldRepeatBoxState*>(_state.get());
    160158
    161   std::vector<const molecule *> originalmolecules;
    162   for(std::set<const molecule *>::const_iterator iter = state->oldmolecules.begin();
     159  std::vector<molecule *> originalmolecules;
     160  for(std::set<molecule *>::const_iterator iter = state->oldmolecules.begin();
    163161      iter != state->oldmolecules.end();
    164162      ++iter)
  • src/Actions/WorldAction/RepeatBoxAction.def

    r1259df rf01769  
    2828(STLVectorValidator< std::vector< unsigned int > >(NDIM, NDIM))
    2929
    30 #define statetypes (RealSpaceMatrix)(std::set< const molecule *>)
     30#define statetypes (RealSpaceMatrix)(std::set< molecule *>)
    3131#define statereferences (olddomain)(oldmolecules)
    3232
  • src/Analysis/analysis_bonds.cpp

    r1259df rf01769  
    182182    // go through every atom
    183183    typedef std::set<const molecule *> Moleculeset;
    184     for(molecule::const_iterator Walker = (*MolWalker)->begin();
    185         Walker!=(*MolWalker)->end();
     184    for(molecule::const_iterator Walker = const_cast<const molecule *>(*MolWalker)->begin();
     185        Walker != const_cast<const molecule *>(*MolWalker)->end();
    186186        ++Walker) {
    187187      // go through every oxygen
  • src/Analysis/analysis_correlation.cpp

    r1259df rf01769  
    155155  std::map<atomId_t, Vector> ZeroVector;
    156156  BOOST_FOREACH(molecule *_mol, molecules) {
    157     const Vector Dipole = getDipole(_mol->begin(), _mol->end());
    158     for(molecule::const_iterator iter = _mol->begin(); iter != _mol->end(); ++iter)
     157    const Vector Dipole =
     158        getDipole(
     159            const_cast<const molecule *>(_mol)->begin(),
     160            const_cast<const molecule *>(_mol)->end());
     161    for(molecule::const_iterator iter = const_cast<const molecule *>(_mol)->begin();
     162        iter != const_cast<const molecule *>(_mol)->end();
     163        ++iter)
    159164      ZeroVector[(*iter)->getId()] = Dipole;
    160165    LOG(2,"INFO: Zero alignment for molecule " << _mol->getId() << " is " << Dipole);
     
    208213  size_t Counter_rejections = 0;
    209214  BOOST_FOREACH(molecule *_mol, molecules) {
    210     const Vector Dipole = getDipole(_mol->begin(), _mol->end());
     215    const Vector Dipole =
     216        getDipole(
     217            const_cast<const molecule *>(_mol)->begin(),
     218            const_cast<const molecule *>(_mol)->end());
    211219    LOG(3,"INFO: Dipole vector at time step " << timestep << " for for molecule "
    212220        << _mol->getId() << " is " << Dipole);
    213221    // check that all atoms are valid (zeroVector known)
    214     molecule::const_iterator iter = _mol->begin();
    215     for(; iter != _mol->end(); ++iter) {
     222    molecule::const_iterator iter = const_cast<const molecule *>(_mol)->begin();
     223    for(; iter != const_cast<const molecule *>(_mol)->end(); ++iter) {
    216224      if (!ZeroVector.count((*iter)->getId()))
    217225        break;
    218226    }
    219     if (iter != _mol->end()) {
     227    if (iter != const_cast<const molecule *>(_mol)->end()) {
    220228      ELOG(2, "Skipping molecule " << _mol->getName() << " as not all atoms have a valid zeroVector.");
    221229      ++Counter_rejections;
    222230      continue;
    223231    } else
    224       iter = _mol->begin();
     232      iter = const_cast<const molecule *>(_mol)->begin();
    225233    std::map<atomId_t, Vector>::const_iterator zeroValue = ZeroVector.find((*iter)->getId()); //due to iter is const
    226234    double angle = 0.;
     
    281289      MolWalker != molecules.end(); ++MolWalker) {
    282290    LOG(2, "INFO: Current molecule is " << (*MolWalker)->getId() << ".");
    283     const Vector Dipole = getDipole((*MolWalker)->begin(), (*MolWalker)->end());
     291    const Vector Dipole =
     292        getDipole(
     293            const_cast<const molecule *>(*MolWalker)->begin(),
     294            const_cast<const molecule *>(*MolWalker)->end());
    284295    std::vector<molecule *>::const_iterator MolOtherWalker = MolWalker;
    285296    for (++MolOtherWalker;
     
    287298        ++MolOtherWalker) {
    288299      LOG(2, "INFO: Current other molecule is " << (*MolOtherWalker)->getId() << ".");
    289       const Vector OtherDipole = getDipole((*MolOtherWalker)->begin(), (*MolOtherWalker)->end());
     300      const Vector OtherDipole = getDipole(
     301          const_cast<const molecule *>(*MolOtherWalker)->begin(),
     302          const_cast<const molecule *>(*MolOtherWalker)->end());
    290303      const double angle = Dipole.Angle(OtherDipole) * (180./M_PI);
    291304      LOG(1, "Angle is " << angle << ".");
     
    410423  for (std::vector<molecule *>::const_iterator MolWalker = molecules.begin(); MolWalker != molecules.end(); MolWalker++) {
    411424    LOG(2, "Current molecule is " << *MolWalker << ".");
    412     for (molecule::const_iterator iter = (*MolWalker)->begin(); iter != (*MolWalker)->end(); ++iter) {
     425    for (molecule::const_iterator iter = const_cast<const molecule *>(*MolWalker)->begin();
     426        iter != const_cast<const molecule *>(*MolWalker)->end();
     427        ++iter) {
    413428      LOG(3, "Current atom is " << **iter << ".");
    414429      for (vector<const element *>::const_iterator type = elements.begin(); type != elements.end(); ++type)
     
    456471    RealSpaceMatrix FullInverseMatrix = World::getInstance().getDomain().getMinv();
    457472    LOG(2, "Current molecule is " << *MolWalker << ".");
    458     for (molecule::const_iterator iter = (*MolWalker)->begin(); iter != (*MolWalker)->end(); ++iter) {
     473    for (molecule::const_iterator iter = const_cast<const molecule *>(*MolWalker)->begin();
     474        iter != const_cast<const molecule *>(*MolWalker)->end();
     475        ++iter) {
    459476      LOG(3, "Current atom is " << **iter << ".");
    460477      for (vector<const element *>::const_iterator type = elements.begin(); type != elements.end(); ++type)
     
    509526    if ((*MolWalker)->empty())
    510527      LOG(2, "\t is empty.");
    511     for (molecule::const_iterator iter = (*MolWalker)->begin(); iter != (*MolWalker)->end(); ++iter) {
     528    for (molecule::const_iterator iter = const_cast<const molecule *>(*MolWalker)->begin();
     529        iter != const_cast<const molecule *>(*MolWalker)->end();
     530        ++iter) {
    512531      LOG(3, "\tCurrent atom is " << *(*iter) << ".");
    513532      for (vector<const element *>::const_iterator type = elements.begin(); type != elements.end(); ++type)
     
    566585    RealSpaceMatrix FullInverseMatrix = World::getInstance().getDomain().getMinv();
    567586    LOG(2, "Current molecule is " << *MolWalker << ".");
    568     for (molecule::const_iterator iter = (*MolWalker)->begin(); iter != (*MolWalker)->end(); ++iter) {
     587    for (molecule::const_iterator iter = const_cast<const molecule *>(*MolWalker)->begin();
     588        iter != const_cast<const molecule *>(*MolWalker)->end();
     589        ++iter) {
    569590      LOG(3, "Current atom is " << **iter << ".");
    570591      for (vector<const element *>::const_iterator type = elements.begin(); type != elements.end(); ++type)
  • src/Atom/AtomSet.hpp

    r1259df rf01769  
    9595      value(startValue)
    9696    {}
    97     T operator+(AtomInfo *atom){
     97    T operator+(const AtomInfo *atom){
    9898      return value + (atom->*f)();
    9999    }
     
    112112      value(startValue)
    113113    {}
    114     T operator+(AtomInfo *atom){
     114    T operator+(const AtomInfo *atom){
    115115      const T temp = (atom->*f)();
    116116      return value < temp ? temp : value;
     
    131131      value(startValue)
    132132    {}
    133     T operator+(AtomInfo *atom){
     133    T operator+(const AtomInfo *atom){
    134134      return value + (atom->*f)(step);
    135135    }
  • src/Atom/atom_bondedparticle.cpp

    r1259df rf01769  
    375375 * \return true - bond exists, false - bond does not exist
    376376 */
    377 bool BondedParticle::IsBondedTo(const unsigned int _step, BondedParticle * const BondPartner) const
     377bool BondedParticle::IsBondedTo(const unsigned int _step, const BondedParticle * const BondPartner) const
    378378{
    379379  bool status = false;
  • src/Atom/atom_bondedparticle.hpp

    r1259df rf01769  
    5151  void removeAllBonds();
    5252  void removeAllBonds(const unsigned int _step);
    53   bool IsBondedTo(const unsigned int _step, BondedParticle * const BondPartner) const;
     53  bool IsBondedTo(const unsigned int _step, const BondedParticle * const BondPartner) const;
    5454  void ClearBondsAtStep(const unsigned int _step);
    5555  int CountBonds() const;
  • src/AtomIdSet.cpp

    r1259df rf01769  
    4949}
    5050
     51const atom * FromIdToConstAtom::operator()(atomId_t id) const {
     52  return const_cast<const World &>(World::getInstance()).getAtom(AtomById(id));
     53}
     54
    5155/** Constructor for class AtomIdSet.
    5256 *
     
    101105 */
    102106AtomIdSet::const_iterator AtomIdSet::begin() const{
    103   return const_iterator(atoms.begin(), FromIdToAtom());
     107  return const_iterator(atoms.begin(), FromIdToConstAtom());
    104108}
    105109
     
    117121 */
    118122AtomIdSet::const_iterator AtomIdSet::end() const{
    119   return const_iterator(atoms.end(), FromIdToAtom());
     123  return const_iterator(atoms.end(), FromIdToConstAtom());
    120124}
    121125
     
    176180AtomIdSet::const_iterator AtomIdSet::find(const atomId_t &id) const
    177181{
    178   return const_iterator(atoms.find(id), FromIdToAtom());
     182  return const_iterator(atoms.find(id), FromIdToConstAtom());
    179183}
    180184
     
    223227AtomIdSet::const_iterator AtomIdSet::erase(const atom * const key)
    224228{
    225   const_iterator iter = find(key);
    226   if (iter != end()){
     229  const_iterator iter = const_cast<const AtomIdSet &>(*this).find(key);
     230  if (iter != const_cast<const AtomIdSet &>(*this).end()){
    227231    ++iter;
    228232    atoms.erase( key->getId() );
     
    243247    atoms.erase( id );
    244248  }
    245   return iterator(iter, FromIdToAtom());
    246 }
     249  return const_iterator(iter, FromIdToConstAtom());
     250}
  • src/AtomIdSet.hpp

    r1259df rf01769  
    3131};
    3232
     33struct FromIdToConstAtom :
     34  public std::unary_function<const atom *, atomId_t>
     35{
     36    const atom * operator()(atomId_t id) const;
     37};
     38
    3339/** AtomIdSet is a set of atomic ids that however behave as a set of atoms.
    3440 *
     
    4147  typedef std::set<atomId_t> atomIdSet;
    4248  typedef boost::transform_iterator<FromIdToAtom, atomIdSet::iterator, atom *, atomId_t> iterator;
    43   typedef boost::transform_iterator<FromIdToAtom, atomIdSet::const_iterator, const atom *, atomId_t const &> const_iterator;
     49  typedef boost::transform_iterator<FromIdToConstAtom, atomIdSet::const_iterator, const atom *, atomId_t const &> const_iterator;
    4450
    4551  AtomIdSet(const atomIdSet &_atoms);
  • src/Bond/BondInfo.cpp

    r1259df rf01769  
    8787void BondInfo::RemoveBond() const
    8888{
    89   atom * leftatom = World::getInstance().getAtom(AtomById(leftid));
    90   atom * rightatom = World::getInstance().getAtom(AtomById(rightid));
     89  atom * const leftatom = World::getInstance().getAtom(AtomById(leftid));
     90  atom * const rightatom = World::getInstance().getAtom(AtomById(rightid));
    9191  leftatom->removeBond(rightatom);
    9292}
  • src/Descriptors/unittests/AtomDescriptorUnitTest.cpp

    r1259df rf01769  
    122122{
    123123  // test Atoms from boundaries and middle of the set
    124   atom* testAtom;
    125   testAtom = World::getInstance().getAtom(AtomById(atomIds[0]));
     124  const atom* testAtom;
     125  testAtom = const_cast<const World &>(World::getInstance()).
     126      getAtom(AtomById(atomIds[0]));
    126127  CPPUNIT_ASSERT(testAtom);
    127128  CPPUNIT_ASSERT_EQUAL( atomIds[0], testAtom->getId());
    128   testAtom = World::getInstance().getAtom(AtomById(atomIds[ATOM_COUNT/2]));
     129  testAtom = const_cast<const World &>(World::getInstance()).
     130      getAtom(AtomById(atomIds[ATOM_COUNT/2]));
    129131  CPPUNIT_ASSERT(testAtom);
    130132  CPPUNIT_ASSERT_EQUAL( atomIds[ATOM_COUNT/2], testAtom->getId());
    131   testAtom = World::getInstance().getAtom(AtomById(atomIds[ATOM_COUNT-1]));
     133  testAtom = const_cast<const World &>(World::getInstance()).
     134      getAtom(AtomById(atomIds[ATOM_COUNT-1]));
    132135  CPPUNIT_ASSERT(testAtom);
    133136  CPPUNIT_ASSERT_EQUAL( atomIds[ATOM_COUNT-1], testAtom->getId());
     
    143146  }
    144147  // test from outside of set
    145   testAtom = World::getInstance().getAtom(AtomById(outsideId));
     148  testAtom = const_cast<const World &>(World::getInstance()).
     149      getAtom(AtomById(outsideId));
    146150  CPPUNIT_ASSERT(!testAtom);
    147151}
     
    172176void AtomDescriptorTest::AtomOrderTest()
    173177{
    174   atom* testAtom;
     178  const atom* testAtom;
    175179
    176180  // test in normal order: 1, 2, ...
    177181  for(int i=1;i<=ATOM_COUNT;++i){
    178     testAtom = World::getInstance().getAtom(AtomByOrder(i));
     182    testAtom = const_cast<const World &>(World::getInstance()).
     183        getAtom(AtomByOrder(i));
    179184    CPPUNIT_ASSERT_EQUAL( atomIds[i-1], testAtom->getId());
    180185  }
     
    182187  // test in reverse order: -1, -2, ...
    183188  for(int i=1; i<= ATOM_COUNT;++i){
    184     testAtom = World::getInstance().getAtom(AtomByOrder(-i));
     189    testAtom = const_cast<const World &>(World::getInstance()).
     190        getAtom(AtomByOrder(-i));
    185191    CPPUNIT_ASSERT_EQUAL( atomIds[(int)ATOM_COUNT-i], testAtom->getId());
    186192  }
    187193
    188194  // test from outside of set
    189   testAtom = World::getInstance().getAtom(AtomByOrder(ATOM_COUNT+1));
     195  testAtom = const_cast<const World &>(World::getInstance()).
     196      getAtom(AtomByOrder(ATOM_COUNT+1));
    190197  CPPUNIT_ASSERT(!testAtom);
    191   testAtom = World::getInstance().getAtom(AtomByOrder(-ATOM_COUNT-1));
     198  testAtom = const_cast<const World &>(World::getInstance()).
     199      getAtom(AtomByOrder(-ATOM_COUNT-1));
    192200  CPPUNIT_ASSERT(!testAtom);
    193201}
  • src/Filling/unittests/ClusterUnitTest.cpp

    r1259df rf01769  
    120120    // erase non-existing atom
    121121    const atomId_t falseId = _atomId+1;
    122     CPPUNIT_ASSERT_EQUAL( (atom *)NULL, World::getInstance().getAtom(AtomById(falseId)) );
     122    CPPUNIT_ASSERT_EQUAL(
     123        (const atom *)NULL,
     124        const_cast<const World &>(World::getInstance()).getAtom(AtomById(falseId)) );
    123125#ifndef NDEBUG
    124126    std::cout << "The following Assertion is intended and does not present a failure of the test." << std::endl;
     
    189191    // insert non-existing atom
    190192    const atomId_t falseId = _atomId+1;
    191     CPPUNIT_ASSERT_EQUAL( (atom *)NULL, World::getInstance().getAtom(AtomById(falseId)) );
     193    CPPUNIT_ASSERT_EQUAL(
     194        (const atom *)NULL,
     195        const_cast<const World &>(World::getInstance()).getAtom(AtomById(falseId)) );
    192196#ifndef NDEBUG
    193197    std::cout << "The following Assertion is intended and does not present a failure of the test." << std::endl;
     
    299303  // check for same position
    300304  atomId_t id = *(clonedCluster->getAtomIds().begin());
    301   const atom * const _atom = World::getInstance().getAtom(AtomById(id));
     305  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     306      getAtom(AtomById(id));
    302307  CPPUNIT_ASSERT( _atom != NULL );
    303308  CPPUNIT_ASSERT( (*cluster->getAtomRefs().begin())->getPosition() ==_atom->getPosition() );
  • src/Fragmentation/Fragmentation.cpp

    r1259df rf01769  
    169169  // ===== 2. create AtomMask that takes Saturation condition into account
    170170  AtomMask_t AtomMask(atomids);
    171   for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     171  for (molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     172      iter != const_cast<const molecule *>(mol)->end();
     173      ++iter) {
    172174    // remove in hydrogen and we do saturate
    173175    if ((treatment == ExcludeHydrogen) && ((*iter)->getType()->getAtomicNumber() == 1)) // skip hydrogen
     
    269271  // Construct the complete KeySet which we need for topmost level only (but for all Roots)
    270272  KeySet CompleteMolecule;
    271   for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     273  for (molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     274      iter != const_cast<const molecule *>(mol)->end();
     275      ++iter) {
    272276    CompleteMolecule.insert((*iter)->GetTrueFather()->getNr());
    273277  }
     
    353357  int FragmentCount;
    354358  // get maximum bond degree
    355   for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     359  for (molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     360      iter != const_cast<const molecule *>(mol)->end();
     361      ++iter) {
    356362    const BondList& ListOfBonds = (*iter)->getListOfBonds();
    357363    c = (ListOfBonds.size() > c) ? ListOfBonds.size() : c;
     
    442448  output << "INFO: Writing OrderAtSite " << ORDERATSITEFILE << " ... ";
    443449  if (file.good()) {
    444     for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     450    for (molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     451        iter != const_cast<const molecule *>(mol)->end();
     452        ++iter) {
    445453      file << (*iter)->getId()
    446454          << "\t" << (int)(*iter)->AdaptiveOrder
     
    529537void Fragmentation::FillRootStackForSubgraphs(KeyStack &RootStack, const AtomMask_t &AtomMask)
    530538{
    531   for(molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     539  for(molecule::const_iterator iter = const_cast<const molecule *>(mol)->begin();
     540      iter != const_cast<const molecule *>(mol)->end();
     541      ++iter) {
    532542    const atom * const Father = (*iter)->GetTrueFather();
    533543    if (AtomMask.isTrue(Father->getNr())) // apply mask
  • src/Fragmentation/Graph.cpp

    r1259df rf01769  
    265265        keyiter != iter->first.end(); ++keyiter) {
    266266      const size_t globalid = *keyiter;
    267       const atom *Walker = World::getInstance().getAtom(AtomById(globalid));
     267      const atom * const Walker = const_cast<const World &>(World::getInstance()).
     268          getAtom(AtomById(globalid));
    268269      if (Walker != NULL) {
    269270        if (Walker->getMolecule() != mol) {
  • src/Fragmentation/Homology/HomologyGraph_getFromKeyset.cpp

    r1259df rf01769  
    5959      iter != keyset.end(); ++iter) {
    6060//    LOG(2, "DEBUG: Current global id is " << *iter << ".");
    61     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
     61    const atom * const Walker = const_cast<const World &>(World::getInstance()).
     62        getAtom(AtomById(*iter));
    6263    if (Walker != NULL) {
    6364      size_t NoBonds = 0;
     
    6566      for (BondList::const_iterator bonditer = ListOfBonds.begin();
    6667          bonditer != ListOfBonds.end(); ++bonditer) {
    67         const atom *OtherWalker = (*bonditer)->GetOtherAtom(Walker);
     68        const atom * const OtherWalker = (*bonditer)->GetOtherAtom(Walker);
    6869        if (keyset.count(OtherWalker->getId()))
    6970          ++NoBonds;
     
    8990      iter != keyset.end(); ++iter) {
    9091//    LOG(2, "DEBUG: Current global id is " << *iter << ".");
    91     const atom *Walker = World::getInstance().getAtom(AtomById(*iter));
     92    const atom * const Walker = const_cast<const World &>(World::getInstance()).
     93        getAtom(AtomById(*iter));
    9294    if (Walker != NULL) {
    9395      const BondList& ListOfBonds = Walker->getListOfBonds();
    9496      for (BondList::const_iterator bonditer = ListOfBonds.begin();
    9597          bonditer != ListOfBonds.end(); ++bonditer) {
    96         const atom *OtherWalker = (*bonditer)->GetOtherAtom(Walker);
     98        const atom * const OtherWalker = (*bonditer)->GetOtherAtom(Walker);
    9799//        LOG(2, "DEBUG: Neighbor is " << OtherWalker->getId() << ".");
    98100        if ((keyset.count(OtherWalker->getId())) && (Walker->getId() < OtherWalker->getId())) {
  • src/Graph/AdjacencyList.cpp

    r1259df rf01769  
    129129    ASSERT(WalkerId != (size_t)-1,
    130130        "AdjacencyList::CreateMap() - Walker has no id.");
    131     const atom *Walker = World::getInstance().getAtom(AtomById(WalkerId));
     131    const atom * const Walker = const_cast<const World &>(World::getInstance()).
     132        getAtom(AtomById(WalkerId));
    132133    ASSERT( Walker != NULL,
    133134        "AdjacencyList::CreateMap() - Walker id "+toString(*iter)
  • src/Graph/BuildInducedSubgraph.cpp

    r1259df rf01769  
    4646
    4747
    48 BuildInducedSubgraph::BuildInducedSubgraph(molecule * const _Son, const molecule * const _Father) :
     48BuildInducedSubgraph::BuildInducedSubgraph(molecule * const _Son, molecule * const _Father) :
    4949  Son(_Son),
    5050  Father(_Father)
  • src/Graph/BuildInducedSubgraph.hpp

    r1259df rf01769  
    2222{
    2323public:
    24   BuildInducedSubgraph(molecule * const _Son, const molecule * const _Father);
     24  BuildInducedSubgraph(molecule * const _Son, molecule * const _Father);
    2525  ~BuildInducedSubgraph();
    2626
     
    3939  std::map<atom *, atom*> ParentList;
    4040  molecule * const Son;
    41   const molecule * const Father;
     41  molecule * const Father;
    4242
    4343  void FillParentList();
  • src/Parameters/Specifics/Value_molecule.cpp

    r1259df rf01769  
    4242#include "World.hpp"
    4343
    44 static const molecule * FindMoleculeByName(const std::string &_name)
    45 {
    46   const molecule * _mol = NULL;
    47   const vector<const molecule *> molecules = const_cast<const World &>(World::getInstance()).
    48       getAllMolecules(MoleculeByName(_name));
    49   _mol = *molecules.begin();
    50   return _mol;
    51 }
    52 
    5344template <>
    5445bool Value<const molecule *>::isValidAsString(const std::string &_value) const throw(ParameterValidatorException)
    5546{
    56   return (FindMoleculeByName(_value) != NULL);
     47  return (const_cast<const World &>(World::getInstance()).getMolecule(MoleculeByName(_value)) != NULL);
    5748}
    5849
     
    6657void Value<const molecule *>::setAsString(const std::string &_value) throw(ParameterException)
    6758{
    68   const molecule * temp = FindMoleculeByName(_value);
     59  const molecule * temp = const_cast<const World &>(World::getInstance()).
     60      getMolecule(MoleculeByName(_value));
    6961  if (temp != NULL)
    7062    set(temp);
  • src/Parameters/StreamOperators.hpp

    r1259df rf01769  
    113113  ConvertTo<unsigned int> converter;
    114114  const atomId_t temp_value = converter(line);
    115   const atom *a = World::getInstance().getAtom(AtomById(temp_value));
     115  const atom * const a = const_cast<const World &>(World::getInstance()).
     116      getAtom(AtomById(temp_value));
    116117  ASSERT( a != NULL,
    117118      "operator>>(std::istream& ist, const atom* & m) - atom molecule id "
     
    127128  ConvertTo<unsigned int> converter;
    128129  const moleculeId_t temp_value = converter(line);
    129   const molecule *mol = const_cast<const World &>(World::getInstance()).
     130  const molecule * const mol = const_cast<const World &>(World::getInstance()).
    130131      getMolecule(MoleculeById(temp_value));
    131132  ASSERT( mol != NULL,
     
    185186      iter != tok.end(); ++iter) {
    186187    const atomId_t temp_value = converter(line);
    187     const atom *a = World::getInstance().getAtom(AtomById(temp_value));
     188    const atom * const a = const_cast<const World &>(World::getInstance()).
     189        getAtom(AtomById(temp_value));
    188190    ASSERT( a != NULL,
    189191        "operator>>(std::istream& ist, std::vector<const atom*> & m) - invalid atom id "
     
    205207      iter != tok.end(); ++iter) {
    206208    const atomicNumber_t temp_value = converter(*iter);
    207     const element *elem = World::getInstance().getPeriode()->FindElement(temp_value);
     209    const element * const elem = World::getInstance().getPeriode()->FindElement(temp_value);
    208210    ASSERT( elem != NULL,
    209211        "operator>>(std::istream& ist, std::vector<const element*> & m) - invalid atomic number "
  • src/Parameters/Validators/Specific/AtomIdValidator.cpp

    r1259df rf01769  
    4343bool AtomIdValidator::isValid(const atomId_t & _value) const
    4444{
    45   return (World::getInstance().getAtom(AtomById(_value)) != NULL);
     45  return (const_cast<const World &>(World::getInstance()).getAtom(AtomById(_value)) != NULL);
    4646}
    4747
  • src/Parser/PdbParser.cpp

    r1259df rf01769  
    828828
    829829  // add neighbours
    830   atom *_atom = World::getInstance().getAtom(AtomById(getGlobalId(id)));
     830  atom * const _atom = World::getInstance().getAtom(AtomById(getGlobalId(id)));
    831831  LOG(2, "STATUS: Atom " << _atom->getId() << " gets " << ListOfNeighbors.size() << " more neighbours.");
    832832  for (std::list<size_t>::const_iterator iter = ListOfNeighbors.begin();
  • src/Parser/unittests/ParserTremoloUnitTest.cpp

    r1259df rf01769  
    193193  input << Tremolo_Atomdata2;
    194194  parser->load(&input);
    195   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(1))->at(0) == 3.0);
     195  CPPUNIT_ASSERT(const_cast<const World &>(World::getInstance()).getAtom(AtomByType(1))->at(0) == 3.0);
    196196  input.clear();
    197197}
     
    203203  input << Tremolo_velocity;
    204204  parser->load(&input);
    205   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(1))->getAtomicVelocity()[0] == 3.0);
     205  CPPUNIT_ASSERT(const_cast<const World &>(World::getInstance()).getAtom(AtomByType(1))->getAtomicVelocity()[0] == 3.0);
    206206  input.clear();
    207207}
     
    215215
    216216  CPPUNIT_ASSERT_EQUAL(3, World::getInstance().numAtoms());
    217   CPPUNIT_ASSERT(World::getInstance().getAtom(AtomByType(8))->
    218       IsBondedTo(WorldTime::getTime(), World::getInstance().getAtom(AtomByType(1))));
     217  CPPUNIT_ASSERT(const_cast<const World &>(World::getInstance()).getAtom(AtomByType(8))->
     218      IsBondedTo(WorldTime::getTime(), const_cast<const World &>(World::getInstance()).getAtom(AtomByType(1))));
    219219  input.clear();
    220220}
  • src/Tesselation/boundary.cpp

    r1259df rf01769  
    173173 * and looks at triples: if the middle has less a distance than the allowed maximum height of the triangle formed by the plane's
    174174 * center and first and last point in the triple, it is thrown out.
     175 *
     176 * \todo When storing const ptrs in tesselation structures, remove const_cast
     177 *
    175178 * \param *out output stream for debugging
    176179 * \param *mol molecule structure representing the cluster
     
    206209    // 3b. construct set of all points, transformed into cylindrical system and with left and right neighbours
    207210    // Boundaries stores non-const TesselPoint ref, hence we need iterator here
    208     for (molecule::iterator iter = mol->begin(); iter != mol->end(); ++iter) {
     211    for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
    209212      ProjectedVector = (*iter)->getPosition() - (MolCenter);
    210213      ProjectedVector.ProjectOntoPlane(AxisVector);
     
    222225      }
    223226    LOG(1, "Inserting " << **iter << ": (r, alpha) = (" << radius << "," << angle << "): " << ProjectedVector);
    224       BoundaryTestPair = BoundaryPoints[axis].insert(BoundariesPair(angle, TesselPointDistancePair (radius, (*iter))));
     227      BoundaryTestPair = BoundaryPoints[axis].insert(
     228          BoundariesPair(angle, TesselPointDistancePair (radius, const_cast<atom *>(*iter))));
    225229      if (!BoundaryTestPair.second) { // same point exists, check first r, then distance of original vectors to center of gravity
    226230        LOG(2, "Encountered two vectors whose projection onto axis " << axis << " is equal: ");
     
    230234        if ((ProjectedVectorNorm - BoundaryTestPair.first->second.first) > MYEPSILON) {
    231235          BoundaryTestPair.first->second.first = ProjectedVectorNorm;
    232           BoundaryTestPair.first->second.second = (*iter);
     236          BoundaryTestPair.first->second.second = const_cast<atom *>(*iter);
    233237          LOG(2, "Keeping new vector due to larger projected distance " << ProjectedVectorNorm << ".");
    234238        } else if (fabs(ProjectedVectorNorm - BoundaryTestPair.first->second.first) < MYEPSILON) {
     
    237241          helper = BoundaryTestPair.first->second.second->getPosition() - (MolCenter);
    238242          if (helper.NormSquared() < oldhelperNorm) {
    239             BoundaryTestPair.first->second.second = (*iter);
     243            BoundaryTestPair.first->second.second = const_cast<atom *>(*iter);
    240244            LOG(2, "Keeping new vector due to larger distance to molecule center " << helper.NormSquared() << ".");
    241245          } else {
  • src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp

    r1259df rf01769  
    6464      return false;
    6565    }
    66     temp = World::getInstance().getAtom(AtomById(IdxOfAtom));
     66    temp = const_cast<const World &>(World::getInstance()).getAtom(AtomById(IdxOfAtom));
    6767    return true;
    6868  }
  • src/UIElements/CommandLineUI/Query/AtomsCommandLineQuery.cpp

    r1259df rf01769  
    6161    const atom *temp_element;
    6262    for (std::vector<int>::iterator iter = IdxOfAtom.begin(); iter != IdxOfAtom.end(); ++iter) {
    63       temp_element = World::getInstance().getAtom(AtomById(*iter));
     63      temp_element = const_cast<const World &>(World::getInstance()).getAtom(AtomById(*iter));
    6464      if (temp_element)
    6565        temp.push_back(temp_element);
  • src/UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp

    r1259df rf01769  
    5959      return false;
    6060    }
    61     temp = World::getInstance().getMolecule(MoleculeById(IdxOfMol));
     61    temp = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(IdxOfMol));
    6262    return true;
    6363  }
  • src/UIElements/Qt4/Query/AtomQtQuery.cpp

    r1259df rf01769  
    7373  QVariant data = inputBox->itemData(newIndex);
    7474  int idx = data.toInt();
    75   temp = World::getInstance().getAtom(AtomById(idx));
     75  temp = const_cast<const World &>(World::getInstance()).getAtom(AtomById(idx));
    7676  dialog->update();
    7777}
  • src/UIElements/Qt4/Query/MoleculeQtQuery.cpp

    r1259df rf01769  
    7878  QVariant data = inputBox->itemData(newIndex);
    7979  int idx = data.toInt();
    80   temp = World::getInstance().getMolecule(MoleculeById(idx));
     80  temp = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(idx));
    8181  dialog->update();
    8282}
  • src/UIElements/TextUI/Query/AtomTextQuery.cpp

    r1259df rf01769  
    6666    }
    6767
    68     temp = World::getInstance().getAtom(AtomById(idxOfAtom));
     68    temp = const_cast<const World &>(World::getInstance()).getAtom(AtomById(idxOfAtom));
    6969    if(!temp && idxOfAtom!=-1){
    7070      std::cout << "Invalid Atom Index" << idxOfAtom << std::endl;
  • src/UIElements/TextUI/Query/AtomsTextQuery.cpp

    r1259df rf01769  
    6464      std::istringstream stream(std::string(iter, olditer));
    6565      stream >> idxOfAtom;
    66       temp_element = World::getInstance().getAtom(AtomById(idxOfAtom));
     66      temp_element = const_cast<const World &>(World::getInstance()).getAtom(AtomById(idxOfAtom));
    6767      if(!temp_element && idxOfAtom!=-1){
    6868        std::cout << "Invalid Atom Index" << idxOfAtom << std::endl;
     
    7676    std::istringstream stream(std::string(olditer, line.end()));
    7777    stream >> idxOfAtom;
    78     temp_element = World::getInstance().getAtom(AtomById(idxOfAtom));
     78    temp_element = const_cast<const World &>(World::getInstance()).getAtom(AtomById(idxOfAtom));
    7979    if(!temp_element && idxOfAtom!=-1) {
    8080      std::cout << "Invalid Atom Index" << idxOfAtom << std::endl;
  • src/UIElements/TextUI/Query/MoleculeTextQuery.cpp

    r1259df rf01769  
    6767    }
    6868
    69     temp = World::getInstance().getMolecule(MoleculeById(idxOfMol));
     69    temp = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(idxOfMol));
    7070    if(!temp && idxOfMol!=-1){
    7171      std::cout << "Invalid Molecule Index" << std::endl;
  • src/UIElements/TextUI/Query/MoleculesTextQuery.cpp

    r1259df rf01769  
    6464      std::istringstream stream(std::string(iter, olditer));
    6565      stream >> idxOfMol;
    66       temp_element = World::getInstance().getMolecule(MoleculeById(idxOfMol));
     66      temp_element = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(idxOfMol));
    6767      if(!temp_element && idxOfMol!=-1){
    6868        std::cout << "Invalid Molecule Index" << idxOfMol << std::endl;
     
    7676    std::istringstream stream(std::string(olditer, line.end()));
    7777    stream >> idxOfMol;
    78     temp_element = World::getInstance().getMolecule(MoleculeById(idxOfMol));
     78    temp_element = const_cast<const World &>(World::getInstance()).getMolecule(MoleculeById(idxOfMol));
    7979    if(!temp_element && idxOfMol!=-1){
    8080      std::cout << "Invalid Molecule Index" << idxOfMol << std::endl;
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp

    r1259df rf01769  
    6161{
    6262  // sign on as observer (obtain non-const instance before)
    63   const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     63  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     64      getAtom(AtomById(atomicid));
    6465  if (_atom != NULL) {
    6566    _atom->signOn(this, AtomObservable::IndexChanged);
     
    8283GLMoleculeObject_atom::~GLMoleculeObject_atom()
    8384{
    84   const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     85  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     86      getAtom(AtomById(atomicid));
    8587  if (_atom != NULL){
    8688    _atom->signOff(this, AtomObservable::IndexChanged);
     
    102104void GLMoleculeObject_atom::resetPosition()
    103105{
    104   const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     106  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     107      getAtom(AtomById(atomicid));
    105108  if (_atom != NULL) {
    106109    const Vector Position = _atom->getPosition();
     
    116119{
    117120  size_t elementno = 0;
    118   const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     121  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     122      getAtom(AtomById(atomicid));
    119123  const element *_type = NULL;
    120124  if (_atom != NULL) {
     
    192196void GLMoleculeObject_atom::recieveNotification(Observable *publisher, Notification_ptr notification)
    193197{
    194   const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     198  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     199      getAtom(AtomById(atomicid));
    195200  if (publisher == dynamic_cast<const Observable*>(_atom)){
    196201    // notofication from atom
     
    212217      case AtomObservable::BondsAdded:
    213218      {
    214         const atom *_atom = World::getInstance().getAtom(AtomById(atomicid));
     219        const atom * const _atom = const_cast<const World &>(World::getInstance()).
     220            getAtom(AtomById(atomicid));
    215221        if (_atom != NULL) {
    216222          // make sure position is up-to-date
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.cpp

    r1259df rf01769  
    9191    case left:
    9292    {
    93       const atom *_rightatom = World::getInstance().getAtom(AtomById(rightatomId));
     93      const atom * const _rightatom = const_cast<const World &>(World::getInstance()).
     94          getAtom(AtomById(rightatomId));
    9495      if (_rightatom->getType() != NULL) {
    9596        elementno = _rightatom->getType()->getAtomicNumber();
     
    101102    case right:
    102103    {
    103       const atom *_leftatom = World::getInstance().getAtom(AtomById(leftatomId));
     104      const atom * const _leftatom = const_cast<const World &>(World::getInstance()).
     105          getAtom(AtomById(leftatomId));
    104106      if (_leftatom->getType() != NULL) {
    105107        elementno = _leftatom->getType()->getAtomicNumber();
     
    138140  // from the AtomObservable itself
    139141  if (leftobservable_enabled) {
    140     const atom *_leftatom = World::getInstance().getAtom(AtomById(leftatomId));
     142    const atom * const _leftatom = const_cast<const World &>(World::getInstance()).
     143        getAtom(AtomById(leftatomId));
    141144    if (_leftatom != NULL) {
    142145      _leftatom->signOff(this);
     
    152155  // from the AtomObservable itself
    153156  if (rightobservable_enabled) {
    154     const atom *_rightatom = World::getInstance().getAtom(AtomById(rightatomId));
     157    const atom * const _rightatom = const_cast<const World &>(World::getInstance()).
     158        getAtom(AtomById(rightatomId));
    155159    if (_rightatom != NULL) {
    156160      _rightatom->signOff(this);
     
    172176  // from the AtomObservable itself
    173177  if (leftobservable_enabled) {
    174     const atom *_leftatom = World::getInstance().getAtom(AtomById(leftatomId));
     178    const atom * const _leftatom = const_cast<const World &>(World::getInstance()).
     179        getAtom(AtomById(leftatomId));
    175180    if (_leftatom != NULL) {
    176181      _leftatom->signOff(this, AtomObservable::PositionChanged);
     
    182187  }
    183188  if (rightobservable_enabled) {
    184     const atom *_rightatom = World::getInstance().getAtom(AtomById(rightatomId));
     189    const atom * const _rightatom = const_cast<const World &>(World::getInstance()).
     190        getAtom(AtomById(rightatomId));
    185191    if (_rightatom != NULL) {
    186192      _rightatom->signOff(this, AtomObservable::PositionChanged);
     
    349355  Vector Position;
    350356  Vector OtherPosition;
    351   const atom *_leftatom = World::getInstance().getAtom(AtomById(leftatomId));
     357  const atom * const _leftatom = const_cast<const World &>(World::getInstance()).
     358      getAtom(AtomById(leftatomId));
    352359  Vector LeftPos = _leftatom->getPosition();
    353   const atom *_rightatom = World::getInstance().getAtom(AtomById(rightatomId));
     360  const atom * const _rightatom = const_cast<const World &>(World::getInstance()).
     361      getAtom(AtomById(rightatomId));
    354362  Vector RightPos = _rightatom->getPosition();
    355363  switch (BondSide) {
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp

    r1259df rf01769  
    567567
    568568  // add all bonds
    569   const atom *Walker = World::getInstance().getAtom(AtomById(_id));
     569  const atom * const Walker = const_cast<const World &>(World::getInstance()).
     570      getAtom(AtomById(_id));
    570571  if (Walker != NULL)
    571572    addAtomBonds(Walker);
  • src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp

    r1259df rf01769  
    143143{
    144144   LOG(3, "INFO: GLMoleculeObject_molecule - atom " << no << " has been clicked.");
    145    const atom *Walker = World::getInstance().getAtom(AtomById(no));
     145   const atom * const Walker = const_cast<const World &>(World::getInstance()).
     146       getAtom(AtomById(no));
    146147   if (selectionMode == SelectAtom){
    147148     if (!World::getInstance().isSelected(Walker))
     
    184185  LOG(3, "INFO: GLWorldScene: Received signal atomInserted for atom "+toString(_id)+".");
    185186  // find associated molecule
    186   const atom *_atom = World::getInstance().getAtom(AtomById(_id));
     187  const atom * const _atom = const_cast<const World &>(World::getInstance()).
     188      getAtom(AtomById(_id));
    187189  if (_atom != NULL) {
    188190    const moleculeId_t molid = _atom->getMolecule()->getId();
  • src/UIElements/Views/Qt4/QtFragmentList.cpp

    r1259df rf01769  
    133133          indexiter != (*keyiter)->end();
    134134          ++indexiter) {
    135         const atom *_atom = World::getInstance().getAtom(AtomById(*indexiter));
     135        const atom * const _atom = const_cast<const World &>(World::getInstance()).
     136            getAtom(AtomById(*indexiter));
    136137        if (_atom != NULL)
    137138          formula.addElements(_atom->getElementNo(), 1);
  • src/molecule.cpp

    r1259df rf01769  
    242242    NOTIFY(AtomRemoved);
    243243  }
    244   const_iterator iter = find(key);
    245   if (iter != end()){
     244  const_iterator iter = const_cast<const molecule &>(*this).find(key);
     245  if (iter != const_cast<const molecule &>(*this).end()){
    246246    ++iter;
    247247    atomIds.erase( key->getId() );
     
    285285}
    286286
    287 World::AtomComposite molecule::getAtomSet() const
     287World::AtomComposite molecule::getAtomSet()
    288288{
    289289  World::AtomComposite vector_of_atoms;
    290290  for (molecule::iterator iter = begin(); iter != end(); ++iter)
     291    vector_of_atoms.push_back(*iter);
     292  return vector_of_atoms;
     293}
     294
     295World::ConstAtomComposite molecule::getAtomSet() const
     296{
     297  World::ConstAtomComposite vector_of_atoms;
     298  for (molecule::const_iterator iter = begin(); iter != end(); ++iter)
    291299    vector_of_atoms.push_back(*iter);
    292300  return vector_of_atoms;
     
    609617 * \return copy of molecule
    610618 */
    611 molecule *molecule::CopyMolecule(const Vector &offset) const
     619molecule *molecule::CopyMolecule(const Vector &offset)
    612620{
    613621  molecule *copy = World::getInstance().createMolecule();
     
    622630
    623631  // copy all bonds
    624   for(const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
     632  for(const_iterator AtomRunner = const_cast<const molecule &>(*this).begin();
     633      AtomRunner != const_cast<const molecule &>(*this).end();
     634      ++AtomRunner) {
    625635    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
    626636    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
     
    676686 * @param three vectors forming the matrix that defines the shape of the parallelpiped
    677687 */
    678 molecule* molecule::CopyMoleculeFromSubRegion(const Shape &region) const {
     688molecule* molecule::CopyMoleculeFromSubRegion(const Shape &region) {
    679689  molecule *copy = World::getInstance().createMolecule();
    680690
     
    689699
    690700  // copy all bonds
    691   for(molecule::const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
     701  for(molecule::const_iterator AtomRunner = const_cast<const molecule &>(*this).begin();
     702      AtomRunner != const_cast<const molecule &>(*this).end();
     703      ++AtomRunner) {
    692704    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
    693705    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
     
    821833 * @return true - is member, false - is not
    822834 */
    823 bool molecule::isInMolecule(const atom * const _atom)
     835bool molecule::isInMolecule(const atom * const _atom) const
    824836{
    825837  ASSERT(_atom->getMolecule() == this,
     
    934946 * \todo make this with a good sort O(n), not O(n^2)
    935947 */
    936 int * molecule::GetFatherSonAtomicMap(molecule *OtherMolecule)
     948int * molecule::GetFatherSonAtomicMap(const molecule * const OtherMolecule)
    937949{
    938950  LOG(3, "Begin of GetFatherAtomicMap.");
     
    947959    std::stringstream output;
    948960    output << "Map is ";
    949     for (molecule::const_iterator iter = begin(); iter != end(); ++iter) {
     961    for (molecule::const_iterator iter = const_cast<const molecule &>(*this).begin();
     962        iter != const_cast<const molecule &>(*this).end();
     963        ++iter) {
    950964      if ((*iter)->getFather() == NULL) {
    951965        AtomicMap[(*iter)->getNr()] = -2;
  • src/molecule.hpp

    r1259df rf01769  
    141141  virtual bool changeId(atomId_t newId);
    142142
    143   World::AtomComposite getAtomSet() const;
     143  World::AtomComposite getAtomSet();
     144  World::ConstAtomComposite getAtomSet() const;
    144145
    145146  // simply pass on all functions to AtomIdSet
     
    287288  atom * FindAtom(int Nr) const;
    288289  atom * AskAtom(std::string text);
    289   bool isInMolecule(const atom * const _atom);
     290  bool isInMolecule(const atom * const _atom) const;
    290291
    291292  /// Count and change present atoms' coordination.
     
    318319  bond::ptr CopyBond(atom *left, atom *right, bond::ptr CopyBond);
    319320
    320   molecule *CopyMolecule(const Vector &offset = zeroVec) const;
    321   molecule* CopyMoleculeFromSubRegion(const Shape&) const;
     321  molecule *CopyMolecule(const Vector &offset = zeroVec);
     322  molecule* CopyMoleculeFromSubRegion(const Shape&);
    322323
    323324  /// Fragment molecule by two different approaches:
     
    326327
    327328  // Recognize doubly appearing molecules in a list of them
    328   int * GetFatherSonAtomicMap(molecule *OtherMolecule);
     329  int * GetFatherSonAtomicMap(const molecule * const OtherMolecule);
    329330  bool FillBondStructureFromReference(const molecule * const reference, ListOfLocalAtoms_t &ListOfLocalAtoms, bool FreeList = false);
    330331  bool FillListOfLocalAtoms(ListOfLocalAtoms_t &ListOfLocalAtoms, const int GlobalAtomCount);
  • src/molecule_geometry.cpp

    r1259df rf01769  
    110110void molecule::CenterEdge()
    111111{
    112   const_iterator iter = begin();
    113   if (iter != end()) {   //list not empty?
     112  const_iterator iter = const_cast<const molecule &>(*this).begin();
     113  if (iter != const_cast<const molecule &>(*this).end()) {   //list not empty?
    114114    Vector min = (*begin())->getPosition();
    115     for (;iter != end(); ++iter) { // continue with second if present
     115    for (;iter != const_cast<const molecule &>(*this).end(); ++iter) { // continue with second if present
    116116      const Vector &currentPos = (*iter)->getPosition();
    117117      for (size_t i=0;i<NDIM;++i)
     
    130130{
    131131  int Num = 0;
    132   const_iterator iter = begin();  // start at first in list
     132  const_iterator iter = const_cast<const molecule &>(*this).begin();  // start at first in list
    133133  Vector Center;
    134134
    135135  Center.Zero();
    136   if (iter != end()) {   //list not empty?
    137     for (; iter != end(); ++iter) {  // continue with second if present
     136  if (iter != const_cast<const molecule &>(*this).end()) {   //list not empty?
     137    for (; iter != const_cast<const molecule &>(*this).end(); ++iter) {  // continue with second if present
    138138      Num++;
    139139      Center += (*iter)->getPosition();
     
    353353    Center.Zero();
    354354    flag = true;
    355     for (const_iterator iter = begin(); iter != end(); ++iter) {
     355    for (const_iterator iter = const_cast<const molecule &>(*this).begin();
     356        iter != const_cast<const molecule &>(*this).end();
     357        ++iter) {
    356358      if ((treatment == IncludeHydrogen) || ((*iter)->getType()->getAtomicNumber() != 1)) {
    357359        Testvector = inversematrix * (*iter)->getPosition();
  • src/moleculelist.cpp

    r1259df rf01769  
    129129  //LOG(0, "Comparing fragment no. " << *(molecule **)a << " to " << *(molecule **)b << ".");
    130130  // Yes those types are awkward... but check it for yourself it checks out this way
    131   molecule *const *mol1_ptr= static_cast<molecule *const *>(a);
    132   molecule *mol1 = *mol1_ptr;
    133   molecule *const *mol2_ptr= static_cast<molecule *const *>(b);
    134   molecule *mol2 = *mol2_ptr;
     131  const molecule *const *mol1_ptr= static_cast<molecule *const *>(a);
     132  const molecule *mol1 = *mol1_ptr;
     133  const molecule *const *mol2_ptr= static_cast<molecule *const *>(b);
     134  const molecule *mol2 = *mol2_ptr;
    135135  if (mol1->getAtomCount() < mol2->getAtomCount()) {
    136136    return -1;
     
    212212  else {
    213213    Origin.Zero();
    214     for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) {
     214    for (MoleculeList::const_iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) {
    215215      // count atoms per element and determine size of bounding sphere
    216216      size=0.;
    217       for (molecule::const_iterator iter = (*ListRunner)->begin(); iter != (*ListRunner)->end(); ++iter) {
     217      const molecule *MolRunner = *ListRunner;
     218      for (molecule::const_iterator iter = MolRunner->begin(); iter != MolRunner->end(); ++iter) {
    218219        counts[(*iter)->getType()->getAtomicNumber()]++;
    219220        if ((*iter)->DistanceSquared(Origin) > size)
     
    221222      }
    222223      // output Index, Name, number of atoms, chemical formula
    223       (*out) << ((*ListRunner)->ActiveFlag ? "*" : " ") << (*ListRunner)->IndexNr << "\t" << (*ListRunner)->name << "\t\t" << (*ListRunner)->getAtomCount() << "\t";
     224      (*out) << (MolRunner->ActiveFlag ? "*" : " ") << MolRunner->IndexNr << "\t" << MolRunner->name << "\t\t" << MolRunner->getAtomCount() << "\t";
    224225
    225226      std::map<atomicNumber_t,unsigned int>::reverse_iterator iter;
     
    229230      }
    230231      // Center and size
    231       Vector Center = (*ListRunner)->DetermineCenterOfAll();
     232      Vector Center = MolRunner->DetermineCenterOfAll();
    232233      (*out) << "\t" << Center << "\t" << sqrt(size) << endl;
    233234    }
     
    407408        correction[k][j] = 0.;
    408409    // 2. take every hydrogen that is a saturated one
    409     for (molecule::const_iterator iter = (*ListRunner)->begin(); iter != (*ListRunner)->end(); ++iter) {
     410    const molecule *MolRunner = *ListRunner;
     411    for (molecule::const_iterator iter = MolRunner->begin(); iter != MolRunner->end(); ++iter) {
    410412      //LOG(1, "(*iter): " << *(*iter) << " with first bond " << *((*iter)->getListOfBonds().begin()) << ".");
    411413      if (((*iter)->getType()->getAtomicNumber() == 1) && (((*iter)->getFather() == NULL)
    412414          || ((*iter)->getFather()->getType()->getAtomicNumber() != 1))) { // if it's a hydrogen
    413         for (molecule::const_iterator runner = (*ListRunner)->begin(); runner != (*ListRunner)->end(); ++runner) {
     415        for (molecule::const_iterator runner = MolRunner->begin(); runner != MolRunner->end(); ++runner) {
    414416          //LOG(2, "Runner: " << *(*runner) << " with first bond " << *((*iter)->getListOfBonds().begin()) << ".");
    415417          // 3. take every other hydrogen that is the not the first and not bound to same bonding partner
     
    420422            distance = (*runner)->distance(*(*iter));
    421423            //std::stringstream output;
    422             //output << "Fragment " << (*ListRunner)->name << ": " << *(*runner) << "<= " << distance << "=>" << *(*iter) << ":";
     424            //output << "Fragment " << MolRunner->name << ": " << *(*runner) << "<= " << distance << "=>" << *(*iter) << ":";
    423425            for (int k = 0; k < a; k++) {
    424426              for (int j = 0; j < b; j++) {
     
    447449    line.append("/");
    448450    line += FRAGMENTPREFIX;
    449     FragmentNumber = FixedDigitNumber(ListOfMolecules.size(), (*ListRunner)->IndexNr);
     451    FragmentNumber = FixedDigitNumber(ListOfMolecules.size(), MolRunner->IndexNr);
    450452    line += FragmentNumber;
    451453    delete[] (FragmentNumber);
     
    506508    for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) {
    507509      periodentafel::const_iterator elemIter;
     510      const molecule *MolRunner = *ListRunner;
    508511      for(elemIter=periode->begin();elemIter!=periode->end();++elemIter){
    509         if ((*ListRunner)->hasElement((*elemIter).first)) { // if this element got atoms
    510           for(molecule::iterator atomIter = (*ListRunner)->begin(); atomIter !=(*ListRunner)->end();++atomIter){
     512        if (MolRunner->hasElement((*elemIter).first)) { // if this element got atoms
     513          for(molecule::const_iterator atomIter = MolRunner->begin(); atomIter !=MolRunner->end();++atomIter){
    511514            if ((*atomIter)->getType()->getAtomicNumber() == (*elemIter).first) {
    512515              if (((*atomIter)->GetTrueFather() != NULL) && ((*atomIter)->GetTrueFather() != (*atomIter))) {// if there is a rea
     
    557560  for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) {
    558561    // correct periodic
     562    const molecule *MolRunner = *ListRunner;
    559563    if ((*ListRunner)->ScanForPeriodicCorrection()) {
    560564      count++;
     
    565569      std::stringstream output;
    566570      output << "Contained atoms: ";
    567       for (molecule::const_iterator iter = (*ListRunner)->begin(); iter != (*ListRunner)->end(); ++iter) {
     571      for (molecule::const_iterator iter = MolRunner->begin(); iter != MolRunner->end(); ++iter) {
    568572        output << (*iter)->getName() << " ";
    569573      }
     
    573577    {
    574578//      // center on edge
    575 //      (*ListRunner)->CenterEdge(&BoxDimension);
     579//      MolRunner->CenterEdge(&BoxDimension);
    576580//      for (int k = 0; k < NDIM; k++)  // if one edge is to small, set at least to 1 angstroem
    577581//        if (BoxDimension[k] < 1.)
     
    588592//      }
    589593//      World::getInstance().setDomain(cell_size);
    590 //      (*ListRunner)->Translate(&BoxDimension);
     594//      MolRunner->Translate(&BoxDimension);
    591595
    592596      // output file
  • src/unittests/AtomIdSetUnitTest.cpp

    r1259df rf01769  
    100100  // const iterators
    101101  {
    102     AtomIdSet::const_iterator beg_iter = atoms.begin();
    103     AtomIdSet::const_iterator end_iter = atoms.end();
     102    AtomIdSet::const_iterator beg_iter = const_cast<const AtomIdSet &>(atoms).begin();
     103    AtomIdSet::const_iterator end_iter = const_cast<const AtomIdSet &>(atoms).end();
    104104    CPPUNIT_ASSERT( beg_iter == end_iter );
    105105  }
     
    110110
    111111  {
    112     AtomIdSet::const_iterator beg_iter = atoms.begin();
    113     AtomIdSet::const_iterator end_iter = atoms.end();
     112    AtomIdSet::const_iterator beg_iter = const_cast<const AtomIdSet &>(atoms).begin();
     113    AtomIdSet::const_iterator end_iter = const_cast<const AtomIdSet &>(atoms).end();
    114114    CPPUNIT_ASSERT( beg_iter != end_iter );
    115115    ++beg_iter;
     
    137137  // search for atom
    138138  atoms.insert(atomVector[0]);
    139   CPPUNIT_ASSERT( atoms.find(atomVector[0]) == atoms.begin() );
    140   CPPUNIT_ASSERT( atoms.find(atomVector[0]) != atoms.end() );
     139  CPPUNIT_ASSERT( atoms.find(atomVector[0]) == const_cast<const AtomIdSet &>(atoms).begin() );
     140  CPPUNIT_ASSERT( atoms.find(atomVector[0]) != const_cast<const AtomIdSet &>(atoms).end() );
    141141  atoms.erase(atomVector[0]);
    142142
    143143  // search for key
    144144  atoms.insert(atomVector[0]->getId());
    145   CPPUNIT_ASSERT( atoms.find(atomVector[0]->getId()) == atoms.begin() );
    146   CPPUNIT_ASSERT( atoms.find(atomVector[0]->getId()) != atoms.end() );
     145  CPPUNIT_ASSERT( atoms.find(atomVector[0]->getId()) == const_cast<const AtomIdSet &>(atoms).begin() );
     146  CPPUNIT_ASSERT( atoms.find(atomVector[0]->getId()) != const_cast<const AtomIdSet &>(atoms).end() );
    147147  atoms.erase(atomVector[0]->getId());
    148148}
Note: See TracChangeset for help on using the changeset viewer.