summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/surface3dcontroller.cpp
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-08-23 17:58:31 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-26 09:14:25 +0300
commit792d11e1093aa4e3ac249c57691c3bea6d07bc41 (patch)
tree0e4a58bd8c1c5aaf4e528d4aded4f6da3f64df48 /src/datavis3d/engine/surface3dcontroller.cpp
parent43ecfbc2ca07428874df5497cead68c895dfb115 (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.cpp46
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;