/*! Draw the objects */ void GLTable::draw(void) { ////////////////////////////////////////////////// // Renders the sphere // Enable the shader program glUseProgram(_program); // this changes the camera location glm::mat4 rotated_view = rotatedViewMatrix(); glUniformMatrix4fv(_viewMatrixLocation, 1, GL_FALSE, &rotated_view[0][0]); // send the view matrix to our shader glUniformMatrix4fv(_inverseViewMatrixLocation, 1, GL_FALSE, &invRotatedViewMatrix()[0][0]); glUniformMatrix4fv(_modelMatrixLocation, 1, GL_FALSE, &_modelMatrix[0][0]); // // Bind the buffer and switch it to an active buffer glBindVertexArray(_vaoID[0]); // glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); // allows to see the primitives // Draw the triangles glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 4, 4); glDrawArrays(GL_TRIANGLE_STRIP, 8, 4); glDrawArrays(GL_TRIANGLE_STRIP, 12, 4); glDrawArrays(GL_TRIANGLE_STRIP, 16, 4); glDrawArrays(GL_TRIANGLE_STRIP, 20, 4); glDrawArrays(GL_TRIANGLE_STRIP, 24, 4); // Unbind our Vertex Array Object glBindVertexArray(0); // Unbind the shader program glUseProgram(0); }
/*! Draw the objects */ void GLColoredBox::draw(void) { // Enable the shader program glUseProgram(_program); // this changes the camera location glm::mat4 rotated_view = rotatedViewMatrix(); glUniformMatrix4fv(_viewMatrixLocation, 1, GL_FALSE, &rotated_view[0][0]); // send the view matrix to our shader glUniformMatrix4fv(_modelMatrixLocation, 1, GL_FALSE, &_modelMatrix[0][0]); // // Bind the buffer and switch it to an active buffer glBindVertexArray(_vaoID[0]); // Draw the triangles glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 4, 4); glDrawArrays(GL_TRIANGLE_STRIP, 8, 4); glDrawArrays(GL_TRIANGLE_STRIP, 12, 4); glDrawArrays(GL_TRIANGLE_STRIP, 16, 4); glDrawArrays(GL_TRIANGLE_STRIP, 20, 4); // Unbind our Vertex Array Object glBindVertexArray(0); // Unbind the shader program glUseProgram(0); }
/*! Draw the objects */ void CoordSystem::draw(void) { // Enable the shader program glUseProgram(_program); // this changes the camera location glm::mat4 rotated_view = rotatedViewMatrix(); glUniformMatrix4fv(_viewMatrixLocation, 1, GL_FALSE, &rotated_view[0][0]); // send the view matrix to our shader // Bind the buffer and switch it to an active buffer glBindVertexArray(_vaoID[0]); glLineWidth((GLfloat)3.0); // Draw the triangles glDrawArrays(GL_LINES, 0, 6); // Unbind our Vertex Array Object glBindVertexArray(0); // Unbind the shader program glUseProgram(0); }
void GLBeerPint::draw(void) { ////////////////////////////////////////////////// // Renders the sphere // Enable the shader program glUseProgram(_program); // this changes the camera location glm::mat4 rotated_view = rotatedViewMatrix(); glUniformMatrix4fv(_viewMatrixLocation, 1, GL_FALSE, &rotated_view[0][0]); // send the view matrix to our shader glUniformMatrix4fv(_inverseViewMatrixLocation, 1, GL_FALSE, &invRotatedViewMatrix()[0][0]); glUniformMatrix4fv(_modelMatrixLocation, 1, GL_FALSE, &_modelMatrix[0][0]); // // Bind the buffer and switch it to an active buffer glBindVertexArray(_vaoID[0]); //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); // allows to see the primitives // Draw the triangles glDrawArrays(GL_TRIANGLE_STRIP, 0, 42); //Top of can glDrawArrays(GL_TRIANGLE_FAN, 43, _num_vertices); ////////////////////////////////////////////////// // Renders the normal vectors if(_render_normal_vectors) { // Enable the shader program glUseProgram(_program_normals); glUniformMatrix4fv(_viewMatrixLocationN, 1, GL_FALSE, &rotated_view[0][0]); // send the view matrix to our shader glUniformMatrix4fv(_modelMatrixLocationN, 1, GL_FALSE, &_modelMatrix[0][0]); // // Bind the buffer and switch it to an active buffer glBindVertexArray(_vaoIDNormals[0]); glDrawArrays(GL_LINES, 0, _num_vertices_normals); } // Unbind our Vertex Array Object glBindVertexArray(0); // Unbind the shader program glUseProgram(0); }