QHeightMapSurfaceDataProxy Class

Base proxy class for Q3DSurfaceWidgetItem. More...

Header: #include <QHeightMapSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
In QML: HeightMapSurfaceDataProxy
Inherits: QSurfaceDataProxy

Properties

Public Functions

QHeightMapSurfaceDataProxy(QObject *parent = nullptr)
QHeightMapSurfaceDataProxy(const QImage &image, QObject *parent = nullptr)
QHeightMapSurfaceDataProxy(const QString &filename, QObject *parent = nullptr)
virtual ~QHeightMapSurfaceDataProxy() override
bool autoScaleY() const
QImage heightMap() const
QString heightMapFile() const
float maxXValue() const
float maxYValue() const
float maxZValue() const
float minXValue() const
float minYValue() const
float minZValue() const
void setAutoScaleY(bool enabled)
void setHeightMap(const QImage &image)
void setHeightMapFile(const QString &filename)
void setMaxXValue(float max)
void setMaxYValue(float max)
void setMaxZValue(float max)
void setMinXValue(float min)
void setMinYValue(float min)
void setMinZValue(float min)
void setValueRanges(float minX, float maxX, float minZ, float maxZ)

Signals

void autoScaleYChanged(bool enabled)
void heightMapChanged(const QImage &image)
void heightMapFileChanged(const QString &filename)
void maxXValueChanged(float value)
void maxYValueChanged(float value)
void maxZValueChanged(float value)
void minXValueChanged(float value)
void minYValueChanged(float value)
void minZValueChanged(float value)

Detailed Description

QHeightMapSurfaceDataProxy takes care of the processing of height map data related to surfaces. It provides the visualization of a height map as a surface plot.

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

See also QSurfaceDataProxy and Qt Graphs Data Handling with 3D.

Property Documentation

autoScaleY : bool

Scale height values to Y-axis.

Defaults to false.

When this property is set to true, the height values are scaled to fit on the Y-axis between minYValue and maxYValue.

Access functions:

bool autoScaleY() const
void setAutoScaleY(bool enabled)

Notifier signal:

void autoScaleYChanged(bool enabled)

See also minYValue and maxYValue.

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)

maxYValue : float

This property holds the maximum Y 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 maxYValue() const
void setMaxYValue(float max)

Notifier signal:

void maxYValueChanged(float value)

See also autoScaleY.

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)

minYValue : float

This property holds the minimum Y 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 minYValue() const
void setMinYValue(float min)

Notifier signal:

void minYValueChanged(float value)

See also autoScaleY.

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

[explicit] QHeightMapSurfaceDataProxy::QHeightMapSurfaceDataProxy(QObject *parent = nullptr)

Constructs QHeightMapSurfaceDataProxy with the given parent.

[explicit] 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.

[explicit] 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.

[override virtual noexcept] 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 the 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.