From c4d430f11ae4041f9b4ada9b4c18a6d918127d42 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 27 Oct 2015 10:40:43 +0100 Subject: Implement drawF for renderer --- src/mmscene.cpp | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/mmscene.cpp b/src/mmscene.cpp index e360d29..23ae171 100644 --- a/src/mmscene.cpp +++ b/src/mmscene.cpp @@ -132,20 +132,39 @@ void MMScene::createCube(const QVector3D &lbb, const QVector3D &rtf) void MMScene::createF(double height) { - float stdLength = height/5.0; - createCube(QVector3D(0.0, 0.0, 0.0),QVector3D(stdLength, height, stdLength)); - createCube(QVector3D(stdLength, height, 0.0),QVector3D(3.0 * stdLength, height - 1.0 * stdLength, stdLength)); - createCube(QVector3D(stdLength, height - 2.0 * stdLength, 0.0),QVector3D(2.0 * stdLength, height - 3.0 * stdLength, stdLength)); + float stdLength = height / 5.0; + createCube(QVector3D(0.0, 0.0, 0.0), QVector3D(stdLength, height, stdLength)); + createCube(QVector3D(stdLength, height, 0.0), QVector3D(3.0 * stdLength, + height - 1.0 * stdLength, stdLength)); + createCube(QVector3D(stdLength, height - 2.0 * stdLength, 0.0), + QVector3D(2.0 * stdLength, height - 3.0 * stdLength, stdLength)); } void MMScene::drawF(double height) { + m_renderer->pushMvMatrix(); // Pretransform for height + + m_renderer->scale(QVector3D(height / 5.0,height / 5.0,height / 5.0)); + + m_renderer->pushMvMatrix(); + + m_renderer->scale(QVector3D(1.0, 5.0, 1.0)); + drawTriangles(); + + m_renderer->popMvMatrix(); m_renderer->pushMvMatrix(); - m_renderer->scale(QVector3D(10.0, 10.0, 10.0)); + m_renderer->translate(QVector3D(1.0, 4.0, 0.0)); + m_renderer->scale(QVector3D(2.0, 1.0, 1.0)); + drawTriangles(); + + m_renderer->popMvMatrix(); + m_renderer->pushMvMatrix(); - createCube(QVector3D(0.0, 0.0, 0.0), QVector3D(1.0, 1.0, 1.0)); + m_renderer->translate(QVector3D(1.0, 2.0, 0.0)); + drawTriangles(); m_renderer->popMvMatrix(); + m_renderer->popMvMatrix(); // Reset height transformation } -- cgit v1.2.3-70-g09d2