summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mmscene.cpp31
1 files 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
}