worked on 3D display

some ui changes
refactoring
new icons
This commit is contained in:
2018-02-03 23:30:55 +01:00
parent e5e19779d5
commit 3b62f23c0e
21 changed files with 1054 additions and 765 deletions

View File

@@ -5,6 +5,7 @@
#include "misc/Cube.h"
#include "MV3DElement.h"
#include "misc/Shader.h"
class MV3DElementStair : public MV3DElement {
@@ -24,7 +25,54 @@ protected:
/** repaint me */
void render(const RenderSettings& rs) override {
glDisable(GL_CULL_FACE);
//glDisable(GL_CULL_FACE);
std::vector<float> vertices;
std::vector<float> normals;
const std::vector<Floorplan::StairPart> parts = stair->getParts();
const std::vector<Floorplan::Quad3> quads = Floorplan::getQuads(parts, floor);
for (int i = 0; i < (int) parts.size(); ++i) {
//const Floorplan::StairPart& part = parts[i];
const Floorplan::Quad3& quad = quads[i];
//const Floorplan::Quad3 quad = part.getQuad(floor);
const Point3 p1 = quad.p2-quad.p1;
const Point3 p2 = quad.p4-quad.p1;
Point3 n = Math::normal(p1,p2);
if (n.z < 0) {n = -n;}
vertices.insert(vertices.end(), {quad.p1.x, quad.p1.y, quad.p1.z});
vertices.insert(vertices.end(), {quad.p2.x, quad.p2.y, quad.p2.z});
vertices.insert(vertices.end(), {quad.p3.x, quad.p3.y, quad.p3.z});
vertices.insert(vertices.end(), {quad.p3.x, quad.p3.y, quad.p3.z});
vertices.insert(vertices.end(), {quad.p4.x, quad.p4.y, quad.p4.z});
vertices.insert(vertices.end(), {quad.p1.x, quad.p1.y, quad.p1.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
normals.insert(normals.end(), {n.x, n.y, n.z});
}
rs.shader->bind();
rs.shader->setModelMatrix(QMatrix4x4());
rs.shader->setColor(1.0, 0.55, 0.55);
rs.shader->setVertices(vertices.data());
rs.shader->setNormals(normals.data());
glDrawArrays(GL_TRIANGLES, 0, vertices.size()/3);
rs.shader->unsetVertices();
rs.shader->unsetNormals();
rs.shader->release();
/*
TODO_GL