diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-12-03 12:11:38 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-12-03 12:21:13 +0200 |
commit | f44e0e8e858c8687e40eba679f865f142b73be01 (patch) | |
tree | 0735d194f0b9702c64a06d6369f9d2328d4fb4d3 /src | |
parent | f61a34e357a3fdbc78c344ee6134fc87113fb33a (diff) |
Move series specific visual elements to series, part 3
Surface pointer to use series mesh
Task-number: QTRD-2557
Change-Id: Ibf6c1d91c8bce22b4f9c71b0fbf4d62ad8cc09da
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/datavisualization/engine/selectionpointer.cpp | 26 | ||||
-rw-r--r-- | src/datavisualization/engine/selectionpointer_p.h | 9 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 2 |
3 files changed, 12 insertions, 25 deletions
diff --git a/src/datavisualization/engine/selectionpointer.cpp b/src/datavisualization/engine/selectionpointer.cpp index 25c59026..c37e9886 100644 --- a/src/datavisualization/engine/selectionpointer.cpp +++ b/src/datavisualization/engine/selectionpointer.cpp @@ -43,7 +43,6 @@ SelectionPointer::SelectionPointer(Drawer *drawer) m_labelObj(0), m_pointObj(0), m_textureHelper(0), - m_isInitialized(false), m_cachedTheme(drawer->theme()), m_labelBackground(false), m_drawer(drawer), @@ -60,27 +59,18 @@ SelectionPointer::~SelectionPointer() delete m_labelShader; delete m_pointShader; delete m_labelObj; - delete m_pointObj; delete m_textureHelper; } void SelectionPointer::initializeOpenGL() { - if (m_isInitialized) - return; - initializeOpenGLFunctions(); m_textureHelper = new TextureHelper(); m_drawer->initializeOpenGL(); initShaders(); - loadLabelMesh(); - loadPointMesh(); - - // Set initialized -flag - m_isInitialized = true; } void SelectionPointer::updateScene(Q3DScene *scene) @@ -213,13 +203,17 @@ void SelectionPointer::updateSliceData(bool sliceActivated, GLfloat autoScaleAdj m_autoScaleAdjustment = autoScaleAdjustment; } -void SelectionPointer::setLabel(QString label) +void SelectionPointer::setLabel(const QString &label) { m_label = label; - m_drawer->generateLabelItem(m_labelItem, m_label); } +void SelectionPointer::setPointerObject(ObjectHelper *object) +{ + m_pointObj = object; +} + void SelectionPointer::handleDrawerChange() { m_cachedTheme = m_drawer->theme(); @@ -262,12 +256,4 @@ void SelectionPointer::loadLabelMesh() m_labelObj->load(); } -void SelectionPointer::loadPointMesh() -{ - if (m_pointObj) - delete m_pointObj; - m_pointObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/sphereSmooth")); - m_pointObj->load(); -} - QT_DATAVISUALIZATION_END_NAMESPACE diff --git a/src/datavisualization/engine/selectionpointer_p.h b/src/datavisualization/engine/selectionpointer_p.h index d3d46e2c..46903fd2 100644 --- a/src/datavisualization/engine/selectionpointer_p.h +++ b/src/datavisualization/engine/selectionpointer_p.h @@ -59,27 +59,26 @@ public: explicit SelectionPointer(Drawer *drawer); ~SelectionPointer(); - void initializeOpenGL(); void render(GLuint defaultFboHandle = 0); void setPosition(QVector3D position); - void setLabel(QString label); + void setLabel(const QString &label); + void setPointerObject(ObjectHelper *object); void handleDrawerChange(); void updateBoundingRect(QRect rect); void updateScene(Q3DScene *scene); void updateSliceData(bool sliceActivated, GLfloat autoScaleAdjustment); private: + void initializeOpenGL(); void initShaders(); void loadLabelMesh(); - void loadPointMesh(); private: ShaderHelper *m_labelShader; ShaderHelper *m_pointShader; ObjectHelper *m_labelObj; - ObjectHelper *m_pointObj; + ObjectHelper *m_pointObj; // Not owned TextureHelper *m_textureHelper; - bool m_isInitialized; Q3DTheme *m_cachedTheme; bool m_labelBackground; LabelItem m_labelItem; diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index bb74e084..4942c4ae 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -1912,6 +1912,8 @@ void Surface3DRenderer::surfacePointSelected(const QPoint &point) m_selectionPointer->setPosition(pos); m_selectionPointer->setLabel(createSelectionLabel(value, column, row)); + // TODO: Get pointer object from correct series once multiseries support implemented + m_selectionPointer->setPointerObject(m_visibleSeriesList.at(0).object()); m_selectionPointer->updateScene(m_cachedScene); } |