summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3drenderer_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer_p.h')
-rw-r--r--src/datavisualization/engine/surface3drenderer_p.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/datavisualization/engine/surface3drenderer_p.h b/src/datavisualization/engine/surface3drenderer_p.h
index c805e508..72a83692 100644
--- a/src/datavisualization/engine/surface3drenderer_p.h
+++ b/src/datavisualization/engine/surface3drenderer_p.h
@@ -70,6 +70,7 @@ public:
private:
bool m_cachedIsSlicingActivated;
+ QDataVis::InputState m_cachedInputState;
// Internal attributes purely related to how the scene is drawn with GL.
QRect m_mainViewPort;
@@ -124,9 +125,9 @@ private:
QRect m_sampleSpace;
GLint m_shadowQualityMultiplier;
QSizeF m_areaSize;
- uint m_cachedSelectionId;
- bool m_selectionModeChanged;
+ uint m_clickedPointId;
bool m_hasHeightAdjustmentChanged;
+ QPoint m_selectedPoint;
public:
explicit Surface3DRenderer(Surface3DController *controller);
@@ -146,11 +147,14 @@ public slots:
void updateSurfaceGridStatus(bool enable);
void updateSurfaceGradient(const QLinearGradient &gradient);
void updateSlicingActive(bool isSlicing);
- void updateSelectionMode(QDataVis::SelectionMode mode);
+ void updateSelectedPoint(const QPoint &position);
+
+signals:
+ void pointClicked(QPoint position);
private:
void setViewPorts();
- void updateSliceDataModel(int selectionId);
+ void updateSliceDataModel(const QPoint &point);
virtual void updateShadowQuality(QDataVis::ShadowQuality quality);
virtual void updateTextures();
virtual void initShaders(const QString &vertexShader, const QString &fragmentShader);
@@ -172,11 +176,13 @@ private:
void updateSelectionTexture();
void idToRGBA(uint id, uchar *r, uchar *g, uchar *b, uchar *a);
void fillIdCorner(uchar *p, uchar r, uchar g, uchar b, uchar a, int stride);
- void surfacePointSelected(int id);
+ void surfacePointSelected(const QPoint &point);
+ QPoint selectionIdToSurfacePoint(uint id);
QString createSelectionLabel(qreal value, int column, int row);
#if !defined(QT_OPENGL_ES_2)
void updateDepthBuffer();
#endif
+ void emitSelectedPointChanged(QPoint position);
Q_DISABLE_COPY(Surface3DRenderer)
};