diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-09-26 10:46:01 +0300 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-09-26 12:22:27 +0300 |
commit | 037d0960a2bde8ad310a9917055c7c0c3488152a (patch) | |
tree | 79996eeaa3396d0e2670a070559fd7674f9db462 /src/datavisualization/engine/surface3drenderer_p.h | |
parent | 88695159e16bdfb8424de99d482adf332a93740d (diff) |
Slice view implemented
Implemented slice view and fixed selection mechanism.
Task-number: QTRD-2321
Task-number: QTRD-2307
Change-Id: I492bd96678bb1bdb8020448e122931a0deccdc0d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer_p.h')
-rw-r--r-- | src/datavisualization/engine/surface3drenderer_p.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/datavisualization/engine/surface3drenderer_p.h b/src/datavisualization/engine/surface3drenderer_p.h index 6b6f61c6..4edd80f9 100644 --- a/src/datavisualization/engine/surface3drenderer_p.h +++ b/src/datavisualization/engine/surface3drenderer_p.h @@ -69,13 +69,11 @@ public: bool m_isGridEnabled; private: - // Data parameters - QList<qreal> m_series; // TODO: TEMP - GLint m_segmentYCount; - GLfloat m_segmentYStep; + bool m_cachedIsSlicingActivated; // Internal attributes purely related to how the scene is drawn with GL. QRect m_mainViewPort; + QRect m_sliceViewPort; ShaderHelper *m_shader; ShaderHelper *m_depthShader; ShaderHelper *m_backgroundShader; @@ -103,6 +101,7 @@ private: ObjectHelper *m_gridLineObj; ObjectHelper *m_labelObj; SurfaceObject *m_surfaceObj; + SurfaceObject *m_sliceSurfaceObj; GLuint m_depthTexture; GLuint m_depthFrameBuffer; GLuint m_selectionFrameBuffer; @@ -111,7 +110,6 @@ private: GLuint m_selectionTexture; GLuint m_selectionResultTexture; GLfloat m_shadowQualityToShader; - bool m_querySelection; bool m_cachedSmoothSurface; bool m_flatSupported; bool m_cachedSurfaceGridOn; @@ -122,6 +120,7 @@ private: bool m_yFlipped; AbstractRenderItem m_dummyRenderItem; QSurfaceDataArray m_dataArray; + QSurfaceDataArray m_sliceDataArray; QRect m_sampleSpace; GLint m_shadowQualityMultiplier; QSizeF m_areaSize; @@ -134,6 +133,7 @@ public: void updateDataModel(QSurfaceDataProxy *dataProxy); void updateScene(Q3DScene *scene); + void drawSlicedScene(); void render(GLuint defaultFboHandle = 0); protected: @@ -144,9 +144,10 @@ public slots: bool updateSmoothStatus(bool enable); void updateSurfaceGridStatus(bool enable); void updateSurfaceGradient(const QLinearGradient &gradient); - virtual void requestSelectionAtPoint(const QPoint &point); + void updateSlicingActive(bool isSlicing); private: + void updateSliceDataModel(int selectionId); virtual void updateShadowQuality(QDataVis::ShadowQuality quality); virtual void updateTextures(); virtual void initShaders(const QString &vertexShader, const QString &fragmentShader); @@ -155,6 +156,7 @@ private: void loadGridLineMesh(); void loadLabelMesh(); void loadSurfaceObj(); + void loadSliceSurfaceObj(); void drawScene(GLuint defaultFboHandle); void handleResize(); void calculateSceneScalingFactors(); |