Changeset feb5d0


Ignore:
Timestamp:
Apr 17, 2013, 6:56:04 PM (12 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, 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:
0773bd
Parents:
2448f8
git-author:
Frederik Heber <heber@…> (03/19/13 13:31:32)
git-committer:
Frederik Heber <heber@…> (04/17/13 18:56:04)
Message:

Added SelectiveConstIterator, allows for constant iteration over Descriptor-constraint ranges.

Location:
src
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • src/Descriptors/AtomDescriptor.hpp

    r2448f8 rfeb5d0  
    4242  friend World::AtomComposite World::getAllAtoms(AtomDescriptor descriptor);
    4343  template <class,class,class> friend class SelectiveIterator;
     44  template <class,class,class> friend class SelectiveConstIterator;
    4445
    4546  friend AtomDescriptor operator&&(const AtomDescriptor &lhs, const AtomDescriptor &rhs);
  • src/Descriptors/DescriptorBase.hpp

    r2448f8 rfeb5d0  
    3737template<class _Target,
    3838         class _Container>
     39class SelectiveConstIterator;
     40
     41template<class _Target,
     42         class _Container>
    3943class DescriptorBase
    4044{
    4145  friend class DescriptorBase_impl<_Target,_Container>;
    4246  friend class SelectiveIterator<_Target,_Container>;
     47  friend class SelectiveConstIterator<_Target,_Container>;
    4348
    4449
  • src/Descriptors/MoleculeDescriptor.hpp

    r2448f8 rfeb5d0  
    4343  friend std::vector<molecule*> World::getAllMolecules(MoleculeDescriptor descriptor);
    4444  template <class,class,class> friend class SelectiveIterator;
     45  template <class,class,class> friend class SelectiveConstIterator;
    4546
    4647  friend MoleculeDescriptor operator&&(const MoleculeDescriptor &lhs, const MoleculeDescriptor &rhs);
  • src/Makefile.am

    r2448f8 rfeb5d0  
    9191  Descriptors/MoleculePtrDescriptor.hpp \
    9292  Descriptors/MoleculeSelectionDescriptor.hpp \
     93  Descriptors/SelectiveConstIterator.hpp \
    9394  Descriptors/SelectiveIterator.hpp
    9495 
     
    112113  Descriptors/MoleculePtrDescriptor_impl.hpp \
    113114  Descriptors/MoleculeSelectionDescriptor_impl.hpp \
     115  Descriptors/SelectiveConstIterator_impl.hpp \
    114116  Descriptors/SelectiveIterator_impl.hpp
    115117
  • src/World.cpp

    r2448f8 rfeb5d0  
    5252#include "Descriptors/MoleculeDescriptor_impl.hpp"
    5353#include "Descriptors/MoleculeSelectionDescriptor.hpp"
     54#include "Descriptors/SelectiveConstIterator_impl.hpp"
    5455#include "Descriptors/SelectiveIterator_impl.hpp"
    5556#include "Element/periodentafel.hpp"
     
    372373// external parts with observers
    373374
    374 CONSTRUCT_SELECTIVE_ITERATOR(atom*,World::AtomSet,AtomDescriptor);
     375CONSTRUCT_SELECTIVE_ITERATOR(atom*,World::AtomSet,AtomDescriptor)
     376
     377CONSTRUCT_SELECTIVE_CONST_ITERATOR(atom*,World::AtomSet,AtomDescriptor)
    375378
    376379World::AtomIterator
     
    379382}
    380383
     384World::AtomConstIterator
     385World::getAtomIter(AtomDescriptor descr) const{
     386    return AtomConstIterator(descr,atoms);
     387}
     388
    381389World::AtomIterator
    382390World::getAtomIter(){
     
    384392}
    385393
     394World::AtomConstIterator
     395World::getAtomIter() const{
     396    return AtomConstIterator(AllAtoms(),atoms);
     397}
     398
    386399World::AtomIterator
    387400World::atomEnd(){
     
    389402}
    390403
    391 CONSTRUCT_SELECTIVE_ITERATOR(molecule*,World::MoleculeSet,MoleculeDescriptor);
     404World::AtomConstIterator
     405World::atomEnd() const{
     406  return AtomConstIterator(AllAtoms(),atoms,atoms.end());
     407}
     408
     409CONSTRUCT_SELECTIVE_ITERATOR(molecule*,World::MoleculeSet,MoleculeDescriptor)
     410
     411CONSTRUCT_SELECTIVE_CONST_ITERATOR(molecule*,World::MoleculeSet,MoleculeDescriptor)
    392412
    393413World::MoleculeIterator
     
    396416}
    397417
     418World::MoleculeConstIterator
     419World::getMoleculeIter(MoleculeDescriptor descr) const{
     420    return MoleculeConstIterator(descr,molecules);
     421}
     422
    398423World::MoleculeIterator
    399424World::getMoleculeIter(){
     
    401426}
    402427
     428World::MoleculeConstIterator
     429World::getMoleculeIter() const{
     430    return MoleculeConstIterator(AllMolecules(),molecules);
     431}
     432
    403433World::MoleculeIterator
    404434World::moleculeEnd(){
    405435  return MoleculeIterator(AllMolecules(),molecules,molecules.end());
     436}
     437
     438World::MoleculeConstIterator
     439World::moleculeEnd() const{
     440  return MoleculeConstIterator(AllMolecules(),molecules,molecules.end());
    406441}
    407442
  • src/World.hpp

    r2448f8 rfeb5d0  
    2525#include "Actions/ActionTrait.hpp"
    2626#include "Atom/AtomSet.hpp"
     27#include "Descriptors/SelectiveConstIterator.hpp"
    2728#include "Descriptors/SelectiveIterator.hpp"
    2829#include "CodePatterns/Observer/Observable.hpp"
     
    317318
    318319  typedef SelectiveIterator<atom*,AtomSet,AtomDescriptor>       AtomIterator;
     320  typedef SelectiveConstIterator<atom*,AtomSet,AtomDescriptor>       AtomConstIterator;
    319321
    320322  /**
     
    324326   */
    325327  AtomIterator getAtomIter(AtomDescriptor descr);
     328  AtomConstIterator getAtomIter(AtomDescriptor descr) const;
    326329  AtomIterator getAtomIter();
     330  AtomConstIterator getAtomIter() const;
    327331
    328332  AtomIterator atomEnd();
     333  AtomConstIterator atomEnd() const;
    329334
    330335  typedef SelectiveIterator<molecule*,MoleculeSet,MoleculeDescriptor>   MoleculeIterator;
     336  typedef SelectiveConstIterator<molecule*,MoleculeSet,MoleculeDescriptor>   MoleculeConstIterator;
    331337
    332338  /**
     
    336342   */
    337343  MoleculeIterator getMoleculeIter(MoleculeDescriptor descr);
     344  MoleculeConstIterator getMoleculeIter(MoleculeDescriptor descr) const;
    338345  MoleculeIterator getMoleculeIter();
     346  MoleculeConstIterator getMoleculeIter() const;
    339347
    340348  MoleculeIterator moleculeEnd();
     349  MoleculeConstIterator moleculeEnd() const;
    341350
    342351  /******** Selections of molecules and Atoms *************/
Note: See TracChangeset for help on using the changeset viewer.