Changeset c32d21
- Timestamp:
- Jan 10, 2015, 5:14:32 PM (10 years ago)
- 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:
- 7b5984
- Parents:
- 34e7fdb
- git-author:
- Frederik Heber <heber@…> (11/12/14 18:14:17)
- git-committer:
- Frederik Heber <heber@…> (01/10/15 17:14:32)
- Location:
- src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Atom/atom.cpp
r34e7fdb rc32d21 270 270 removeFromMolecule(); 271 271 mol = _mol; 272 if ((mol) && (!mol->containsAtom(this))) 272 if ((mol) && (!mol->containsAtom(this))) { 273 signOn(mol, AtomObservable::PositionChanged); 273 274 mol->insert(this); 275 } 274 276 } 275 277 … … 279 281 ASSERT(!mol->containsAtom(this), 280 282 "atom::unsetMolecule() - old molecule "+toString(mol)+" still contains us!"); 283 signOff(mol, AtomObservable::PositionChanged); 281 284 mol = NULL; 282 285 } … … 289 292 if(mol){ 290 293 if(mol->containsAtom(this)){ 294 signOff(mol, AtomObservable::PositionChanged); 291 295 mol->erase(this); 292 296 } -
src/molecule.cpp
r34e7fdb rc32d21 49 49 #include "CodePatterns/enumeration.hpp" 50 50 #include "CodePatterns/Log.hpp" 51 #include "CodePatterns/Observer/Notification.hpp" 51 52 #include "config.hpp" 52 53 #include "Descriptors/AtomIdDescriptor.hpp" … … 1004 1005 } 1005 1006 1007 void molecule::update(Observable *publisher) 1008 { 1009 ASSERT(0, "molecule::update() - did not sign on for any general updates."); 1010 } 1011 1012 void molecule::recieveNotification(Observable *publisher, Notification_ptr notification) 1013 { 1014 const atom * const _atom = dynamic_cast<atom *>(publisher); 1015 if ((_atom != NULL) && containsAtom(_atom)) { 1016 #ifdef LOG_OBSERVER 1017 observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(static_cast<Observer *>(this)) 1018 << " received notification from atom " << _atom->getId() << " for channel " 1019 << notification->getChannelNo() << "."; 1020 #endif 1021 switch (notification->getChannelNo()) { 1022 case AtomObservable::PositionChanged: 1023 { 1024 // emit others about one of our atoms moved 1025 _lastchangedatom = const_cast<atom *>(_atom); 1026 OBSERVE; 1027 NOTIFY(AtomMoved); 1028 break; 1029 } 1030 default: 1031 ASSERT( 0, "molecule::recieveNotification() - we did not sign up for channel " 1032 +toString(notification->getChannelNo())); 1033 break; 1034 } 1035 } 1036 } 1037 1038 void molecule::subjectKilled(Observable *publisher) 1039 { 1040 // do nothing, atom does it all 1041 } 1042 1043 1006 1044 // construct idpool 1007 1045 CONSTRUCT_IDPOOL(atomId_t, continuousId) -
src/molecule.hpp
r34e7fdb rc32d21 105 105 AtomRemoved, 106 106 AtomNrChanged, 107 AtomMoved, 107 108 MoleculeNameChanged, 108 109 NotificationType_MAX … … 322 323 void flipActiveFlag(); 323 324 325 virtual void update(Observable *publisher); 326 virtual void recieveNotification(Observable *publisher, Notification_ptr notification); 327 virtual void subjectKilled(Observable *publisher); 328 324 329 private: 325 330 friend const atom *detail::lastChanged<atom>();
Note:
See TracChangeset
for help on using the changeset viewer.