"""
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 List, Sequence, Union, overload
import PySide6.QtCore
import PySide6.QtGui

bytes = str


class QPolygonF(object):
    """
    https://doc.qt.io/qt-6/qpolygonf.html

    **Detailed Description**

    A QPolygonF is a **QList** <**QPointF** >. The easiest way to add points to
    a QPolygonF is to use its streaming operator, as illustrated below:

    **QPolygonF**  polygon;
        polygon << **QPointF** (10.4, 20.5) <<
    **QPointF** (20.2, 30.2);

    In addition to the functions provided by **QList** , QPolygonF provides the
    **boundingRect** () and **translate** () functions for geometry operations.
    Use the **QTransform::map** () function for more general transformations of
    QPolygonFs.

    QPolygonF also provides the **isClosed** () function to determine whether a
    polygon's start and end points are the same, and the **toPolygon** ()
    function returning an integer precision copy of this polygon.

    The QPolygonF class is **implicitly shared** .

    **See also** **QList** , **QPolygon** , and **QLineF** .
    """

    @overload
    def __init__(self) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#QPolygonF

        **QPolygonF::QPolygonF()**

        Constructs a polygon with no points.

        **See also** **QList::isEmpty** ().
        """
        ...

    @overload
    def __init__(
        self,
        QPolygonF: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#QPolygonF-1

        **QPolygonF::QPolygonF(const QList<QPointF> & points )**

        Constructs a polygon containing the specified **points**.
        """
        ...

    @overload
    def __init__(
        self,
        a: Union[
            (
                PySide6.QtGui.QPolygon,
                Sequence[PySide6.QtCore.QPoint],
                PySide6.QtCore.QRect,
            )
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#QPolygonF-3

        **QPolygonF::QPolygonF(const QRectF & rectangle )**

        Constructs a closed polygon from the specified **rectangle**.

        The polygon contains the four vertices of the rectangle in clockwise
        order starting and ending with the top-left vertex.

        **See also** **isClosed** ().
        """
        ...

    @overload
    def __init__(self, r: Union[(PySide6.QtCore.QRectF, PySide6.QtCore.QRect)]) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#QPolygonF-4

        **QPolygonF::QPolygonF(const QPolygon & polygon )**

        Constructs a float based polygon from the specified integer based
        **polygon**.

        **See also** **toPolygon** ().
        """
        ...

    @overload
    def __init__(self, v: Sequence[PySide6.QtCore.QPointF]) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#QPolygonF

        **QPolygonF::QPolygonF()**

        Constructs a polygon with no points.

        **See also** **QList::isEmpty** ().
        """
        ...

    def __add__(
        self, l: Sequence[PySide6.QtCore.QPointF]
    ) -> List[PySide6.QtCore.QPointF]:
        ...

    @staticmethod
    def __copy__() -> None:
        ...

    def __lshift__(
        self, stream: PySide6.QtCore.QDataStream
    ) -> PySide6.QtCore.QDataStream:
        ...

    def __mul__(self, m: PySide6.QtGui.QTransform) -> PySide6.QtGui.QPolygonF:
        ...

    def __rshift__(
        self, stream: PySide6.QtCore.QDataStream
    ) -> PySide6.QtCore.QDataStream:
        ...

    @overload
    def append(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    @overload
    def append(self, l: Sequence[PySide6.QtCore.QPointF]) -> None:
        ...

    def at(self, i: int) -> PySide6.QtCore.QPointF:
        ...

    def back(self) -> PySide6.QtCore.QPointF:
        ...

    def boundingRect(self) -> PySide6.QtCore.QRectF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#boundingRect

        **QRectF QPolygonF::boundingRect() const**

        Returns the bounding rectangle of the polygon, or **QRectF** (0,0,0,0)
        if the polygon is empty.

        **See also** **QList::isEmpty** ().
        """
        ...

    def capacity(self) -> int:
        ...

    def clear(self) -> None:
        ...

    def constData(self) -> PySide6.QtCore.QPointF:
        ...

    def constFirst(self) -> PySide6.QtCore.QPointF:
        ...

    def constLast(self) -> PySide6.QtCore.QPointF:
        ...

    def containsPoint(
        self,
        pt: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
        fillRule: PySide6.QtCore.Qt.FillRule,
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#containsPoint

        **bool QPolygonF::containsPoint(const QPointF & point , Qt::FillRule
        fillRule ) const**

        Returns `true` if the given **point** is inside the polygon according to
        the specified **fillRule** ; otherwise returns `false`.
        """
        ...

    def count(self) -> int:
        ...

    def data(self) -> PySide6.QtCore.QPointF:
        ...

    def empty(self) -> bool:
        ...

    @overload
    def first(self) -> PySide6.QtCore.QPointF:
        ...

    @overload
    def first(self, n: int) -> List[PySide6.QtCore.QPointF]:
        ...

    @staticmethod
    def fromList(
        list: Sequence[PySide6.QtCore.QPointF],
    ) -> List[PySide6.QtCore.QPointF]:
        ...

    @staticmethod
    def fromVector(
        vector: Sequence[PySide6.QtCore.QPointF],
    ) -> List[PySide6.QtCore.QPointF]:
        ...

    def front(self) -> PySide6.QtCore.QPointF:
        ...

    def insert(
        self,
        arg__1: int,
        arg__2: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def intersected(
        self,
        r: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> PySide6.QtGui.QPolygonF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#intersected

        **QPolygonF QPolygonF::intersected(const QPolygonF & r ) const**

        Returns a polygon which is the intersection of this polygon and **r**.

        Set operations on polygons will treat the polygons as areas. Non-closed
        polygons will be treated as implicitly closed.

        **See also** **intersects** ().
        """
        ...

    def intersects(
        self,
        r: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#intersects

        **[since 5.10] bool QPolygonF::intersects(const QPolygonF & p ) const**

        Returns `true` if the current polygon intersects at any point the given
        polygon **p**. Also returns `true` if the current polygon contains or is
        contained by any part of **p**.

        Set operations on polygons will treat the polygons as areas. Non-closed
        polygons will be treated as implicitly closed.

        This function was introduced in Qt 5.10.

        **See also** **intersected** ().
        """
        ...

    def isClosed(self) -> bool:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#isClosed

        **bool QPolygonF::isClosed() const**

        Returns `true` if the polygon is closed; otherwise returns `false`.

        A polygon is said to be closed if its start point and end point are
        equal.

        **See also** **QList::first** () and **QList::last** ().
        """
        ...

    def isEmpty(self) -> bool:
        ...

    def isSharedWith(self, other: Sequence[PySide6.QtCore.QPointF]) -> bool:
        ...

    @overload
    def last(self) -> PySide6.QtCore.QPointF:
        ...

    @overload
    def last(self, n: int) -> List[PySide6.QtCore.QPointF]:
        ...

    def length(self) -> int:
        ...

    def mid(self, pos: int, len: int = ...) -> List[PySide6.QtCore.QPointF]:
        ...

    def move(self, from_: int, to: int) -> None:
        ...

    def pop_back(self) -> None:
        ...

    def pop_front(self) -> None:
        ...

    def prepend(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def push_back(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def push_front(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def remove(self, i: int, n: int = ...) -> None:
        ...

    def removeAll(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def removeAt(self, i: int) -> None:
        ...

    def removeFirst(self) -> None:
        ...

    def removeLast(self) -> None:
        ...

    def removeOne(
        self,
        arg__1: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        ...

    def reserve(self, size: int) -> None:
        ...

    def resize(self, size: int) -> None:
        ...

    def shrink_to_fit(self) -> None:
        ...

    def size(self) -> int:
        ...

    @overload
    def sliced(self, pos: int) -> List[PySide6.QtCore.QPointF]:
        ...

    @overload
    def sliced(self, pos: int, n: int) -> List[PySide6.QtCore.QPointF]:
        ...

    def squeeze(self) -> None:
        ...

    def subtracted(
        self,
        r: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> PySide6.QtGui.QPolygonF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#subtracted

        **QPolygonF QPolygonF::subtracted(const QPolygonF & r ) const**

        Returns a polygon which is **r** subtracted from this polygon.

        Set operations on polygons will treat the polygons as areas. Non-closed
        polygons will be treated as implicitly closed.
        """
        ...

    def swap(
        self,
        other: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#swap

        **void QPolygonF::swap(QPolygonF & other )**

        Swaps polygon **other** with this polygon. This operation is very fast
        and never fails.
        """
        ...

    def swapItemsAt(self, i: int, j: int) -> None:
        ...

    def takeAt(self, i: int) -> PySide6.QtCore.QPointF:
        ...

    def toList(self) -> List[PySide6.QtCore.QPointF]:
        ...

    def toPolygon(self) -> PySide6.QtGui.QPolygon:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#toPolygon

        **QPolygon QPolygonF::toPolygon() const**

        Creates and returns a **QPolygon**  by converting each **QPointF**  to a
        **QPoint** .

        **See also** **QPointF::toPoint** ().
        """
        ...

    def toVector(self) -> List[PySide6.QtCore.QPointF]:
        ...

    @overload
    def translate(self, dx: float, dy: float) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#translate

        **void QPolygonF::translate(const QPointF & offset )**

        Translate all points in the polygon by the given **offset**.

        **See also** **translated** ().
        """
        ...

    @overload
    def translate(
        self,
        offset: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#translate-1

        **void QPolygonF::translate(qreal dx , qreal dy )**

        This is an overloaded function.

        Translates all points in the polygon by ( **dx** , **dy** ).

        **See also** **translated** ().
        """
        ...

    @overload
    def translated(self, dx: float, dy: float) -> PySide6.QtGui.QPolygonF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#translated

        **QPolygonF QPolygonF::translated(const QPointF & offset ) const**

        Returns a copy of the polygon that is translated by the given
        **offset**.

        **See also** **translate** ().
        """
        ...

    @overload
    def translated(
        self,
        offset: Union[
            (
                PySide6.QtCore.QPointF,
                PySide6.QtCore.QPoint,
                PySide6.QtGui.QPainterPath.Element,
            )
        ],
    ) -> PySide6.QtGui.QPolygonF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#translated-1

        **QPolygonF QPolygonF::translated(qreal dx , qreal dy ) const**

        This is an overloaded function.

        Returns a copy of the polygon that is translated by ( **dx** , **dy** ).

        **See also** **translate** ().
        """
        ...

    def united(
        self,
        r: Union[
            (
                PySide6.QtGui.QPolygonF,
                Sequence[PySide6.QtCore.QPointF],
                PySide6.QtGui.QPolygon,
                PySide6.QtCore.QRectF,
            )
        ],
    ) -> PySide6.QtGui.QPolygonF:
        """
        https://doc.qt.io/qt-6/qpolygonf.html#united

        **QPolygonF QPolygonF::united(const QPolygonF & r ) const**

        Returns a polygon which is the union of this polygon and **r**.

        Set operations on polygons will treat the polygons as areas. Non-closed
        polygons will be treated as implicitly closed.

        **See also** **intersected** () and **subtracted** ().
        """
        ...

    def value(self, i: int) -> PySide6.QtCore.QPointF:
        ...
