void TetrahedronModel::draw(const core::visual::VisualParams* vparams) { #ifndef SOFA_NO_OPENGL if (mstate && _topology && vparams->displayFlags().getShowCollisionModels()) { if (vparams->displayFlags().getShowWireFrame()) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glEnable(GL_LIGHTING); //Enable<GL_BLEND> blending; //glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, getColor4f()); static const float emissive[4] = { 0.0f, 0.0f, 0.0f, 0.0f}; static const float specular[4] = { 1.0f, 1.0f, 1.0f, 1.0f}; glMaterialfv (GL_FRONT_AND_BACK, GL_EMISSION, emissive); glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, specular); glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 20); for (int i=0; i<size; i++) { draw(vparams,i); } glColor3f(1.0f, 1.0f, 1.0f); glDisable(GL_LIGHTING); if (vparams->displayFlags().getShowWireFrame()) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } if (getPrevious()!=NULL && vparams->displayFlags().getShowBoundingCollisionModels()) getPrevious()->draw(vparams); #endif /* SOFA_NO_OPENGL */ }
void RayModel::draw(const core::visual::VisualParams* vparams) { #ifndef SOFA_NO_OPENGL if( !vparams->isSupported(core::visual::API_OpenGL) ) return; if (vparams->displayFlags().getShowCollisionModels()) { glDisable(GL_LIGHTING); glColor4fv(getColor4f()); for (int i=0; i<size; i++) { draw(vparams,i); } } if (getPrevious()!=NULL && vparams->displayFlags().getShowBoundingCollisionModels()) getPrevious()->draw(vparams); #endif /* SOFA_NO_OPENGL */ }