Changeset d53902 for src/UIElements/Views
- Timestamp:
- Apr 6, 2012, 11:57:22 AM (13 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:
- 5a2a06
- Parents:
- fbb1f1
- git-author:
- Michael Ankele <ankele@…> (03/30/12 10:35:47)
- git-committer:
- Frederik Heber <heber@…> (04/06/12 11:57:22)
- Location:
- src/UIElements/Views/Qt4/Qt3D
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject.cpp
rfbb1f1 rd53902 128 128 m_mesh->draw(painter); 129 129 130 QVector3DArray array; 131 qreal radius = 0.3f; 132 array.append(-radius, -radius, -radius); array.append( radius, -radius, -radius); 133 array.append( radius, -radius, -radius); array.append( radius, radius, -radius); 134 array.append( radius, radius, -radius); array.append(-radius, radius, -radius); 135 array.append(-radius, radius, -radius); array.append(-radius, -radius, -radius); 136 137 array.append(-radius, -radius, radius); array.append( radius, -radius, radius); 138 array.append( radius, -radius, radius); array.append( radius, radius, radius); 139 array.append( radius, radius, radius); array.append(-radius, radius, radius); 140 array.append(-radius, radius, radius); array.append(-radius, -radius, radius); 141 142 array.append(-radius, -radius, -radius); array.append(-radius, -radius, radius); 143 array.append( radius, -radius, -radius); array.append( radius, -radius, radius); 144 array.append(-radius, radius, -radius); array.append(-radius, radius, radius); 145 array.append( radius, radius, -radius); array.append( radius, radius, radius); 146 painter->clearAttributes(); 147 painter->setVertexAttribute(QGL::Position, array); 148 painter->draw(QGL::Lines, 24); 130 if (m_selected){ 131 QVector3DArray array; 132 qreal radius = 0.3f; 133 array.append(-radius, -radius, -radius); array.append( radius, -radius, -radius); 134 array.append( radius, -radius, -radius); array.append( radius, radius, -radius); 135 array.append( radius, radius, -radius); array.append(-radius, radius, -radius); 136 array.append(-radius, radius, -radius); array.append(-radius, -radius, -radius); 137 138 array.append(-radius, -radius, radius); array.append( radius, -radius, radius); 139 array.append( radius, -radius, radius); array.append( radius, radius, radius); 140 array.append( radius, radius, radius); array.append(-radius, radius, radius); 141 array.append(-radius, radius, radius); array.append(-radius, -radius, radius); 142 143 array.append(-radius, -radius, -radius); array.append(-radius, -radius, radius); 144 array.append( radius, -radius, -radius); array.append( radius, -radius, radius); 145 array.append(-radius, radius, -radius); array.append(-radius, radius, radius); 146 array.append( radius, radius, -radius); array.append( radius, radius, radius); 147 painter->clearAttributes(); 148 painter->setVertexAttribute(QGL::Position, array); 149 painter->draw(QGL::Lines, 24); 150 } 149 151 150 152 // Turn off the user effect, if present. … … 207 209 newmaterial->setAmbientColor( QColor(0, 128, 128) ); 208 210 } else if (no == 65536) { // create selection material 209 newmaterial->setAmbientColor( QColor(2 00, 200, 200) );211 newmaterial->setAmbientColor( QColor(255, 50, 50) ); 210 212 } else { // create material for element 211 213 periodentafel *periode = World::getInstance().getPeriode(); -
src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject.hpp
rfbb1f1 rd53902 72 72 void setObjectId(int id) { m_objectId = id; } 73 73 74 bool selected() const { return m_selected; } 75 void setSelected(bool value) { m_selected = value; } 76 74 77 void initialize(QGLView *view, QGLPainter *painter); 75 78 void draw(QGLPainter *painter); -
src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp
rfbb1f1 rd53902 57 57 atomref->signOn(this, AtomObservable::ElementChanged); 58 58 atomref->signOn(this, AtomObservable::BondsAdded); 59 World::getInstance().signOn(this, World::SelectionChanged); 59 60 60 61 // set the object's id … … 72 73 _atom->signOff(this, AtomObservable::ElementChanged); 73 74 _atom->signOff(this, AtomObservable::BondsAdded); 75 World::getInstance().signOff(this, World::SelectionChanged); 74 76 } 75 77 … … 140 142 // set the object's id 141 143 resetIndex(); 144 145 // selected? 146 setSelected(World::getInstance().isSelected(_atom)); 142 147 } 143 148 … … 147 152 void GLMoleculeObject_atom::recieveNotification(Observable *publisher, Notification_ptr notification) 148 153 { 154 if (publisher == dynamic_cast<const Observable*>(_atom)){ 155 // notofication from atom 149 156 #ifdef LOG_OBSERVER 150 observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this)151 << " received notification from atom " << _atom->getId() << " for channel "152 << notification->getChannelNo() << ".";153 #endif 154 switch (notification->getChannelNo()) {155 case AtomObservable::ElementChanged:156 resetElement();157 break;158 case AtomObservable::IndexChanged:159 resetIndex();160 break;161 case AtomObservable::PositionChanged:162 resetPosition();163 break;164 case AtomObservable::BondsAdded:157 observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this) 158 << " received notification from atom " << _atom->getId() << " for channel " 159 << notification->getChannelNo() << "."; 160 #endif 161 switch (notification->getChannelNo()) { 162 case AtomObservable::ElementChanged: 163 resetElement(); 164 break; 165 case AtomObservable::IndexChanged: 166 resetIndex(); 167 break; 168 case AtomObservable::PositionChanged: 169 resetPosition(); 170 break; 171 case AtomObservable::BondsAdded: 165 172 { 166 ASSERT(!_atom->getListOfBonds().empty(), 167 "GLMoleculeObject_atom::recieveNotification() - received BondsAdded but ListOfBonds is empty."); 168 const bond * _bond = *(_atom->getListOfBonds().rbegin()); 169 const GLMoleculeObject_bond::SideOfBond side = (_bond->leftatom == _atom) ? 170 GLMoleculeObject_bond::left : GLMoleculeObject_bond::right; 171 emit BondsInserted(_bond, side); 172 break; 173 } 174 default: 175 //setProperties(); 176 break; 173 ASSERT(!_atom->getListOfBonds().empty(), 174 "GLMoleculeObject_atom::recieveNotification() - received BondsAdded but ListOfBonds is empty."); 175 const bond * _bond = *(_atom->getListOfBonds().rbegin()); 176 const GLMoleculeObject_bond::SideOfBond side = (_bond->leftatom == _atom) ? 177 GLMoleculeObject_bond::left : GLMoleculeObject_bond::right; 178 emit BondsInserted(_bond, side); 179 break; 180 } 181 default: 182 //setProperties(); 183 break; 184 } 185 }else{ 186 // notification from world 187 #ifdef LOG_OBSERVER 188 observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this) 189 << " received notification from world for channel " 190 << notification->getChannelNo() << "."; 191 #endif 192 switch (notification->getChannelNo()) { 193 case World::SelectionChanged: 194 setSelected(World::getInstance().isSelected(_atom)); 195 break; 196 default: 197 break; 198 } 177 199 } 178 200 }
Note:
See TracChangeset
for help on using the changeset viewer.