summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/glitem.cpp87
-rw-r--r--src/glitem.h19
-rw-r--r--src/mmscene.cpp87
-rw-r--r--src/mmscene.h18
4 files changed, 105 insertions, 106 deletions
diff --git a/src/glitem.cpp b/src/glitem.cpp
index 016550b..6e3984c 100644
--- a/src/glitem.cpp
+++ b/src/glitem.cpp
@@ -354,93 +354,6 @@ void GLItem::drawAxes(double length)
glLineWidth(lineWidth[0]);
}
-void GLItem::createCube(const QVector3D &lbb, const QVector3D &rtf)
-{
- QVector3D n0 = QVector3D(0.0, 0.0, 1.0); //dummy normal
- QVector3D t0 = QVector3D(0.0,0.0,0.0); //dummy texture
-
- // Create all the vectors for caching
- QVector3D lbf = QVector3D(lbb.x(), lbb.y(), rtf.z());
- QVector3D rbb = QVector3D(rtf.x(), lbb.y(), lbb.z());
- QVector3D rbf = QVector3D(rtf.x(), lbb.y(), rtf.z());
- QVector3D ltb = QVector3D(lbb.x(), rtf.y(), lbb.z());
- QVector3D ltf = QVector3D(lbb.x(), rtf.y(), rtf.z());
- QVector3D rtb = QVector3D(rtf.x(), rtf.y(), lbb.z());
-
- // Bottom plane
- m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clRed));
-
- m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clRed));
-
- // Back plane
- m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clGreen));
-
- m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clGreen));
-
- // Left plane
- m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clBlue));
-
- m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clBlue));
-
- // Right plane
- m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clBlue));
-
- m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clBlue));
- m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clBlue));
-
- // Top plane
- m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clRed));
-
- m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clRed));
- m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clRed));
-
- // Front plane
- m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clGreen));
-
- m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clGreen));
- m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clGreen));
-}
-
-void GLItem::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));
-}
-
-void GLItem::drawF(double height)
-{
- m_renderer->pushMvMatrix();
-
- m_renderer->scale(QVector3D(10.0, 10.0, 10.0));
-
- createCube(QVector3D(0.0, 0.0, 0.0), QVector3D(1.0, 1.0, 1.0));
-
- m_renderer->popMvMatrix();
-}
-
void GLItem::createAxis(double length, const QVector3D & origin, const QVector3D & axis,
const QVector3D & normal, const QVector3D & texCoord,
const GLColorRgba& color)
diff --git a/src/glitem.h b/src/glitem.h
index e58f36f..268dbeb 100644
--- a/src/glitem.h
+++ b/src/glitem.h
@@ -125,25 +125,6 @@ protected:
virtual void drawAxes(double length);
/**
- * @brief createCubef Creates a cube and apends it for drawing.
- * @param lbb The left bottom back cube vector.
- * @param rtf The right top front cube vector.
- */
- virtual void createCube(const QVector3D &lbb, const QVector3D &rtf);
-
- /**
- * @brief createF Creates an 'F' with cubes.
- * @param height The height of the 'F'.
- */
- virtual void createF(double height);
-
- /**
- * @brief drawF Draws an 'F' with matrix transformations.
- * @param height The height of the 'F'.
- */
- virtual void drawF(double height);
-
- /**
* @brief createAxes Creates x, y and z axis with specified length starting for (0,0,0)
* @param length Axes length.
*/
diff --git a/src/mmscene.cpp b/src/mmscene.cpp
index b55e8ab..8b9bc86 100644
--- a/src/mmscene.cpp
+++ b/src/mmscene.cpp
@@ -67,3 +67,90 @@ void MMScene::drawTriangles()
renderer()->disableAttributeArrays();
}
+void MMScene::createCube(const QVector3D &lbb, const QVector3D &rtf)
+{
+ QVector3D n0 = QVector3D(0.0, 0.0, 1.0); //dummy normal
+ QVector3D t0 = QVector3D(0.0,0.0,0.0); //dummy texture
+
+ // Create all the vectors for caching
+ QVector3D lbf = QVector3D(lbb.x(), lbb.y(), rtf.z());
+ QVector3D rbb = QVector3D(rtf.x(), lbb.y(), lbb.z());
+ QVector3D rbf = QVector3D(rtf.x(), lbb.y(), rtf.z());
+ QVector3D ltb = QVector3D(lbb.x(), rtf.y(), lbb.z());
+ QVector3D ltf = QVector3D(lbb.x(), rtf.y(), rtf.z());
+ QVector3D rtb = QVector3D(rtf.x(), rtf.y(), lbb.z());
+
+ // Bottom plane
+ m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clRed));
+
+ m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clRed));
+
+ // Back plane
+ m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clGreen));
+
+ m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clGreen));
+
+ // Left plane
+ m_points.append(GLPoint(lbb, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clBlue));
+
+ m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clBlue));
+
+ // Right plane
+ m_points.append(GLPoint(rbb, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clBlue));
+
+ m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clBlue));
+ m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clBlue));
+
+ // Top plane
+ m_points.append(GLPoint(ltb, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clRed));
+
+ m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clRed));
+ m_points.append(GLPoint(rtb, n0, t0, GLColorRgba::clRed));
+
+ // Front plane
+ m_points.append(GLPoint(lbf, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clGreen));
+
+ m_points.append(GLPoint(rtf, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(rbf, n0, t0, GLColorRgba::clGreen));
+ m_points.append(GLPoint(ltf, n0, t0, GLColorRgba::clGreen));
+}
+
+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));
+}
+
+void MMScene::drawF(double height)
+{
+ m_renderer->pushMvMatrix();
+
+ m_renderer->scale(QVector3D(10.0, 10.0, 10.0));
+
+ createCube(QVector3D(0.0, 0.0, 0.0), QVector3D(1.0, 1.0, 1.0));
+
+ m_renderer->popMvMatrix();
+}
+
diff --git a/src/mmscene.h b/src/mmscene.h
index 8bfa74e..36cf2e8 100644
--- a/src/mmscene.h
+++ b/src/mmscene.h
@@ -37,6 +37,24 @@ protected:
*/
void drawTriangles();
+ /**
+ * @brief createCubef Creates a cube and apends it for drawing.
+ * @param lbb The left bottom back cube vector.
+ * @param rtf The right top front cube vector.
+ */
+ virtual void createCube(const QVector3D &lbb, const QVector3D &rtf);
+
+ /**
+ * @brief createF Creates an 'F' with cubes.
+ * @param height The height of the 'F'.
+ */
+ virtual void createF(double height);
+
+ /**
+ * @brief drawF Draws an 'F' with matrix transformations.
+ * @param height The height of the 'F'.
+ */
+ virtual void drawF(double height);
};