void KalziumGLWidget::drawGenericBond()
{
- const double pi = 3.1415927;
int slices;
static int lastDetail = -1;
if( 0 == m_bondDisplayList || lastDetail != m_detail)
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();
void KalziumGLWidget::slotSetMolecule( OpenBabel::OBMol* molecule )
{
+ if ( !molecule ) return;
+
m_molecule = molecule;
// translate the molecule so that center has coords 0,0,0
}
m_bondsRadius = m_molMinBondLength / 8;
+
+ updateGL();
}
void KalziumGLWidget::slotSetDetail( int detail )