diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-08-23 17:58:31 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-26 09:14:25 +0300 |
commit | 792d11e1093aa4e3ac249c57691c3bea6d07bc41 (patch) | |
tree | 0e4a58bd8c1c5aaf4e528d4aded4f6da3f64df48 /src/datavis3d/engine/surface3dcontroller.cpp | |
parent | 43ecfbc2ca07428874df5497cead68c895dfb115 (diff) |
AbstractRenderer into use and grid lines
Modified renderer to use AbstractRenderer and copied grid lines mostly
from scatter. Feel free to fix bugs. See you in a week.
Change-Id: I54c79b134be4ed5d7814c395a008a42003037307
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavis3d/engine/surface3dcontroller.cpp')
-rw-r--r-- | src/datavis3d/engine/surface3dcontroller.cpp | 46 |
1 files changed, 14 insertions, 32 deletions
diff --git a/src/datavis3d/engine/surface3dcontroller.cpp b/src/datavis3d/engine/surface3dcontroller.cpp index 0bb17c6d..89ec4fe6 100644 --- a/src/datavis3d/engine/surface3dcontroller.cpp +++ b/src/datavis3d/engine/surface3dcontroller.cpp @@ -19,6 +19,9 @@ #include "surface3dcontroller_p.h" #include "surface3drenderer_p.h" #include "camerahelper_p.h" +#include "qabstractaxis_p.h" +#include "qvalueaxis_p.h" +#include "qcategoryaxis.h" #include <QMatrix4x4> #include <QMouseEvent> @@ -30,12 +33,15 @@ QT_DATAVIS3D_BEGIN_NAMESPACE Surface3dController::Surface3dController(QRect rect) : Abstract3DController(rect), m_renderer(0), - m_isInitialized(false), m_smoothSurface(false), m_surfaceGrid(true), m_mouseState(MouseNone), m_mousePos(QPoint(0, 0)) { + // Default axes + setAxisX(new QValueAxis()); // Or QCategoryAxis + setAxisY(new QValueAxis()); + setAxisZ(new QValueAxis()); // Or QCategoryAxis } Surface3dController::~Surface3dController() @@ -45,24 +51,22 @@ Surface3dController::~Surface3dController() void Surface3dController::initializeOpenGL() { // Initialization is called multiple times when Qt Quick components are used - if (m_isInitialized) + if (isInitialized()) return; m_renderer = new Surface3dRenderer(this); - m_isInitialized = true; + setRenderer(m_renderer); + synchDataToRenderer(); } void Surface3dController::synchDataToRenderer() { - // TODO: Implement -} + Abstract3DController::synchDataToRenderer(); -void Surface3dController::render(const GLuint defaultFboHandle) -{ - if (!m_isInitialized) + if (!isInitialized()) return; - m_renderer->render(m_cameraHelper, defaultFboHandle); + // Notify changes to renderer } void Surface3dController::handleAxisAutoAdjustRangeChangedInOrientation(QAbstractAxis::AxisOrientation orientation, bool autoAdjust) @@ -82,18 +86,6 @@ QMatrix4x4 Surface3dController::calculateViewMatrix(int zoom, int viewPortWidth, showUnder); } -void Surface3dController::setWidth(const int width) -{ - qDebug() << "Surface3dController::setWidth"; - m_renderer->setWidth(width); -} - -void Surface3dController::setHeight(const int height) -{ - qDebug() << "Surface3dController::setHeight"; - m_renderer->setHeight(height); -} - void Surface3dController::setSmoothSurface(bool enable) { m_smoothSurface = enable; @@ -132,7 +124,7 @@ void Surface3dController::mousePressEvent(QMouseEvent *event, const QPoint &mous { if (Qt::LeftButton == event->button()) { m_mousePos = mousePos; - emit leftMousePressed(); + emit leftMousePressed(mousePos); } else if (Qt::RightButton == event->button()) { #if !defined(Q_OS_ANDROID) m_mouseState = Abstract3DController::MouseRotating; @@ -173,16 +165,6 @@ QPoint Surface3dController::mousePosition() return m_mousePos; } - -// TODO: abstract renderer should have accessor for Drawer instead -Drawer *Surface3dController::drawer() -{ - if (m_renderer) - return m_renderer->drawer(); - else - return 0; -} - void Surface3dController::setSegmentCount(GLint segmentCount, GLfloat step, GLfloat minimum) { m_segmentCount = segmentCount; |