diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mmscene.cpp | 21 | ||||
| -rw-r--r-- | src/mmscene.h | 8 |
2 files changed, 27 insertions, 2 deletions
diff --git a/src/mmscene.cpp b/src/mmscene.cpp index caf8b2b..75c85fd 100644 --- a/src/mmscene.cpp +++ b/src/mmscene.cpp @@ -8,6 +8,7 @@ MMScene::MMScene(QQuickItem *parent) // Initialize with NULL m_cube = NULL; m_sphere = NULL; + m_disc = NULL; // Stop rotation toggleMove(); @@ -31,6 +32,12 @@ MMScene::~MMScene() delete m_sphere; m_sphere = NULL; } + + if (m_disc != NULL) + { + delete m_disc; + m_disc = NULL; + } } void MMScene::paintUnderQmlScene() @@ -48,14 +55,16 @@ void MMScene::paintOnTopOfQmlScene() //drawTriangles(); //drawF(5.0); //m_cube->draw(m_renderer); - m_sphere->draw(m_renderer); + //m_sphere->draw(m_renderer); + m_disc->draw(m_renderer); m_renderer->popMvMatrix(); } void MMScene::setupGeometry() { //createCube(QVector3D(0.0, 0.0, 0.0), QVector3D(1.0, 1.0, 1.0)); - createSphere(); + //createSphere(); + createDisc(); //createF(5.0); //m_colorArrayEnabled = true; @@ -100,6 +109,14 @@ void MMScene::createSphere() m_sphere->makeSurface(&m_points, &m_indices); } +void MMScene::createDisc() +{ + m_disc = new GLDisc(1.0, 2.0, 100); + + m_disc->setDrawingMode(GL_TRIANGLES); + m_disc->makeSurface(&m_points, &m_indices); +} + void MMScene::createF(double height) { float stdLength = height / 5.0; diff --git a/src/mmscene.h b/src/mmscene.h index 3940104..d68af98 100644 --- a/src/mmscene.h +++ b/src/mmscene.h @@ -4,6 +4,7 @@ #include "glcube.h" #include "glitem.h" #include "glsphere.h" +#include "gldisc.h" class MMScene : public GLItem { @@ -52,6 +53,11 @@ protected: void createSphere(); /** + * @brief createDisc Creates a disc and apends it for drawing. + */ + void createDisc(); + + /** * @brief createF Creates an 'F' with cubes. * @param height The height of the 'F'. */ @@ -67,6 +73,8 @@ private: GLCube *m_cube; GLSphere *m_sphere; + + GLDisc *m_disc; }; #endif // MMSCENE_H |
