From 6618b23c6520502851c42b6eb967e125f8d40e5b Mon Sep 17 00:00:00 2001 From: Carsten Niehaus Date: Fri, 16 Jun 2006 09:23:32 +0000 Subject: [PATCH] * Using M_PI and not a selfdefined pi. * Update the view after the molecule has been changed * Wouldn't it make sense to really only set m_molecule in the slotSetMolecule() and have a second slot/method in which we'd recalculate things? CCMAIL:jacob@math.jussieu.fr svn path=/trunk/KDE/kdeedu/kalzium/src/kalziumglwidget.cpp; revision=551968 --- kalzium/kalziumglwidget.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/kalzium/kalziumglwidget.cpp b/kalzium/kalziumglwidget.cpp index 754d02a..c695b5c 100644 --- a/kalzium/kalziumglwidget.cpp +++ b/kalzium/kalziumglwidget.cpp @@ -301,7 +301,6 @@ void KalziumGLWidget::drawGenericSphere() void KalziumGLWidget::drawGenericBond() { - const double pi = 3.1415927; int slices; static int lastDetail = -1; if( 0 == m_bondDisplayList || lastDetail != m_detail) @@ -324,14 +323,14 @@ void KalziumGLWidget::drawGenericBond() glBegin( GL_QUADS ); for (double i = 0.0; i < slices; i++) { - glNormal3f( cos(2*pi * i/slices), sin(2*pi * i/slices), 0.0 ); - glVertex3f( cos(2*pi * i/slices) * m_bondsRadius, sin(2*pi * i/slices) * m_bondsRadius, 1.0 ); - glNormal3f( cos(2*pi * i/slices), sin(2*pi * i/slices), 0.0 ); - glVertex3f( cos(2*pi * i/slices) * m_bondsRadius, sin(2*pi * i/slices) * m_bondsRadius, 0.0 ); - glNormal3f( cos(2*pi * (i+1)/slices), sin(2*pi * (i+1)/slices), 0.0 ); - glVertex3f( cos(2*pi * (i+1)/slices) * m_bondsRadius, sin(2*pi * (i+1)/slices) * m_bondsRadius, 0.0 ); - glNormal3f( cos(2*pi * (i+1)/slices), sin(2*pi * (i+1)/slices), 0.0 ); - glVertex3f( cos(2*pi * (i+1)/slices) * m_bondsRadius, sin(2*pi * (i+1)/slices) * m_bondsRadius, 1.0 ); + glNormal3f( cos(2*M_PI * i/slices), sin(2*M_PI * i/slices), 0.0 ); + glVertex3f( cos(2*M_PI * i/slices) * m_bondsRadius, sin(2*M_PI * i/slices) * m_bondsRadius, 1.0 ); + glNormal3f( cos(2*M_PI * i/slices), sin(2*M_PI * i/slices), 0.0 ); + glVertex3f( cos(2*M_PI * i/slices) * m_bondsRadius, sin(2*M_PI * i/slices) * m_bondsRadius, 0.0 ); + glNormal3f( cos(2*M_PI * (i+1)/slices), sin(2*M_PI * (i+1)/slices), 0.0 ); + glVertex3f( cos(2*M_PI * (i+1)/slices) * m_bondsRadius, sin(2*M_PI * (i+1)/slices) * m_bondsRadius, 0.0 ); + glNormal3f( cos(2*M_PI * (i+1)/slices), sin(2*M_PI * (i+1)/slices), 0.0 ); + glVertex3f( cos(2*M_PI * (i+1)/slices) * m_bondsRadius, sin(2*M_PI * (i+1)/slices) * m_bondsRadius, 1.0 ); } glEnd(); glEndList(); @@ -421,6 +420,8 @@ void KalziumGLWidget::drawBond( FLOAT x1, FLOAT y1, FLOAT z1, void KalziumGLWidget::slotSetMolecule( OpenBabel::OBMol* molecule ) { + if ( !molecule ) return; + m_molecule = molecule; // translate the molecule so that center has coords 0,0,0 @@ -461,6 +462,8 @@ void KalziumGLWidget::slotSetMolecule( OpenBabel::OBMol* molecule ) } m_bondsRadius = m_molMinBondLength / 8; + + updateGL(); } void KalziumGLWidget::slotSetDetail( int detail ) -- 2.47.3