QSurfaceDataProxy Class

The QSurfaceDataProxy class is the data proxy for a 3D surface graph. More...

Header: #include <QSurfaceDataProxy>
qmake: QT += datavisualization
Since: QtDataVisualization 1.0
Instantiated By: SurfaceDataProxy
Inherits: QAbstractDataProxy
Inherited By:

QHeightMapSurfaceDataProxy and QItemModelSurfaceDataProxy

This class was introduced in QtDataVisualization 1.0.

Properties

Public Functions

int columnCount() const
int rowCount() const
QSurface3DSeries *series() const

Signals

void columnCountChanged(int count)
void rowCountChanged(int count)
void seriesChanged(QSurface3DSeries *series)

Detailed Description

A surface data proxy handles surface related data in rows. For this it provides two auxiliary typedefs: QtDataVisualization::QSurfaceDataArray and QtDataVisualization::QSurfaceDataRow. QSurfaceDataArray is a QList that controls the rows. QSurfaceDataRow is a QVector that contains QSurfaceDataItem objects. For more information about how to feed the data to the proxy, see the sample code in the Q3DSurface documentation.

All rows must have the same number of items.

QSurfaceDataProxy takes ownership of all QSurfaceDataRow objects passed to it, whether directly or in a QSurfaceDataArray container. To use surface data row pointers to directly modify data after adding the array to the proxy, the appropriate signal must be emitted to update the graph.

To make a sensible surface, the x-value of each successive item in all rows must be either ascending or descending throughout the row. Similarly, the z-value of each successive item in all columns must be either ascending or descending throughout the column.

Note: Currently only surfaces with straight rows and columns are fully supported. Any row with items that do not have the exact same z-value or any column with items that do not have the exact same x-value may get clipped incorrectly if the whole surface does not completely fit within the visible x-axis or z-axis ranges.

Note: Surfaces with less than two rows or columns are not considered valid surfaces and will not be rendered.

Note: On some environments, surfaces with a lot of visible vertices may not render, because they exceed the per-draw vertex count supported by the graphics driver. This is mostly an issue on 32-bit and OpenGL ES2 platforms.

See also Qt Data Visualization Data Handling.

Property Documentation

columnCount : const int

This property holds the number of columns in the data array.

Access functions:

int columnCount() const

Notifier signal:

void columnCountChanged(int count)

rowCount : const int

This property holds the number of rows in the data array.

Access functions:

int rowCount() const

Notifier signal:

void rowCountChanged(int count)

series : QSurface3DSeries* const

This property holds the series this proxy is attached to.

Access functions:

QSurface3DSeries *series() const

Notifier signal:

void seriesChanged(QSurface3DSeries *series)

Related Non-Members

typedef QSurfaceDataArray

A list of pointers to QSurfaceDataRow objects.

typedef QSurfaceDataRow

A vector of QSurfaceDataItem objects.