diff --git a/GUI/ba3d/ba3d/view/buffer.cpp b/GUI/ba3d/ba3d/view/buffer.cpp index e6db8b1c75d7058a3e294626b1d8c34dceaf8452..119bbf5efe953cb1b273ad118be14cb4a6325338 100644 --- a/GUI/ba3d/ba3d/view/buffer.cpp +++ b/GUI/ba3d/ba3d/view/buffer.cpp @@ -52,40 +52,40 @@ Buffer3DAxes::Buffer3DAxes() { QOpenGLVertexArrayObject::Binder __(&vao3DAxes); - // vertices for drawing each line (also arrows) in the right-handed 3D coordinate axes + // vertices (xyz) and colors (rgb) for drawing each line (also arrows) in the 3D axes const GLfloat vertices3DAxes[] = { - 0.00f, 0.00f, 0.00f, - cx*1.00f, 0.00f, 0.00f, - cx*1.00f, 0.00f, 0.00f, - cx*0.95f, cz*0.05f, cz*0.05f, - cx*1.00f, 0.00f, 0.00f, - cx*0.95f, cz*0.05f, cz*-0.05f, - cx*1.00f, 0.00f, 0.00f, - cx*0.95f, cz*-0.05f, cz*0.05f, - cx*1.00f, 0.00f, 0.00f, - cx*0.95f, cz*-0.05f, cz*-0.05f, - - 0.00f, 0.00f, 0.00f, - 0.00f, cx*1.00f, 0.00f, - 0.00f, cx*1.00f, 0.00f, - cz*0.05f, cx*0.95f, cz*0.05f, - 0.00f, cx*1.00f, 0.00f, - cz*0.05f, cx*0.95f, cz*-0.05f, - 0.00f, cx*1.00f, 0.00f, - cz*-0.05f, cx*0.95f, cz*0.05f, - 0.00f, cx*1.00f, 0.00f, - cz*-0.05f, cx*0.95f, cz*-0.05f, - - 0.00f, 0.00f, 0.00f, - 0.00f, 0.00f, cz*1.00f, - 0.00f, 0.00f, cz*1.00f, - cz*0.05f, cz*0.05f, cz*0.95f, - 0.00f, 0.00f, cz*1.00f, - cz*0.05f, cz*-0.05f, cz*0.95f, - 0.00f, 0.00f, cz*1.00f, - cz*-0.05f, cz*0.05f, cz*0.95f, - 0.00f, 0.00f, cz*1.00f, - cz*-0.05f, cz*-0.05f, cz*0.95f, + 0.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, // x-axis + cx*1.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, + cx*1.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, + cx*0.95f, cz*0.05f, cz*0.05f, 1.0f, 0.0f, 0.0f, + cx*1.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, + cx*0.95f, cz*0.05f, cz*-0.05f, 1.0f, 0.0f, 0.0f, + cx*1.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, + cx*0.95f, cz*-0.05f, cz*0.05f, 1.0f, 0.0f, 0.0f, + cx*1.00f, 0.00f, 0.00f, 1.0f, 0.0f, 0.0f, + cx*0.95f, cz*-0.05f, cz*-0.05f, 1.0f, 0.0f, 0.0f, + + 0.00f, 0.00f, 0.00f, 0.0f, 1.0f, 0.0f, // y-axis + 0.00f, cx*1.00f, 0.00f, 0.0f, 1.0f, 0.0f, + 0.00f, cx*1.00f, 0.00f, 0.0f, 1.0f, 0.0f, + cz*0.05f, cx*0.95f, cz*0.05f, 0.0f, 1.0f, 0.0f, + 0.00f, cx*1.00f, 0.00f, 0.0f, 1.0f, 0.0f, + cz*0.05f, cx*0.95f, cz*-0.05f, 0.0f, 1.0f, 0.0f, + 0.00f, cx*1.00f, 0.00f, 0.0f, 1.0f, 0.0f, + cz*-0.05f, cx*0.95f, cz*0.05f, 0.0f, 1.0f, 0.0f, + 0.00f, cx*1.00f, 0.00f, 0.0f, 1.0f, 0.0f, + cz*-0.05f, cx*0.95f, cz*-0.05f, 0.0f, 1.0f, 0.0f, + + 0.00f, 0.00f, 0.00f, 0.0f, 0.0f, 1.0f, // z-axis + 0.00f, 0.00f, cz*1.00f, 0.0f, 0.0f, 1.0f, + 0.00f, 0.00f, cz*1.00f, 0.0f, 0.0f, 1.0f, + cz*0.05f, cz*0.05f, cz*0.95f, 0.0f, 0.0f, 1.0f, + 0.00f, 0.00f, cz*1.00f, 0.0f, 0.0f, 1.0f, + cz*0.05f, cz*-0.05f, cz*0.95f, 0.0f, 0.0f, 1.0f, + 0.00f, 0.00f, cz*1.00f, 0.0f, 0.0f, 1.0f, + cz*-0.05f, cz*0.05f, cz*0.95f, 0.0f, 0.0f, 1.0f, + 0.00f, 0.00f, cz*1.00f, 0.0f, 0.0f, 1.0f, + cz*-0.05f, cz*-0.05f, cz*0.95f, 0.0f, 0.0f, 1.0f, }; vertexCount3DAxes = 30; @@ -94,12 +94,16 @@ Buffer3DAxes::Buffer3DAxes() { glBuffer3DAxes.bind(); glBuffer3DAxes.allocate(vertices3DAxes, int(sizeof (vertices3DAxes))); - glEnableVertexAttribArray(0); // vertices - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), nullptr); + glEnableVertexAttribArray(0); // 3D axes vertices + glEnableVertexAttribArray(2); // 3D axes colors + + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), nullptr); + glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), reinterpret_cast<void *>(3*sizeof(float))); } void Buffer3DAxes::draw3DAxes() { QOpenGLVertexArrayObject::Binder __(&vao3DAxes); + glLineWidth(1.4f); glDrawArrays(GL_LINES, 0, vertexCount3DAxes); }