Ignore:
Timestamp:
Sep 10, 2014, 7:10:27 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, 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:
55736b
Parents:
2b7375
git-author:
Frederik Heber <heber@…> (09/07/14 18:27:04)
git-committer:
Frederik Heber <heber@…> (09/10/14 19:10:27)
Message:

Removed lots of commented-out code from GLWorldView.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp

    r2b7375 r5a9f4c  
    752752  emit hoverChanged(_atom);
    753753}
    754 
    755 
    756 //#include <GL/glu.h>
    757 //#include <QtGui/qslider.h>
    758 //#include <QtGui/qevent.h>
    759 //
    760 //#include "ui_dialoglight.h"
    761 //
    762 //#include "CodePatterns/MemDebug.hpp"
    763 //
    764 //#include <iostream>
    765 //#include <boost/shared_ptr.hpp>
    766 //
    767 //#include "LinearAlgebra/Line.hpp"
    768 //#include "Atom/atom.hpp"
    769 //#include "Bond/bond.hpp"
    770 //#include "Element/element.hpp"
    771 //#include "molecule.hpp"
    772 //#include "Element/periodentafel.hpp"
    773 //#include "World.hpp"
    774 //
    775 //#if defined(Q_CC_MSVC)
    776 //#pragma warning(disable:4305) // init: truncation from const double to float
    777 //#endif
    778 //
    779 //
    780 //GLMoleculeView::GLMoleculeView(QWidget *parent) :
    781 //  QGLWidget(parent), Observer("GLMoleculeView"), X(Vector(1,0,0)), Y(Vector(0,1,0)), Z(Vector(0,0,1))
    782 //{
    783 //    xRot = yRot = zRot = 0.0;    // default object rotation
    784 //    scale = 5.;      // default object scale
    785 //    object = 0;
    786 //    LightPosition[0] = 0.0f;
    787 //    LightPosition[1] = 2.0f;
    788 //    LightPosition[2] = 2.0f;
    789 //    LightPosition[3] = 0.0f;
    790 //    LightDiffuse[0] = 0.5f;
    791 //    LightDiffuse[1] = 0.5f;
    792 //    LightDiffuse[2] = 0.5f;
    793 //    LightDiffuse[3] = 0.0f;
    794 //    LightAmbient[0] = 0.0f;
    795 //    LightAmbient[1] = 0.0f;
    796 //    LightAmbient[2] = 0.0f;
    797 //    LightAmbient[3] = 0.0f;
    798 //
    799 //    SelectionColor[0] = 0;
    800 //    SelectionColor[1] = 128;
    801 //    SelectionColor[2] = 128;
    802 //
    803 //    MultiViewEnabled = true;
    804 //
    805 //    isSignaller = false;
    806 //
    807 //    World::getInstance().signOn(this);
    808 //}
    809 //
    810 ///** Destructor of GLMoleculeView.
    811 // * Free's the CallList.
    812 // */
    813 //GLMoleculeView::~GLMoleculeView()
    814 //{
    815 //    makeCurrent();
    816 //    glDeleteLists( object, 1 );
    817 //
    818 //    World::getInstance().signOff(this);
    819 //}
    820 //
    821 ///** Paints the conents of the OpenGL window.
    822 // * Clears the GL buffers, enables lighting and depth.
    823 // * Window is either quartered (if GLMoleculeView::MultiViewEnabled) and xy, xz, yz planar views
    824 // * are added. Uses the CallList, constructed during InitializeGL().
    825 // */
    826 //void GLMoleculeView::paintGL()
    827 //{
    828 //  Vector spot;
    829 //
    830 //  glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    831 //  glShadeModel(GL_SMOOTH);            // Enable Smooth Shading
    832 //  glEnable(GL_LIGHTING);              // Enable Light One
    833 //  glEnable(GL_DEPTH_TEST);            // Enables Depth Testing
    834 //  glDepthFunc(GL_LEQUAL);              // The Type Of Depth Testing To Do
    835 //  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);      // Really Nice Perspective Calculations
    836 //
    837 //  // 3d viewport
    838 //  if (MultiViewEnabled)
    839 //    glViewport( 0, 0, (GLint)width/2, (GLint)height/2 );
    840 //  else
    841 //    glViewport( 0, 0, (GLint)width, (GLint)height );
    842 //  glMatrixMode( GL_PROJECTION );
    843 //  glLoadIdentity();
    844 //  glFrustum( -1.0, 1.0, -1.0, 1.0, 1.0, 50.0 );
    845 //  glMatrixMode( GL_MODELVIEW );
    846 //  glLoadIdentity();
    847 //
    848 //  // calculate point of view and direction
    849 //  glTranslated(position[0],position[1],position[2]);
    850 //  glTranslated(0.0, 0.0, -scale);
    851 //  glRotated(xRot, 1.0, 0.0, 0.0);
    852 //  glRotated(yRot, 0.0, 1.0, 0.0);
    853 //  glRotated(zRot, 0.0, 0.0, 1.0);
    854 //
    855 //  // render scene
    856 //  glCallList(object);
    857 //
    858 //  // enable light
    859 //  glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);       // Setup The Ambient Light
    860 //  glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);       // Setup The Diffuse Light
    861 //  glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);      // Position The Light
    862 //  glEnable(GL_LIGHT1);              // Enable Light One
    863 //
    864 //  if (MultiViewEnabled) {
    865 //    // xy view port
    866 //    glViewport( (GLint)width/2, 0, (GLint)width/2, (GLint)height/2 );
    867 //    glMatrixMode( GL_PROJECTION );
    868 //    glLoadIdentity();
    869 //    glScalef(1./scale, 1./scale,1./scale);
    870 //    glOrtho(0, width/2, 0, height/2, 0,0);
    871 //    glMatrixMode( GL_MODELVIEW );
    872 //    glLoadIdentity();
    873 //
    874 //    // calculate point of view and direction
    875 //    view = position;
    876 //    spot = Vector(0.,0.,scale);
    877 //    top = Vector(0.,1.,0.);
    878 //    gluLookAt(
    879 //        spot[0], spot[1], spot[2],
    880 //        view[0], view[1], view[2],
    881 //        top[0], top[1], top[2]);
    882 //
    883 //    // enable light
    884 //    glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);       // Setup The Ambient Light
    885 //    glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);       // Setup The Diffuse Light
    886 //    glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);      // Position The Light
    887 //    glEnable(GL_LIGHT1);              // Enable Light One
    888 //
    889 //    // render scene
    890 //    glCallList(object);
    891 //
    892 //    // xz viewport
    893 //    glViewport( 0, (GLint)height/2, (GLint)width/2, (GLint)height/2 );
    894 //    glMatrixMode( GL_PROJECTION );
    895 //    glLoadIdentity();
    896 //    glScalef(1./scale, 1./scale,1./scale);
    897 //    glOrtho(0, width/2, 0, height/2, 0,0);
    898 //    glMatrixMode( GL_MODELVIEW );
    899 //    glLoadIdentity();
    900 //
    901 //    // calculate point of view and direction
    902 //    view = position;
    903 //    spot = Vector(0.,scale,0.);
    904 //    top = Vector(1.,0.,0.);
    905 //    gluLookAt(
    906 //        spot[0], spot[1], spot[2],
    907 //        view[0], view[1], view[2],
    908 //        top[0], top[1], top[2]);
    909 //
    910 //    // enable light
    911 //    glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);       // Setup The Ambient Light
    912 //    glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);       // Setup The Diffuse Light
    913 //    glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);      // Position The Light
    914 //    glEnable(GL_LIGHT1);              // Enable Light One
    915 //
    916 //    // render scene
    917 //    glCallList(object);
    918 //
    919 //    //yz viewport
    920 //    glViewport( (GLint)width/2, (GLint)height/2, (GLint)width/2, (GLint)height/2 );
    921 //    glMatrixMode( GL_PROJECTION );
    922 //    glLoadIdentity();
    923 //    glScalef(1./scale, 1./scale,1./scale);
    924 //    glOrtho(0, width/2, 0, height/2, 0,0);
    925 //    glMatrixMode( GL_MODELVIEW );
    926 //    glLoadIdentity();
    927 //
    928 //    // calculate point of view and direction
    929 //    view= position;
    930 //    spot = Vector(scale,0.,0.);
    931 //    top = Vector(0.,1.,0.);
    932 //    gluLookAt(
    933 //        spot[0], spot[1], spot[2],
    934 //        view[0], view[1], view[2],
    935 //        top[0], top[1], top[2]);
    936 //
    937 //    // enable light
    938 //    glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);       // Setup The Ambient Light
    939 //    glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);       // Setup The Diffuse Light
    940 //    glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);      // Position The Light
    941 //    glEnable(GL_LIGHT1);              // Enable Light One
    942 //
    943 //    // render scene
    944 //    glCallList(object);
    945 //  }
    946 //  //CoordinatesBar->setText( QString ("X: %1, Y: %2, Z: %3").arg(position[0]).arg(position[1]).arg(position[2]) );
    947 //}
    948 //
    949 ////void polarView{GLdouble distance, GLdouble twist,
    950 ////   GLdouble elevation, GLdouble azimuth)
    951 ////{
    952 ////      glTranslated(0.0, 0.0, -distance);
    953 ////      glRotated(-twist, 0.0, 0.0, 1.0);
    954 ////      glRotated(-elevation, 1.0, 0.0, 0.0);
    955 ////      glRotated(azimuth, 0.0, 0.0, 1.0);
    956 ////}
    957 //
    958 ///** Make a sphere.
    959 // * \param x position
    960 // * \param radius radius
    961 // * \param color[3] color rgb values
    962 // */
    963 //void GLMoleculeView::makeSphere(const Vector &x, double radius, const unsigned char color[3])
    964 //{
    965 //  float blueMaterial[] = { 255./(float)color[0], 255./(float)color[1], 255./(float)color[2], 1 };  // need to recast from [0,255] with integers into [0,1] with floats
    966 //  GLUquadricObj* q = gluNewQuadric ();
    967 //  gluQuadricOrientation(q, GLU_OUTSIDE);
    968 //
    969 //  std::cout << "Setting sphere at " << x << " with color r"
    970 //      << (int)color[0] << ",g" << (int)color[1] << ",b" << (int)color[2] << "." << endl;
    971 //
    972 //  glPushMatrix();
    973 //  glTranslatef( x[0], x[1], x[2]);
    974 ////  glRotatef( xRot, 1.0, 0.0, 0.0);
    975 ////  glRotatef( yRot, 0.0, 1.0, 0.0);
    976 ////  glRotatef( zRot, 0.0, 0.0, 1.0);
    977 //  glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blueMaterial);
    978 //  gluSphere (q, (GLdouble)radius, 10, 10);
    979 //  glPopMatrix();
    980 //}
    981 //
    982 ///** Make a cylinder.
    983 // * \param x origin
    984 // * \param y direction
    985 // * \param radius thickness
    986 // * \param height length
    987 // * \color[3] color rgb values
    988 // */
    989 //void GLMoleculeView::makeCylinder(const Vector &x, const Vector &y, double radius, double height, const unsigned char color[3])
    990 //{
    991 //  float blueMaterial[] = { 255./(float)color[0], 255./(float)color[1], 255./(float)color[2], 1 };
    992 //  GLUquadricObj* q = gluNewQuadric ();
    993 //  gluQuadricOrientation(q, GLU_OUTSIDE);
    994 //  Vector a,b;
    995 //  Vector OtherAxis;
    996 //  double alpha;
    997 //  a = x - y;
    998 //  // construct rotation axis
    999 //  b = a;
    1000 //  b.VectorProduct(Z);
    1001 //  Line axis(zeroVec, b);
    1002 //  // calculate rotation angle
    1003 //  alpha = a.Angle(Z);
    1004 //  // construct other axis to check right-hand rule
    1005 //  OtherAxis = b;
    1006 //  OtherAxis.VectorProduct(Z);
    1007 //  // assure right-hand rule for the rotation
    1008 //  if (a.ScalarProduct(OtherAxis) < MYEPSILON)
    1009 //    alpha = M_PI-alpha;
    1010 //  // check
    1011 //  Vector a_rotated = axis.rotateVector(a, alpha);
    1012 //  std::cout << "Setting cylinder from "// << x << " to " << y
    1013 //      << a << " to " << a_rotated << " around " << b << " by " << alpha/M_PI*180. << ", respectively, "
    1014 //      << " with color r"
    1015 //      << (int)color[0] << ",g" << (int)color[1] << ",b" << (int)color[2] << "." << endl;
    1016 //
    1017 //  glPushMatrix();
    1018 //  glTranslatef( x[0], x[1], x[2]);
    1019 //  glRotatef( alpha/M_PI*180., b[0], b[1], b[2]);
    1020 //  glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blueMaterial);
    1021 //  gluCylinder (q, (GLdouble)radius, (GLdouble)radius, (GLdouble)height, 10, 10);
    1022 //  glPopMatrix();
    1023 //}
    1024 //
    1025 ///** Defines the display CallList.
    1026 // * Goes through all molecules and their atoms and adds spheres for atoms and cylinders
    1027 // * for bonds. Heeds GLMoleculeView::SelectedAtom and GLMoleculeView::SelectedMolecule.
    1028 // */
    1029 //void GLMoleculeView::initializeGL()
    1030 //{
    1031 //  double x[3] = {-1, 0, -10};
    1032 //  unsigned char white[3] = {255,255,255};
    1033 //  Vector Position, OtherPosition;
    1034 //  QSize window = size();
    1035 //  width = window.width();
    1036 //  height = window.height();
    1037 //  std::cout << "Setting width to " << width << " and height to " << height << std::endl;
    1038 //  GLfloat shininess[] = { 0.0 };
    1039 //  GLfloat specular[] = { 0, 0, 0, 1 };
    1040 //  glClearColor(0.0f, 0.0f, 0.0f, 0.0f);     // Let OpenGL clear to black
    1041 //  object = glGenLists(1);
    1042 //  glNewList( object, GL_COMPILE );
    1043 //  glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
    1044 //  glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
    1045 //
    1046 //  const std::vector<molecule*> &molecules = World::getInstance().getAllMolecules();
    1047 //
    1048 //  if (molecules.size() > 0) {
    1049 //    for (std::vector<molecule*>::const_iterator Runner = molecules.begin();
    1050 //        Runner != molecules.end();
    1051 //        Runner++) {
    1052 //      for (molecule::const_iterator atomiter = (*Runner)->begin();
    1053 //          atomiter != (*Runner)->end();
    1054 //          ++atomiter) {
    1055 //        // create atom
    1056 //        const element *ptr = (*atomiter)->getType();
    1057 //        boost::shared_ptr<Vector> MolCenter((*Runner)->DetermineCenterOfGravity());
    1058 //        Position = (*atomiter)->getPosition() - *MolCenter;
    1059 //        const unsigned char* color = NULL;
    1060 //        if ((World::getInstance().isSelected(*atomiter)) || (World::getInstance().isSelected((*Runner))))
    1061 //          color = SelectionColor;
    1062 //        else
    1063 //          color = ptr->getColor();
    1064 //        makeSphere(Position, ptr->getVanDerWaalsRadius()*0.25, color);
    1065 //
    1066 //        // create bonds
    1067 //        const BondList &bonds = (*atomiter)->getListOfBonds();
    1068 //        for (BondList::const_iterator bonditer = bonds.begin();
    1069 //            bonditer != bonds.end();
    1070 //            ++bonditer) {
    1071 //          if ((*bonditer)->leftatom->getId() == (*atomiter)->getId()) {
    1072 //            Position = (*bonditer)->leftatom->getPosition() - *MolCenter;
    1073 //            OtherPosition = (*bonditer)->rightatom->getPosition() - *MolCenter;
    1074 //            const double distance = sqrt(Position.DistanceSquared(OtherPosition))/2.;
    1075 //            const unsigned char *color1 = (*bonditer)->leftatom->getType()->getColor();
    1076 //            const unsigned char *color2 = (*bonditer)->rightatom->getType()->getColor();
    1077 //            makeCylinder(Position, OtherPosition, 0.1, distance, color1);
    1078 //            makeCylinder(OtherPosition, Position, 0.1, distance, color2);
    1079 //          }
    1080 //        }
    1081 //      }
    1082 //    }
    1083 //  } else {
    1084 //    makeSphere( x,1, white);
    1085 //  }
    1086 //  glEndList();
    1087 //}
    1088 //
    1089 //
    1090 ///* ================================== SLOTS ============================== */
    1091 //
    1092 ///** Initializes some public variables.
    1093 // * \param *ptr pointer to QLabel statusbar
    1094 // */
    1095 //void GLMoleculeView::init(QLabel *ptr)
    1096 //{
    1097 //  StatusBar = ptr;
    1098 //}
    1099 //
    1100 ///** Initializes the viewport statusbar.
    1101 // * \param *ptr pointer to QLabel for showing view pointcoordinates.
    1102 // */
    1103 //void GLMoleculeView::initCoordinates(QLabel *ptr)
    1104 //{
    1105 //  CoordinatesBar = ptr;
    1106 //}
    1107 //
    1108 ///** Slot to be called when to initialize GLMoleculeView::MolData.
    1109 // */
    1110 //void GLMoleculeView::createView( )
    1111 //{
    1112 //  initializeGL();
    1113 //  updateGL();
    1114 //}
    1115 //
    1116 ///** Slot of window is resized.
    1117 // * Copies new width and height to GLMoleculeView::width and GLMoleculeView::height and calls updateGL().
    1118 // * \param w new width of window
    1119 // * \param h new height of window
    1120 // */
    1121 //void GLMoleculeView::resizeGL( int w, int h )
    1122 //{
    1123 //  width = w;
    1124 //  height = h;
    1125 //  updateGL();
    1126 //}
    1127 //
    1128 ///** Sets x rotation angle.
    1129 // * sets GLMoleculeView::xRot and calls updateGL().
    1130 // * \param degrees new rotation angle in degrees
    1131 // */
    1132 //void GLMoleculeView::setXRotation( int degrees )
    1133 //{
    1134 //  xRot = (GLfloat)(degrees % 360);
    1135 //  updateGL();
    1136 //}
    1137 //
    1138 //
    1139 ///** Sets y rotation angle.
    1140 // * sets GLMoleculeView::yRot and calls updateGL().
    1141 // * \param degrees new rotation angle in degrees
    1142 // */
    1143 //void GLMoleculeView::setYRotation( int degrees )
    1144 //{
    1145 //  yRot = (GLfloat)(degrees % 360);
    1146 //  updateGL();
    1147 //}
    1148 //
    1149 //
    1150 ///** Sets z rotation angle.
    1151 // * sets GLMoleculeView::zRot and calls updateGL().
    1152 // * \param degrees new rotation angle in degrees
    1153 // */
    1154 //void GLMoleculeView::setZRotation( int degrees )
    1155 //{
    1156 //  zRot = (GLfloat)(degrees % 360);
    1157 //  updateGL();
    1158 //}
    1159 //
    1160 ///** Sets the scale of the scene.
    1161 // * sets GLMoleculeView::scale and calls updateGL().
    1162 // * \param distance distance divided by 100 is the new scale
    1163 // */
    1164 //void GLMoleculeView::setScale( int distance )
    1165 //{
    1166 //  scale = (GLfloat)(distance / 100.);
    1167 //  updateGL();
    1168 //}
    1169 //
    1170 ///** Update the ambient light.
    1171 // * \param light[4] light strength per axis and position (w)
    1172 // */
    1173 //void GLMoleculeView::setLightAmbient( int *light )
    1174 //{
    1175 //  for(int i=0;i<4;i++)
    1176 //    LightAmbient[i] = light[i];
    1177 //  updateGL();
    1178 //}
    1179 //
    1180 ///** Update the diffuse light.
    1181 // * \param light[4] light strength per axis and position (w)
    1182 // */
    1183 //void GLMoleculeView::setLightDiffuse( int *light )
    1184 //{
    1185 //  for(int i=0;i<4;i++)
    1186 //    LightDiffuse[i] = light[i];
    1187 //  updateGL();
    1188 //}
    1189 //
    1190 ///** Update the position of light.
    1191 // * \param light[4] light strength per axis and position (w)
    1192 // */
    1193 //void GLMoleculeView::setLightPosition( int *light )
    1194 //{
    1195 //  for(int i=0;i<4;i++)
    1196 //    LightPosition[i] = light[i];
    1197 //  updateGL();
    1198 //}
    1199 //
    1200 ///** Toggles the boolean GLMoleculeView::MultiViewEnabled.
    1201 // * Flips the boolean and calls updateGL().
    1202 // */
    1203 //void GLMoleculeView::toggleMultiViewEnabled ( )
    1204 //{
    1205 //  MultiViewEnabled = !MultiViewEnabled;
    1206 //  cout << "Setting MultiView to " << MultiViewEnabled << "." << endl;
    1207 //  updateGL();
    1208 //}
    1209 //
    1210 ///** Launch a dialog to configure the lights.
    1211 // */
    1212 //void GLMoleculeView::createDialogLight()
    1213 //{
    1214 ////  Ui_DialogLight *Lights = new Ui_DialogLight();
    1215 ////  if (Lights == NULL)
    1216 ////    return;
    1217 ////  // Set up the dynamic dialog here
    1218 ////  QLineEdit *Field = NULL;
    1219 ////  Field = Lights->findChild<QLineEdit *>("LightPositionX");
    1220 ////  if (Field) Field->setText( QString("%1").arg(LightPosition[0]) );
    1221 ////  Field = Lights->findChild<QLineEdit *>("LightPositionY");
    1222 ////  if (Field) Field->setText( QString("%1").arg(LightPosition[1]) );
    1223 ////  Field = Lights->findChild<QLineEdit *>("LightPositionZ");
    1224 ////  if (Field) Field->setText( QString("%1").arg(LightPosition[2]) );
    1225 ////  Field = Lights->findChild<QLineEdit *>("LightPositionW");
    1226 ////  if (Field) Field->setText( QString("%1").arg(LightPosition[3]) );
    1227 ////
    1228 ////  Field = Lights->findChild<QLineEdit *>("LightDiffuseX");
    1229 ////  if (Field) Field->setText( QString("%1").arg(LightDiffuse[0]) );
    1230 ////  Field = Lights->findChild<QLineEdit *>("LightDiffuseY");
    1231 ////  if (Field) Field->setText( QString("%1").arg(LightDiffuse[1]) );
    1232 ////  Field = Lights->findChild<QLineEdit *>("LightDiffuseZ");
    1233 ////  if (Field) Field->setText( QString("%1").arg(LightDiffuse[2]) );
    1234 ////  Field = Lights->findChild<QLineEdit *>("LightDiffuseW");
    1235 ////  if (Field) Field->setText( QString("%1").arg(LightDiffuse[3]) );
    1236 ////
    1237 ////  Field = Lights->findChild<QLineEdit *>("LightAmbientX");
    1238 ////  if (Field) Field->setText( QString("%1").arg(LightAmbient[0]) );
    1239 ////  Field = Lights->findChild<QLineEdit *>("LightAmbientY");
    1240 ////  if (Field) Field->setText( QString("%1").arg(LightAmbient[1]) );
    1241 ////  Field = Lights->findChild<QLineEdit *>("LightAmbientZ");
    1242 ////  if (Field) Field->setText( QString("%1").arg(LightAmbient[2]) );
    1243 ////  Field = Lights->findChild<QLineEdit *>("LightAmbientW");
    1244 ////  if (Field) Field->setText( QString("%1").arg(LightAmbient[3]) );
    1245 ////
    1246 ////  if ( Lights->exec() ) {
    1247 ////    //cout << "User accepted.\n";
    1248 ////    // The user accepted, act accordingly
    1249 ////    Field = Lights->findChild<QLineEdit *>("LightPositionX");
    1250 ////    if (Field) LightPosition[0] = Field->text().toDouble();
    1251 ////    Field = Lights->findChild<QLineEdit *>("LightPositionY");
    1252 ////    if (Field) LightPosition[1] = Field->text().toDouble();
    1253 ////    Field = Lights->findChild<QLineEdit *>("LightPositionZ");
    1254 ////    if (Field) LightPosition[2] = Field->text().toDouble();
    1255 ////    Field = Lights->findChild<QLineEdit *>("LightPositionW");
    1256 ////    if (Field) LightPosition[3] = Field->text().toDouble();
    1257 ////
    1258 ////    Field = Lights->findChild<QLineEdit *>("LightDiffuseX");
    1259 ////    if (Field) LightDiffuse[0] = Field->text().toDouble();
    1260 ////    Field = Lights->findChild<QLineEdit *>("LightDiffuseY");
    1261 ////    if (Field) LightDiffuse[1] = Field->text().toDouble();
    1262 ////    Field = Lights->findChild<QLineEdit *>("LightDiffuseZ");
    1263 ////    if (Field) LightDiffuse[2] = Field->text().toDouble();
    1264 ////    Field = Lights->findChild<QLineEdit *>("LightDiffuseW");
    1265 ////    if (Field) LightDiffuse[3] = Field->text().toDouble();
    1266 ////
    1267 ////    Field = Lights->findChild<QLineEdit *>("LightAmbientX");
    1268 ////    if (Field) LightAmbient[0] = Field->text().toDouble();
    1269 ////    Field = Lights->findChild<QLineEdit *>("LightAmbientY");
    1270 ////    if (Field) LightAmbient[1] = Field->text().toDouble();
    1271 ////    Field = Lights->findChild<QLineEdit *>("LightAmbientZ");
    1272 ////    if (Field) LightAmbient[2] = Field->text().toDouble();
    1273 ////    Field = Lights->findChild<QLineEdit *>("LightAmbientW");
    1274 ////    if (Field) LightAmbient[3] = Field->text().toDouble();
    1275 ////    updateGL();
    1276 ////  } else {
    1277 ////    //cout << "User reclined.\n";
    1278 ////  }
    1279 ////  delete(Lights);
    1280 //}
    1281 //
    1282 ///** Slot for event of pressed mouse button.
    1283 // * Switch discerns between buttons and stores position of event in GLMoleculeView::LeftButtonPos,
    1284 // * GLMoleculeView::MiddleButtonPos or GLMoleculeView::RightButtonPos.
    1285 // * \param *event structure containing information of the event
    1286 // */
    1287 //void GLMoleculeView::mousePressEvent(QMouseEvent *event)
    1288 //{
    1289 //  std::cout << "MousePressEvent." << endl;
    1290 //  QPoint *pos = NULL;
    1291 //  switch (event->button()) {  // get the right array
    1292 //    case Qt::LeftButton:
    1293 //      pos = &LeftButtonPos;
    1294 //      std::cout << "Left Button" << endl;
    1295 //      break;
    1296 //    case Qt::MidButton:
    1297 //      pos = &MiddleButtonPos;
    1298 //      std::cout << "Middle Button" << endl;
    1299 //      break;
    1300 //    case Qt::RightButton:
    1301 //      pos = &RightButtonPos;
    1302 //      std::cout << "Right Button" << endl;
    1303 //      break;
    1304 //    default:
    1305 //      break;
    1306 //  }
    1307 //  if (pos) {    // store the position
    1308 //    pos->setX(event->pos().x());
    1309 //    pos->setY(event->pos().y());
    1310 //    std::cout << "Stored src position is (" << pos->x() << "," << pos->y() << ")." << endl;
    1311 //  } else {
    1312 //    std::cout << "pos is NULL." << endl;
    1313 //  }
    1314 //}
    1315 //
    1316 ///** Slot for event of pressed mouse button.
    1317 // * Switch discerns between buttons:
    1318 // * -# Left Button: Rotates the view of the GLMoleculeView, relative to GLMoleculeView::LeftButtonPos.
    1319 // * -# Middle Button: nothing
    1320 // * -# Right Button: Shifts the selected molecule or atom, relative to GLMoleculeView::RightButtonPos.
    1321 // * \param *event structure containing information of the event
    1322 // */
    1323 //void GLMoleculeView::mouseReleaseEvent(QMouseEvent *event)
    1324 //{
    1325 //  std::cout << "MouseReleaseEvent." << endl;
    1326 //  QPoint *srcpos = NULL;
    1327 //  QPoint destpos = event->pos();
    1328 //  int Width = (MultiViewEnabled) ? width/2 : width;
    1329 //  int Height = (MultiViewEnabled) ? height/2 : height;
    1330 //  std::cout << "Received dest position is (" << destpos.x() << "," << destpos.y() << ")." << endl;
    1331 //  switch (event->button()) {  // get the right array
    1332 //    case Qt::LeftButton:  // LeftButton rotates the view
    1333 //      srcpos = &LeftButtonPos;
    1334 //      std::cout << "Left Button" << endl;
    1335 //      if (srcpos) {    // subtract the position and act
    1336 //        std::cout << "Stored src position is (" << srcpos->x() << "," << srcpos->y() << ")." << endl;
    1337 //        destpos -= *srcpos;
    1338 //        std::cout << "Resulting diff position is (" << destpos.x() << "," << destpos.y() << ")." << endl;
    1339 //        std::cout << "Width and Height are " << Width << "," << Height << "." << endl;
    1340 //
    1341 //        int pos = (int)floor((double)srcpos->x()/(double)Width) + ((int)floor((double)srcpos->y()/(double)Height))*2;
    1342 //        if ((MultiViewEnabled) && (pos != 2)) { // means four regions, and we are in a shifting one
    1343 //          // switch between three regions
    1344 //          // decide into which of the four screens the initial click has been made
    1345 //          std::cout << "Position is " << pos << "." << endl;
    1346 //          switch(pos) {
    1347 //            case 0:  // lower left = xz
    1348 //              position[0] += -destpos.y()/100.;
    1349 //              position[2] += destpos.x()/100.;
    1350 //              break;
    1351 //            case 1: // lower right = yz
    1352 //              position[1] += -destpos.y()/100.;
    1353 //              position[2] += -destpos.x()/100.;
    1354 //              break;
    1355 //            case 2:  // upper left = projected
    1356 //              std::cout << "This is impossible: Shifting in the projected region, we should rotate!." << endl;
    1357 //              break;
    1358 //            case 3:  // upper right = xy
    1359 //              position[0] += destpos.x()/100.;
    1360 //              position[1] += -destpos.y()/100.;
    1361 //              break;
    1362 //            default:
    1363 //              std::cout << "click was not in any of the four regions." << endl;
    1364 //              break;
    1365 //          }
    1366 //          updateGL();
    1367 //        } else { // we are in rotation region
    1368 //          QWidget *Parent = parentWidget();
    1369 //          QSlider *sliderX = Parent->findChild<QSlider *>("sliderX");
    1370 //          QSlider *sliderY = Parent->findChild<QSlider *>("sliderY");
    1371 //          std::cout << sliderX << " and " << sliderY << endl;
    1372 //          if (sliderX) {
    1373 //            int xrange = sliderX->maximum() - sliderX->minimum();
    1374 //            double xValue = ((destpos.x() + Width) % Width);
    1375 //            xValue *= (double)xrange/(double)Width;
    1376 //            xValue += sliderX->value();
    1377 //            int xvalue = (int) xValue % xrange;
    1378 //            std::cout << "Setting x to " << xvalue << " within range " << xrange << "." << endl;
    1379 //            setXRotation(xvalue);
    1380 //            sliderX->setValue(xvalue);
    1381 //          } else {
    1382 //            std::cout << "sliderX is NULL." << endl;
    1383 //          }
    1384 //          if (sliderY) {
    1385 //            int yrange = sliderY->maximum() - sliderY->minimum();
    1386 //            double yValue = ((destpos.y() + Height) % Height);
    1387 //            yValue *= (double)yrange/(double)Height;
    1388 //            yValue += sliderY->value();
    1389 //            int yvalue = (int) yValue % yrange;
    1390 //            std::cout << "Setting y to " << yvalue << " within range " << yrange << "." << endl;
    1391 //            setYRotation(yvalue);
    1392 //            sliderY->setValue(yvalue);
    1393 //          } else {
    1394 //            std::cout << "sliderY is NULL." << endl;
    1395 //          }
    1396 //        }
    1397 //      } else {
    1398 //        std::cout << "srcpos is NULL." << endl;
    1399 //      }
    1400 //      break;
    1401 //
    1402 //    case Qt::MidButton: // MiddleButton has no function so far
    1403 //      srcpos = &MiddleButtonPos;
    1404 //      std::cout << "Middle Button" << endl;
    1405 //      if (srcpos) {    // subtract the position and act
    1406 //        QWidget *Parent = parentWidget();
    1407 //        QSlider *sliderZ = Parent->findChild<QSlider *>("sliderZ");
    1408 //        QSlider *sliderScale = Parent->findChild<QSlider *>("sliderScale");
    1409 //        std::cout << sliderZ << " and " << sliderScale << endl;
    1410 //        std::cout << "Stored src position is (" << srcpos->x() << "," << srcpos->y() << ")." << endl;
    1411 //        destpos -= *srcpos;
    1412 //        std::cout << "Resulting diff position is (" << destpos.x() << "," << destpos.y() << ")." << endl;
    1413 //        std::cout << "Width and Height are " << Width << "," << Height << "." << endl;
    1414 //        if (sliderZ) {
    1415 //          int xrange = sliderZ->maximum() - sliderZ->minimum();
    1416 //          double xValue = ((destpos.x() + Width) % Width);
    1417 //          xValue *= (double)xrange/(double)Width;
    1418 //          xValue += sliderZ->value();
    1419 //          int xvalue = (int) xValue % xrange;
    1420 //          std::cout << "Setting x to " << xvalue << " within range " << xrange << "." << endl;
    1421 //          setZRotation(xvalue);
    1422 //          sliderZ->setValue(xvalue);
    1423 //        } else {
    1424 //          std::cout << "sliderZ is NULL." << endl;
    1425 //        }
    1426 //        if (sliderScale) {
    1427 //          int yrange = sliderScale->maximum() - sliderScale->minimum();
    1428 //          double yValue = ((destpos.y() + Height) % Height);
    1429 //          yValue *= (double)yrange/(double)Height;
    1430 //          yValue += sliderScale->value();
    1431 //          int yvalue = (int) yValue % yrange;
    1432 //          std::cout << "Setting y to " << yvalue << " within range " << yrange << "." << endl;
    1433 //          setScale(yvalue);
    1434 //          sliderScale->setValue(yvalue);
    1435 //        } else {
    1436 //          std::cout << "sliderScale is NULL." << endl;
    1437 //        }
    1438 //      } else {
    1439 //        std::cout << "srcpos is NULL." << endl;
    1440 //      }
    1441 //      break;
    1442 //      break;
    1443 //
    1444 //    case Qt::RightButton:  // RightButton moves eitstdher the selected molecule or atom
    1445 //      srcpos = &RightButtonPos;
    1446 //      std::cout << "Right Button" << endl;
    1447 //      if (srcpos) {    // subtract the position and act
    1448 //        std::cout << "Stored src position is (" << srcpos->x() << "," << srcpos->y() << ")." << endl;
    1449 //        destpos -= *srcpos;
    1450 //        std::cout << "Resulting diff position is (" << destpos.x() << "," << destpos.y() << ")." << endl;
    1451 //        std::cout << "Width and Height are " << Width << "," << Height << "." << endl;
    1452 //        if (MultiViewEnabled) {
    1453 //          // which vector to change
    1454 //          Vector SelectedPosition;
    1455 //          const std::vector<atom*> &SelectedAtoms = World::getInstance().getSelectedAtoms();
    1456 //          const std::vector<molecule*> &SelectedMolecules = World::getInstance().getSelectedMolecules();
    1457 //          if (SelectedMolecules.size()) {
    1458 //            if (SelectedAtoms.size())
    1459 //              SelectedPosition = (*SelectedAtoms.begin())->getPosition();
    1460 //            else
    1461 //              SelectedPosition = (*(*SelectedMolecules.begin())->begin())->getPosition();
    1462 //          }
    1463 //          // decide into which of the four screens the initial click has been made
    1464 //          int pos = (int)floor((double)srcpos->x()/(double)Width) + ((int)floor((double)srcpos->y()/(double)Height))*2;
    1465 //          if (!SelectedPosition.IsZero()) {
    1466 //            std::cout << "Position is " << pos << "." << endl;
    1467 //            switch(pos) {
    1468 //              case 0:  // lower left = xz
    1469 //                SelectedPosition[0] += -destpos.y()/100.;
    1470 //                SelectedPosition[2] += destpos.x()/100.;
    1471 //                break;
    1472 //              case 1: // lower right = yz
    1473 //                SelectedPosition[1] += -destpos.y()/100.;
    1474 //                SelectedPosition[2] += -destpos.x()/100.;
    1475 //                break;
    1476 //              case 2:  // upper left = projected
    1477 //                SelectedPosition[0] += destpos.x()/100.;
    1478 //                SelectedPosition[1] += destpos.y()/100.;
    1479 //                SelectedPosition[2] += destpos.y()/100.;
    1480 //                break;
    1481 //              case 3:  // upper right = xy
    1482 //                SelectedPosition[0] += destpos.x()/100.;
    1483 //                SelectedPosition[1] += -destpos.y()/100.;
    1484 //                break;
    1485 //              default:
    1486 //                std::cout << "click was not in any of the four regions." << endl;
    1487 //                break;
    1488 //            }
    1489 //          } else {
    1490 //            std::cout << "Nothing selected." << endl;
    1491 //          }
    1492 //          // update Tables
    1493 //          if (SelectedMolecules.size()) {
    1494 //            isSignaller = true;
    1495 //            if (SelectedAtoms.size())
    1496 //              emit notifyAtomChanged( (*SelectedMolecules.begin()), (*SelectedAtoms.begin()), AtomPosition);
    1497 //            else
    1498 //              emit notifyMoleculeChanged( (*SelectedMolecules.begin()), MoleculePosition );
    1499 //          }
    1500 //          // update graphic
    1501 //          initializeGL();
    1502 //          updateGL();
    1503 //        } else {
    1504 //          cout << "MultiView is not enabled." << endl;
    1505 //        }
    1506 //      } else {
    1507 //        cout << "srcpos is NULL." << endl;
    1508 //      }
    1509 //  break;
    1510 //
    1511 //    default:
    1512 //      break;
    1513 //  }
    1514 //}
    1515 //
    1516 ///* ======================================== SLOTS ================================ */
    1517 //
    1518 ///** Hear announcement of selected molecule.
    1519 // * \param *mol pointer to selected molecule
    1520 // */
    1521 //void GLMoleculeView::hearMoleculeSelected(molecule *mol)
    1522 //{
    1523 //  if (isSignaller) { // if we emitted the signal, return
    1524 //    isSignaller = false;
    1525 //    return;
    1526 //  }
    1527 //  initializeGL();
    1528 //  updateGL();
    1529 //};
    1530 //
    1531 ///** Hear announcement of selected atom.
    1532 // * \param *mol pointer to molecule containing atom
    1533 // * \param *Walker pointer to selected atom
    1534 // */
    1535 //void GLMoleculeView::hearAtomSelected(molecule *mol, atom *Walker)
    1536 //{
    1537 //  if (isSignaller) { // if we emitted the signal, return
    1538 //    isSignaller = false;
    1539 //    return;
    1540 //  }
    1541 //  initializeGL();
    1542 //  updateGL();
    1543 //};
    1544 //
    1545 ///** Hear announcement of changed molecule.
    1546 // * \param *mol pointer to changed molecule
    1547 // * \param type of change
    1548 // */
    1549 //void GLMoleculeView::hearMoleculeChanged(molecule *mol, enum ChangesinMolecule type)
    1550 //{
    1551 //  if (isSignaller) { // if we emitted the signal, return
    1552 //    isSignaller = false;
    1553 //    return;
    1554 //  }
    1555 //  initializeGL();
    1556 //  updateGL();
    1557 //};
    1558 //
    1559 ///** Hear announcement of changed atom.
    1560 // * \param *mol pointer to molecule containing atom
    1561 // * \param *Walker pointer to changed atom
    1562 // * \param type type of change
    1563 // */
    1564 //void GLMoleculeView::hearAtomChanged(molecule *mol, atom *Walker, enum ChangesinAtom type)
    1565 //{
    1566 //  if (isSignaller) { // if we emitted the signal, return
    1567 //    isSignaller = false;
    1568 //    return;
    1569 //  }
    1570 //  initializeGL();
    1571 //  updateGL();
    1572 //};
    1573 //
    1574 ///** Hear announcement of changed element.
    1575 // * \param *Runner pointer to changed element
    1576 // * \param type of change
    1577 // */
    1578 //void GLMoleculeView::hearElementChanged(element *Runner, enum ChangesinElement type)
    1579 //{
    1580 //  if (isSignaller) { // if we emitted the signal, return
    1581 //    isSignaller = false;
    1582 //    return;
    1583 //  }
    1584 //  switch(type) {
    1585 //    default:
    1586 //    case ElementName:
    1587 //    case ElementSymbol:
    1588 //    case ElementMass:
    1589 //    case ElementValence:
    1590 //    case ElementZ:
    1591 //      break;
    1592 //    case ElementCovalent:
    1593 //    case ElementVanderWaals:
    1594 //      initializeGL();
    1595 //      updateGL();
    1596 //      break;
    1597 //  }
    1598 //};
    1599 //
    1600 ///** Hear announcement of added molecule.
    1601 // * \param *mol pointer to added molecule
    1602 // */
    1603 //void GLMoleculeView::hearMoleculeAdded(molecule *mol)
    1604 //{
    1605 //  if (isSignaller) { // if we emitted the signal, return
    1606 //    isSignaller = false;
    1607 //    return;
    1608 //  }
    1609 //  initializeGL();
    1610 //  updateGL();
    1611 //};
    1612 //
    1613 ///** Hear announcement of added atom.
    1614 // * \param *mol pointer to molecule containing atom
    1615 // * \param *Walker pointer to added atom
    1616 // */
    1617 //void GLMoleculeView::hearAtomAdded(molecule *mol, atom *Walker)
    1618 //{
    1619 //  if (isSignaller) { // if we emitted the signal, return
    1620 //    isSignaller = false;
    1621 //    return;
    1622 //  }
    1623 //  initializeGL();
    1624 //  updateGL();
    1625 //};
    1626 //
    1627 ///** Hear announcement of removed molecule.
    1628 // * \param *mol pointer to removed molecule
    1629 // */
    1630 //void GLMoleculeView::hearMoleculeRemoved(molecule *mol)
    1631 //{
    1632 //  if (isSignaller) { // if we emitted the signal, return
    1633 //    isSignaller = false;
    1634 //    return;
    1635 //  }
    1636 //  initializeGL();
    1637 //  updateGL();
    1638 //};
    1639 //
    1640 ///** Hear announcement of removed atom.
    1641 // * \param *mol pointer to molecule containing atom
    1642 // * \param *Walker pointer to removed atom
    1643 // */
    1644 //void GLMoleculeView::hearAtomRemoved(molecule *mol, atom *Walker)
    1645 //{
    1646 //  if (isSignaller) { // if we emitted the signal, return
    1647 //    isSignaller = false;
    1648 //    return;
    1649 //  }
    1650 //  initializeGL();
    1651 //  updateGL();
    1652 //};
    1653 //
    1654 //void GLMoleculeView::update(Observable *publisher)
    1655 //{
    1656 //  initializeGL();
    1657 //  updateGL();
    1658 //}
    1659 //
    1660 ///**
    1661 // * This method is called when a special named change
    1662 // * of the Observable occured
    1663 // */
    1664 //void GLMoleculeView::recieveNotification(Observable *publisher, Notification_ptr notification)
    1665 //{
    1666 //  initializeGL();
    1667 //  updateGL();
    1668 //}
    1669 //
    1670 ///**
    1671 // * This method is called when the observed object is destroyed.
    1672 // */
    1673 //void GLMoleculeView::subjectKilled(Observable *publisher)
    1674 //{
    1675 //
    1676 //}
    1677 //
    1678 //
    1679 //// new stuff
    1680 //
    1681 ///** Returns the ref to the Material for element No \a from the map.
    1682 // *
    1683 // * \note We create a new one if the element is missing.
    1684 // *
    1685 // * @param no element no
    1686 // * @return ref to QGLMaterial
    1687 // */
    1688 //QGLMaterial* GLMoleculeView::getMaterial(size_t no)
    1689 //{
    1690 //  if (ElementNoMaterialMap.find(no) != ElementNoMaterialMap.end()){
    1691 //    // get present one
    1692 //
    1693 //  } else {
    1694 //    ASSERT( (no >= 0) && (no < MAX_ELEMENTS),
    1695 //        "GLMoleculeView::getMaterial() - Element no "+toString(no)+" is invalid.");
    1696 //    // create new one
    1697 //    LOG(1, "Creating new material for element "+toString(no)+".");
    1698 //    QGLMaterial *newmaterial = new QGLMaterial(this);
    1699 //    periodentafel *periode = World::getInstance().getPeriode();
    1700 //    element *desiredelement = periode->FindElement(no);
    1701 //    ASSERT(desiredelement != NULL,
    1702 //        "GLMoleculeView::getMaterial() - desired element "+toString(no)+" not present in periodentafel.");
    1703 //    const unsigned char* color = desiredelement->getColor();
    1704 //    newmaterial->setAmbientColor( QColor(color[0], color[1], color[2]) );
    1705 //    newmaterial->setSpecularColor( QColor(60, 60, 60) );
    1706 //    newmaterial->setShininess( QColor(128) );
    1707 //    ElementNoMaterialMap.insert( no, newmaterial);
    1708 //  }
    1709 //}
    1710 //
    1711 //QGLSceneNode* GLMoleculeView::getAtom(size_t no)
    1712 //{
    1713 //  // first some sensibility checks
    1714 //  ASSERT(World::getInstance().getAtom(AtomById(no)) != NULL,
    1715 //      "GLMoleculeView::getAtom() - desired atom "
    1716 //      +toString(no)+" not present in the World.");
    1717 //  ASSERT(AtomsinSceneMap.find(no) != AtomsinSceneMap.end(),
    1718 //      "GLMoleculeView::getAtom() - desired atom "
    1719 //      +toString(no)+" not present in the AtomsinSceneMap.");
    1720 //
    1721 //  return AtomsinSceneMap[no];
    1722 //}
    1723 //
    1724 //QGLSceneNode* GLMoleculeView::getBond(size_t leftno, size_t rightno)
    1725 //{
    1726 //  // first some sensibility checks
    1727 //  ASSERT(World::getInstance().getAtom(AtomById(leftno)) != NULL,
    1728 //      "GLMoleculeView::getAtom() - desired atom "
    1729 //      +toString(leftno)+" of bond not present in the World.");
    1730 //  ASSERT(World::getInstance().getAtom(AtomById(rightno)) != NULL,
    1731 //      "GLMoleculeView::getAtom() - desired atom "
    1732 //      +toString(rightno)+" of bond not present in the World.");
    1733 //  ASSERT(AtomsinSceneMap.find(leftno) != AtomsinSceneMap.end(),
    1734 //      "GLMoleculeView::getAtom() - desired atom "
    1735 //      +toString(leftno)+" of bond not present in the AtomsinSceneMap.");
    1736 //  ASSERT(AtomsinSceneMap.find(rightno) != AtomsinSceneMap.end(),
    1737 //      "GLMoleculeView::getAtom() - desired atom "
    1738 //      +toString(rightno)+" of bond not present in the AtomsinSceneMap.");
    1739 //  ASSERT(leftno == rightno,
    1740 //      "GLMoleculeView::getAtom() - bond must not be between the same atom: "
    1741 //      +toString(leftno)+" == "+toString(rightno)+".");
    1742 //
    1743 //  // then return with smaller index first
    1744 //  if (leftno > rightno)
    1745 //    return AtomsinSceneMap[ make_pair(rightno, leftno) ];
    1746 //  else
    1747 //    return AtomsinSceneMap[ make_pair(leftno, rightno) ];
    1748 //}
    1749 //
Note: See TracChangeset for help on using the changeset viewer.