Changeset 2ededc2
- Timestamp:
- Jan 28, 2010, 1:54:35 PM (15 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:
- 63c1f6, b8d1aeb
- Parents:
- 04b6f9
- git-author:
- Tillmann Crueger <crueger@…> (01/28/10 13:02:49)
- git-committer:
- Tillmann Crueger <crueger@…> (01/28/10 13:54:35)
- Location:
- src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Dialog.cpp
r04b6f9 r2ededc2 9 9 10 10 #include "UIElements/Dialog.hpp" 11 12 #include "vector.hpp" 11 13 12 14 using namespace std; … … 83 85 } 84 86 87 // Double Queries 88 89 Dialog::DoubleQuery::DoubleQuery(string title,double *_target) : 90 Query(title), target(_target) 91 {} 92 93 Dialog::DoubleQuery::~DoubleQuery() {}; 94 95 void Dialog::DoubleQuery::setResult() { 96 *target = tmp; 97 } 98 99 85 100 // Molecule Queries 86 101 … … 97 112 *target = tmp; 98 113 } 114 115 // Vector Queries 116 117 Dialog::VectorQuery::VectorQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check) : 118 Query(title), target(_target), cellSize(_cellSize), check(_check) 119 { 120 tmp = new Vector(); 121 } 122 123 Dialog::VectorQuery::~VectorQuery() 124 { 125 delete tmp; 126 } 127 128 void Dialog::VectorQuery::setResult() { 129 *target = *tmp; 130 } -
src/UIElements/Dialog.hpp
r04b6f9 r2ededc2 14 14 class MoleculeListClass; 15 15 class molecule; 16 class Vector; 16 17 17 18 class Dialog … … 22 23 23 24 virtual void queryInt(const char *, int *)=0; 25 virtual void queryDouble(const char*,double *)=0; 24 26 virtual void queryString(const char*, std::string *)=0; 25 27 virtual void queryMolecule(const char*,molecule**,MoleculeListClass*)=0; 28 virtual void queryVector(const char*,Vector *,const double *const,bool)=0; 26 29 27 30 virtual bool display(); … … 64 67 }; 65 68 69 class DoubleQuery : public Query { 70 public: 71 DoubleQuery(std::string title,double *_target); 72 ~DoubleQuery(); 73 virtual bool handle()=0; 74 virtual void setResult(); 75 protected: 76 double tmp; 77 private: 78 double *target; 79 }; 80 66 81 class StringQuery : public Query { 67 82 public: … … 75 90 std::string *target; 76 91 }; 92 77 93 78 94 class MoleculeQuery : public Query { … … 89 105 }; 90 106 107 class VectorQuery : public Query { 108 public: 109 VectorQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check); 110 ~VectorQuery(); 111 virtual bool handle()=0; 112 virtual void setResult(); 113 protected: 114 Vector *tmp; 115 const double *const cellSize; 116 bool check; 117 private: 118 Vector *target; 119 }; 120 91 121 void registerQuery(Query* query); 92 122 -
src/UIElements/TextDialog.cpp
r04b6f9 r2ededc2 31 31 } 32 32 33 void TextDialog::queryDouble(const char* title, double* target){ 34 registerQuery(new DoubleTextQuery(title,target)); 35 } 36 33 37 void TextDialog::queryString(const char* title, string* target){ 34 38 registerQuery(new StringTextQuery(title,target)); … … 37 41 void TextDialog::queryMolecule(const char* title, molecule **target, MoleculeListClass *molecules) { 38 42 registerQuery(new MoleculeTextQuery(title,target,molecules)); 43 } 44 45 void TextDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check) { 46 registerQuery(new VectorTextQuery(title,target,cellSize,check)); 39 47 } 40 48 … … 65 73 } 66 74 75 TextDialog::DoubleTextQuery::DoubleTextQuery(string title,double *_target) : 76 Dialog::DoubleQuery(title,_target) 77 {} 78 79 TextDialog::DoubleTextQuery::~DoubleTextQuery() {} 80 81 bool TextDialog::DoubleTextQuery::handle() { 82 Log() << Verbose(0) << getTitle(); 83 cin >> tmp; 84 return true; 85 } 86 67 87 TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, MoleculeListClass *_molecules) : 68 88 Dialog::MoleculeQuery(title,_target,_molecules) … … 84 104 return (idxOfMol!=-1); 85 105 } 106 107 TextDialog::VectorTextQuery::VectorTextQuery(std::string title, Vector *_target, const double *const _cellSize, bool _check) : 108 Dialog::VectorQuery(title,_target,_cellSize,_check) 109 {} 110 111 TextDialog::VectorTextQuery::~VectorTextQuery() 112 {} 113 114 bool TextDialog::VectorTextQuery::handle() { 115 tmp->AskPosition(cellSize,check); 116 } -
src/UIElements/TextDialog.hpp
r04b6f9 r2ededc2 21 21 virtual void queryInt(const char *, int *); 22 22 virtual void queryString(const char*, std::string *); 23 virtual void queryDouble(const char*, double*); 23 24 virtual void queryMolecule(const char*,molecule**,MoleculeListClass*); 25 virtual void queryVector(const char*,Vector *,const double * const,bool); 24 26 25 27 protected: … … 29 31 IntTextQuery(std::string title, int *_target); 30 32 ~IntTextQuery(); 33 virtual bool handle(); 34 }; 35 36 class DoubleTextQuery : public Dialog::DoubleQuery { 37 public: 38 DoubleTextQuery(std::string title, double *_target); 39 ~DoubleTextQuery(); 31 40 virtual bool handle(); 32 41 }; … … 45 54 virtual bool handle(); 46 55 }; 56 57 class VectorTextQuery : public Dialog::VectorQuery { 58 public: 59 VectorTextQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check); 60 ~VectorTextQuery(); 61 virtual bool handle(); 62 }; 47 63 }; 48 64 -
src/vector.cpp
r04b6f9 r2ededc2 663 663 }; 664 664 665 Vector& Vector::operator=(const Vector& src) { 666 CopyVector(src); 667 return *this; 668 } 669 665 670 /** Prints a 3dim vector. 666 671 * prints no end of line. … … 1076 1081 void Vector::CopyVector(const Vector * const y) 1077 1082 { 1078 for (int i=NDIM;i--;) 1079 this->x[i] = y->x[i]; 1083 // check for self assignment 1084 if(y!=this){ 1085 for (int i=NDIM;i--;) 1086 this->x[i] = y->x[i]; 1087 } 1080 1088 } 1081 1089 … … 1085 1093 void Vector::CopyVector(const Vector &y) 1086 1094 { 1087 for (int i=NDIM;i--;) 1088 this->x[i] = y.x[i]; 1095 // check for self assignment 1096 if(&y!=this) { 1097 for (int i=NDIM;i--;) 1098 this->x[i] = y.x[i]; 1099 } 1089 1100 } 1090 1101 -
src/vector.hpp
r04b6f9 r2ededc2 79 79 bool IsInParallelepiped(const Vector &offset, const double * const parallelepiped) const; 80 80 void WrapPeriodically(const double * const M, const double * const Minv); 81 82 Vector& operator=(const Vector &src); 83 81 84 }; 82 85
Note:
See TracChangeset
for help on using the changeset viewer.