"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
from typing import Optional, Union, overload
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtDataVisualization

bytes = str


class QHeightMapSurfaceDataProxy(PySide6.QtDataVisualization.QSurfaceDataProxy):
    """
    https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html

    **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** .
    """

    @overload
    def __init__(
        self, filename: str, parent: Optional[PySide6.QtCore.QObject] = ...
    ) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#QHeightMapSurface
        DataProxy

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

        Constructs QHeightMapSurfaceDataProxy with the given **parent**.
        """
        ...

    @overload
    def __init__(
        self,
        image: Union[(PySide6.QtGui.QImage, str)],
        parent: Optional[PySide6.QtCore.QObject] = ...,
    ) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#QHeightMapSurface
        DataProxy-1

        **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** .
        """
        ...

    @overload
    def __init__(self, parent: Optional[PySide6.QtCore.QObject] = ...) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#QHeightMapSurface
        DataProxy-2

        **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** .
        """
        ...

    def heightMap(self) -> PySide6.QtGui.QImage:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#heightMap-prop

        **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** )
        """
        ...

    def heightMapFile(self) -> str:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#heightMapFile-
        prop

        **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** )
        """
        ...

    def maxXValue(self) -> float:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#maxXValue-prop

        **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** )
        """
        ...

    def maxZValue(self) -> float:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#maxZValue-prop

        **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** )
        """
        ...

    def minXValue(self) -> float:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#minXValue-prop

        **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** )
        """
        ...

    def minZValue(self) -> float:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#minZValue-prop

        **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**
        """
        ...

    def setHeightMap(self, image: Union[(PySide6.QtGui.QImage, str)]) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#setHeightMap

        **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** ().
        """
        ...

    def setHeightMapFile(self, filename: str) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#setHeightMapFile

        **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** .
        """
        ...

    def setMaxXValue(self, max: float) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#maxXValue-prop

        **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** )
        """
        ...

    def setMaxZValue(self, max: float) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#maxZValue-prop

        **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** )
        """
        ...

    def setMinXValue(self, min: float) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#minXValue-prop

        **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** )
        """
        ...

    def setMinZValue(self, min: float) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#minZValue-prop

        **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**
        """
        ...

    def setValueRanges(
        self, minX: float, maxX: float, minZ: float, maxZ: float
    ) -> None:
        """
        https://doc.qt.io/qt-6/qheightmapsurfacedataproxy.html#setValueRanges

        **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.
        """
        ...

    @property
    def heightMapChanged(self) -> PySide6.QtCore.SignalInstance:
        ...

    @property
    def heightMapFileChanged(self) -> PySide6.QtCore.SignalInstance:
        ...

    @property
    def maxXValueChanged(self) -> PySide6.QtCore.SignalInstance:
        ...

    @property
    def maxZValueChanged(self) -> PySide6.QtCore.SignalInstance:
        ...

    @property
    def minXValueChanged(self) -> PySide6.QtCore.SignalInstance:
        ...

    @property
    def minZValueChanged(self) -> PySide6.QtCore.SignalInstance:
        ...
