- Qt 5.15
- Qt Data Visualization
- C++ Classes
- QHeightMapSurfaceDataProxy
- Qt Data Visualization | Commercial or GPLv3

# QHeightMapSurfaceDataProxy Class

Base proxy class for Q3DSurface. More...

Header: | #include <QHeightMapSurfaceDataProxy>
qmake: | QT += datavisualization
Since: | QtDataVisualization 1.0
Instantiated By: | HeightMapSurfaceDataProxy
Inherits: | QSurfaceDataProxy

This class was introduced in QtDataVisualization 1.0.

- List of all members, including inherited members

## Properties

- heightMap : QImage
- heightMapFile : QString
- maxXValue : float

- maxZValue : float
- minXValue : float
- minZValue : float

## Public Functions

| QHeightMapSurfaceDataProxy(const QString &filename, QObject *parent = nullptr)
| QHeightMapSurfaceDataProxy(const QImage &image, QObject *parent = nullptr)
| QHeightMapSurfaceDataProxy(QObject *parent = nullptr)
virtual | ~QHeightMapSurfaceDataProxy()
QImage | heightMap() const
QString | heightMapFile() const
float | maxXValue() const
float | maxZValue() const
float | minXValue() const
float | minZValue() const
void | setHeightMap(const QImage &image)
void | setHeightMapFile(const QString &filename)
void | setMaxXValue(float max)
void | setMaxZValue(float max)
void | setMinXValue(float min)
void | setMinZValue(float min)
void | setValueRanges(float minX, float maxX, float minZ, float maxZ)

## Signals

void | heightMapChanged(const QImage &image)
void | heightMapFileChanged(const QString &filename)
void | maxXValueChanged(float value)
void | maxZValueChanged(float value)
void | minXValueChanged(float value)
void | minZValueChanged(float value)

## Detailed Description

QHeightMapSurfaceDataProxy takes care of surface related height map data handling. It provides a way to give a height map to be visualized as a surface plot.

Since height maps do not contain values for X or Z axes, those values need to be given separately using minXValue, maxXValue, minZValue, and maxZValue properties. X-value corresponds to image horizontal direction and Z-value to the vertical. Setting any of these properties triggers asynchronous re-resolving of any existing height map.

See also QSurfaceDataProxy and Qt Data Visualization Data Handling.

## Property Documentation

### heightMap : QImage

This property holds the height map image to be visualized.

Access functions:

QImage | heightMap() const
void | setHeightMap(const QImage &image)

Notifier signal:

void | heightMapChanged(const QImage &image)

### heightMapFile : QString

This property holds the name of the file with a height map image to be visualized.

Access functions:

QString | heightMapFile() const
void | setHeightMapFile(const QString &filename)

Notifier signal:

void | heightMapFileChanged(const QString &filename)

### maxXValue : float

This property holds the maximum X value for the generated surface points.

Defaults to `10.0`.

When setting this property the corresponding minimum value is adjusted if necessary, to ensure that the range remains valid.

Access functions:

float | maxXValue() const
void | setMaxXValue(float max)

Notifier signal:

void | maxXValueChanged(float value)

### maxZValue : float

This property holds the maximum Z value for the generated surface points.

Defaults to `10.0`.

When setting this property the corresponding minimum value is adjusted if necessary, to ensure that the range remains valid.

Access functions:

float | maxZValue() const
void | setMaxZValue(float max)

Notifier signal:

void | maxZValueChanged(float value)

### minXValue : float

This property holds the minimum X value for the generated surface points.

Defaults to `0.0`.

When setting this property the corresponding maximum value is adjusted if necessary, to ensure that the range remains valid.

Access functions:

float | minXValue() const
void | setMinXValue(float min)

Notifier signal:

void | minXValueChanged(float value)

### minZValue : float

This property holds the minimum Z value for the generated surface points.

Defaults to `0.0`.

When setting this property the corresponding maximum value is adjusted if necessary, to ensure that the range remains valid.

Access functions:

float | minZValue() const
void | setMinZValue(float min)

Notifier signal:

void | minZValueChanged(float value)

## Member Function Documentation

### QHeightMapSurfaceDataProxy::QHeightMapSurfaceDataProxy(const QString &filename, QObject *parent = nullptr)

Constructs QHeightMapSurfaceDataProxy from the given image filename and parent. Height map is set by calling setHeightMapFile() with filename.

See also heightMapFile.

### QHeightMapSurfaceDataProxy::QHeightMapSurfaceDataProxy(const QImage &image, QObject *parent = nullptr)

Constructs QHeightMapSurfaceDataProxy with the given image and parent. Height map is set by calling setHeightMap() with image.

See also heightMap.

### QHeightMapSurfaceDataProxy::QHeightMapSurfaceDataProxy(QObject *parent = nullptr)

Constructs QHeightMapSurfaceDataProxy with the given parent.

### `[virtual]` QHeightMapSurfaceDataProxy::~QHeightMapSurfaceDataProxy()

Destroys QHeightMapSurfaceDataProxy.

### void QHeightMapSurfaceDataProxy::setHeightMap(const QImage &image)

Replaces current data with the height map data specified by image.

There are several formats the image can be given in, but if it is not in a directly usable format, a conversion is made.

Note: If the result seems wrong, the automatic conversion failed and you should try converting the image yourself before setting it. Preferred format is QImage::Format_RGB32 in grayscale.

The height of the image is read from the red component of the pixels if the image is in grayscale, otherwise it is an average calculated from red, green, and blue components of the pixels. Using grayscale images may improve data conversion speed for large images.

Not recommended formats: all mono formats (for example QImage::Format_Mono).

The height map is resolved asynchronously. QSurfaceDataProxy::arrayReset() is emitted when the data has been resolved.

Note: Setter function for property heightMap.

See also heightMap().

### void QHeightMapSurfaceDataProxy::setHeightMapFile(const QString &filename)

Replaces current data with height map data from the file specified by filename.

Note: Setter function for property heightMapFile.

See also heightMapFile() and heightMap.

### void QHeightMapSurfaceDataProxy::setValueRanges(float minX, float maxX, float minZ, float maxZ)

A convenience function for setting all minimum (minX and minZ) and maximum (maxX and maxZ) values at the same time. The minimum values must be smaller than the corresponding maximum value. Otherwise the values get adjusted so that they are valid.