summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/scatter3drenderer_p.h
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-12-18 11:50:03 +0200
committerMika Salmela <mika.salmela@digia.com>2013-12-18 11:51:20 +0200
commit07aba602fc82ac31684988f8e8e22521d2b3c982 (patch)
tree7ae1da139e8661bf157f996fe71844031d2995f4 /src/datavisualization/engine/scatter3drenderer_p.h
parentcf0cf6ca67aec8ae480bb705443ea17f5ab9f9e2 (diff)
parentea0442bc81ae034d22c5742b6075dee993fdd54d (diff)
Merge branch 'develop' into mergebranch
Conflicts: examples/qmlbars/qml/qmlbars/main.qml examples/qmlscatter/qml/qmlscatter/main.qml examples/qmlsurface/qml/qmlsurface/main.qml src/datavisualization/data/qitemmodelbardatamapping.cpp src/datavisualization/data/qitemmodelscatterdatamapping.cpp src/datavisualization/data/qitemmodelsurfacedatamapping.cpp src/datavisualization/engine/drawer.cpp Change-Id: I731ebdb2cc5cee8f2cb32becee96d1fc1b3e5de1
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer_p.h')
-rw-r--r--src/datavisualization/engine/scatter3drenderer_p.h47
1 files changed, 23 insertions, 24 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer_p.h b/src/datavisualization/engine/scatter3drenderer_p.h
index f444f891..30ec7489 100644
--- a/src/datavisualization/engine/scatter3drenderer_p.h
+++ b/src/datavisualization/engine/scatter3drenderer_p.h
@@ -52,25 +52,21 @@ class QT_DATAVISUALIZATION_EXPORT Scatter3DRenderer : public Abstract3DRenderer
Q_OBJECT
private:
- // TODO: Filter to the set of attributes to be moved to the model object.
- // * All GL rendering only related attribs should be moved out of this public set.
- // * All attribs that are modifiable from QML need to e in this set.
-
- Scatter3DController *m_controller;
-
// Internal state
ScatterRenderItem *m_selectedItem; // points to renderitem array
bool m_xFlipped;
bool m_zFlipped;
bool m_yFlipped;
- QRect m_mainViewPort;
bool m_updateLabels;
ShaderHelper *m_dotShader;
+ ShaderHelper *m_dotGradientShader;
+#if defined(QT_OPENGL_ES_2)
+ ShaderHelper *m_pointShader;
+#endif
ShaderHelper *m_depthShader;
ShaderHelper *m_selectionShader;
ShaderHelper *m_backgroundShader;
ShaderHelper *m_labelShader;
- ObjectHelper *m_dotObj;
ObjectHelper *m_backgroundObj;
ObjectHelper *m_gridLineObj;
ObjectHelper *m_labelObj;
@@ -84,37 +80,40 @@ private:
GLint m_shadowQualityMultiplier;
GLfloat m_heightNormalizer;
GLfloat m_scaleFactor;
- QVector3D m_selection;
- QVector3D m_previousSelection;
+ int m_selectedItemIndex;
+ int m_selectedItemTotalIndex;
+ int m_selectedItemSeriesIndex;
+ const QScatter3DSeries *m_selectedSeries;
QSizeF m_areaSize;
GLfloat m_dotSizeScale;
-
+ QVector3D m_translationOffset;
bool m_hasHeightAdjustmentChanged;
ScatterRenderItem m_dummyRenderItem;
-
- ScatterRenderItemArray m_renderItemArray;
+ QVector<ScatterRenderItemArray> m_renderingArrays;
+ GLfloat m_backgroundMargin;
+ GLfloat m_maxItemSize;
public:
explicit Scatter3DRenderer(Scatter3DController *controller);
~Scatter3DRenderer();
- void updateDataModel(QScatterDataProxy *dataProxy);
+ void updateSeries(const QList<QAbstract3DSeries *> &seriesList, bool updateVisibility);
+ void updateData();
void updateScene(Q3DScene *scene);
- void render(GLuint defaultFboHandle);
- QRect mainViewPort();
+ void render(GLuint defaultFboHandle);
protected:
virtual void initializeOpenGL();
- virtual void loadMeshFile();
private:
virtual void initShaders(const QString &vertexShader, const QString &fragmentShader);
+ virtual void initGradientShaders(const QString &vertexShader, const QString &fragmentShader);
virtual void updateShadowQuality(QDataVis::ShadowQuality quality);
virtual void updateTextures();
+ virtual void fixMeshFileName(QString &fileName, QAbstract3DSeries::Mesh mesh);
void drawScene(GLuint defaultFboHandle);
- void handleResize();
void loadBackgroundMesh();
void loadGridLineMesh();
@@ -126,6 +125,8 @@ private:
#if !defined(QT_OPENGL_ES_2)
void initDepthShader();
void updateDepthBuffer();
+#else
+ void initPointShader();
#endif
void calculateTranslation(ScatterRenderItem &item);
void calculateSceneScalingFactors();
@@ -135,19 +136,17 @@ private:
friend class ScatterRenderItem;
public slots:
- void updateBackgroundEnabled(bool enable);
-
// Overloaded from abstract renderer
- virtual void updateAxisRange(Q3DAbstractAxis::AxisOrientation orientation, qreal min, qreal max);
+ virtual void updateAxisRange(Q3DAbstractAxis::AxisOrientation orientation, float min, float max);
- void updateSelectedItemIndex(int index);
+ void updateSelectedItem(int index, const QScatter3DSeries *series);
signals:
- void selectionUpdated(QVector3D selection);
- void selectedItemIndexChanged(int index);
+ void itemClicked(int index, QScatter3DSeries *series);
private:
QVector3D indexToSelectionColor(GLint index);
+ void selectionColorToSeriesAndIndex(const QVector3D &color, int &index, QScatter3DSeries *&series);
};
QT_DATAVISUALIZATION_END_NAMESPACE