void drawEdges(CGAL::Three::Viewer_interface* viewer) const { vaos[Lines]->bind(); program = getShaderProgram(PROGRAM_NO_SELECTION); attribBuffers(viewer, PROGRAM_NO_SELECTION); program->bind(); program->setAttributeValue("colors", QColor(Qt::black)); viewer->glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(edges->size() / 3)); program->release(); vaos[Lines]->release(); }
//Displays the item void draw(CGAL::Three::Viewer_interface* viewer) const { vaos[Facets]->bind(); program = getShaderProgram(PROGRAM_WITH_LIGHT); attribBuffers(viewer, PROGRAM_WITH_LIGHT); program->bind(); // positions_poly is also used for the faces in the cut plane // and changes when the cut plane is moved viewer->glDrawArrays(GL_TRIANGLES, 0, static_cast<GLsizei>(vertices->size() / 3)); program->release(); vaos[Facets]->release(); }
// Wireframe OpenGL drawing void Scene_polylines_item::drawEdges(CGAL::Three::Viewer_interface* viewer) const { if(!are_buffers_filled) { computeElements(); initializeBuffers(viewer); } vaos[Edges]->bind(); attribBuffers(viewer, PROGRAM_NO_SELECTION); QOpenGLShaderProgram *program = getShaderProgram(PROGRAM_NO_SELECTION); program->bind(); program->setAttributeValue("colors", this->color()); viewer->glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(nb_lines/4)); program->release(); vaos[Edges]->release(); if(d->draw_extremities) { Scene_group_item::drawEdges(viewer); } }