# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.Qt3DCore, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.Qt3DCore`

import PySide6.Qt3DCore
import PySide6.QtCore

import enum
import typing
import collections.abc
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QIntList: ...


class Qt3DCore(Shiboken.Object):

    class QAbstractAspect(PySide6.QtCore.QObject): ...

    class QAbstractFunctor(Shiboken.Object): ...

    class QAbstractSkeleton(PySide6.Qt3DCore.Qt3DCore.QNode):

        jointCountChanged        : typing.ClassVar[Signal] = ... # jointCountChanged(int)

    class QArmature(PySide6.Qt3DCore.Qt3DCore.QComponent):

        skeletonChanged          : typing.ClassVar[Signal] = ... # skeletonChanged(Qt3DCore::QAbstractSkeleton*)

    class QAspectEngine(PySide6.QtCore.QObject):

        class RunMode(enum.Enum):

            Manual                    = 0x0
            Automatic                 = 0x1


    class QAspectJob(Shiboken.Object): ...

    class QAspectJobPtr(Shiboken.Object): ...
        def __dir__(self, /) -> collections.abc.Iterable[str]: ...
        def __repr__(self, /) -> str: ...

    class QAttribute(PySide6.Qt3DCore.Qt3DCore.QNode):

        attributeTypeChanged     : typing.ClassVar[Signal] = ... # attributeTypeChanged(AttributeType)
        bufferChanged            : typing.ClassVar[Signal] = ... # bufferChanged(QBuffer*)
        byteOffsetChanged        : typing.ClassVar[Signal] = ... # byteOffsetChanged(uint)
        byteStrideChanged        : typing.ClassVar[Signal] = ... # byteStrideChanged(uint)
        countChanged             : typing.ClassVar[Signal] = ... # countChanged(uint)
        dataSizeChanged          : typing.ClassVar[Signal] = ... # dataSizeChanged(uint)
        dataTypeChanged          : typing.ClassVar[Signal] = ... # dataTypeChanged(VertexBaseType)
        divisorChanged           : typing.ClassVar[Signal] = ... # divisorChanged(uint)
        nameChanged              : typing.ClassVar[Signal] = ... # nameChanged(QString)
        vertexBaseTypeChanged    : typing.ClassVar[Signal] = ... # vertexBaseTypeChanged(VertexBaseType)
        vertexSizeChanged        : typing.ClassVar[Signal] = ... # vertexSizeChanged(uint)

        class AttributeType(enum.Enum):

            VertexAttribute           = 0x0
            IndexAttribute            = 0x1
            DrawIndirectAttribute     = 0x2

        class VertexBaseType(enum.Enum):

            Byte                      = 0x0
            UnsignedByte              = 0x1
            Short                     = 0x2
            UnsignedShort             = 0x3
            Int                       = 0x4
            UnsignedInt               = 0x5
            HalfFloat                 = 0x6
            Float                     = 0x7
            Double                    = 0x8


    class QBackendNode(Shiboken.Object):

        class Mode(enum.Enum):

            ReadOnly                  = 0x0
            ReadWrite                 = 0x1


    class QBackendNodeMapper(Shiboken.Object): ...

    class QBackendNodeMapperPtr(Shiboken.Object): ...
        def __dir__(self, /) -> collections.abc.Iterable[str]: ...
        def __repr__(self, /) -> str: ...

    class QBoundingVolume(PySide6.Qt3DCore.Qt3DCore.QComponent):

        implicitMaxPointChanged  : typing.ClassVar[Signal] = ... # implicitMaxPointChanged(QVector3D)
        implicitMinPointChanged  : typing.ClassVar[Signal] = ... # implicitMinPointChanged(QVector3D)
        implicitPointsValidChanged: typing.ClassVar[Signal] = ... # implicitPointsValidChanged(bool)
        maxPointChanged          : typing.ClassVar[Signal] = ... # maxPointChanged(QVector3D)
        minPointChanged          : typing.ClassVar[Signal] = ... # minPointChanged(QVector3D)
        viewChanged              : typing.ClassVar[Signal] = ... # viewChanged(QGeometryView*)

    class QBuffer(PySide6.Qt3DCore.Qt3DCore.QNode):

        accessTypeChanged        : typing.ClassVar[Signal] = ... # accessTypeChanged(AccessType)
        dataAvailable            : typing.ClassVar[Signal] = ... # dataAvailable()
        dataChanged              : typing.ClassVar[Signal] = ... # dataChanged(QByteArray)
        usageChanged             : typing.ClassVar[Signal] = ... # usageChanged(UsageType)

        class AccessType(enum.Enum):

            Write                     = 0x1
            Read                      = 0x2
            ReadWrite                 = 0x3

        class UsageType(enum.Enum):

            StreamDraw                = 0x88e0
            StreamRead                = 0x88e1
            StreamCopy                = 0x88e2
            StaticDraw                = 0x88e4
            StaticRead                = 0x88e5
            StaticCopy                = 0x88e6
            DynamicDraw               = 0x88e8
            DynamicRead               = 0x88e9
            DynamicCopy               = 0x88ea


    class QComponent(PySide6.Qt3DCore.Qt3DCore.QNode):

        addedToEntity            : typing.ClassVar[Signal] = ... # addedToEntity(QEntity*)
        removedFromEntity        : typing.ClassVar[Signal] = ... # removedFromEntity(QEntity*)
        shareableChanged         : typing.ClassVar[Signal] = ... # shareableChanged(bool)

    class QCoreAspect(PySide6.Qt3DCore.Qt3DCore.QAbstractAspect): ...

    class QCoreSettings(PySide6.Qt3DCore.Qt3DCore.QComponent):

        boundingVolumesEnabledChanged: typing.ClassVar[Signal] = ... # boundingVolumesEnabledChanged(bool)

    class QEntity(PySide6.Qt3DCore.Qt3DCore.QNode): ...

    class QEntityPtr(Shiboken.Object): ...
        def __dir__(self, /) -> collections.abc.Iterable[str]: ...
        def __repr__(self, /) -> str: ...

    class QGeometry(PySide6.Qt3DCore.Qt3DCore.QNode):

        boundingVolumePositionAttributeChanged: typing.ClassVar[Signal] = ... # boundingVolumePositionAttributeChanged(QAttribute*)
        maxExtentChanged         : typing.ClassVar[Signal] = ... # maxExtentChanged(QVector3D)
        minExtentChanged         : typing.ClassVar[Signal] = ... # minExtentChanged(QVector3D)

    class QGeometryView(PySide6.Qt3DCore.Qt3DCore.QNode):

        firstInstanceChanged     : typing.ClassVar[Signal] = ... # firstInstanceChanged(int)
        firstVertexChanged       : typing.ClassVar[Signal] = ... # firstVertexChanged(int)
        geometryChanged          : typing.ClassVar[Signal] = ... # geometryChanged(QGeometry*)
        indexBufferByteOffsetChanged: typing.ClassVar[Signal] = ... # indexBufferByteOffsetChanged(int)
        indexOffsetChanged       : typing.ClassVar[Signal] = ... # indexOffsetChanged(int)
        instanceCountChanged     : typing.ClassVar[Signal] = ... # instanceCountChanged(int)
        primitiveRestartEnabledChanged: typing.ClassVar[Signal] = ... # primitiveRestartEnabledChanged(bool)
        primitiveTypeChanged     : typing.ClassVar[Signal] = ... # primitiveTypeChanged(PrimitiveType)
        restartIndexValueChanged : typing.ClassVar[Signal] = ... # restartIndexValueChanged(int)
        vertexCountChanged       : typing.ClassVar[Signal] = ... # vertexCountChanged(int)
        verticesPerPatchChanged  : typing.ClassVar[Signal] = ... # verticesPerPatchChanged(int)

        class PrimitiveType(enum.Enum):

            Points                    = 0x0
            Lines                     = 0x1
            LineLoop                  = 0x2
            LineStrip                 = 0x3
            Triangles                 = 0x4
            TriangleStrip             = 0x5
            TriangleFan               = 0x6
            LinesAdjacency            = 0xa
            LineStripAdjacency        = 0xb
            TrianglesAdjacency        = 0xc
            TriangleStripAdjacency    = 0xd
            Patches                   = 0xe


    class QJoint(PySide6.Qt3DCore.Qt3DCore.QNode):

        inverseBindMatrixChanged : typing.ClassVar[Signal] = ... # inverseBindMatrixChanged(QMatrix4x4)
        nameChanged              : typing.ClassVar[Signal] = ... # nameChanged(QString)
        rotationChanged          : typing.ClassVar[Signal] = ... # rotationChanged(QQuaternion)
        rotationXChanged         : typing.ClassVar[Signal] = ... # rotationXChanged(float)
        rotationYChanged         : typing.ClassVar[Signal] = ... # rotationYChanged(float)
        rotationZChanged         : typing.ClassVar[Signal] = ... # rotationZChanged(float)
        scaleChanged             : typing.ClassVar[Signal] = ... # scaleChanged(QVector3D)
        translationChanged       : typing.ClassVar[Signal] = ... # translationChanged(QVector3D)

    class QNode(PySide6.QtCore.QObject):

        enabledChanged           : typing.ClassVar[Signal] = ... # enabledChanged(bool)
        nodeDestroyed            : typing.ClassVar[Signal] = ... # nodeDestroyed()
        parentChanged            : typing.ClassVar[Signal] = ... # parentChanged(QObject*)

    class QNodeId(Shiboken.Object): ...
        def __repr__(self, /) -> str: ...

    class QNodeIdTypePair(Shiboken.Object): ...

    class QSkeleton(PySide6.Qt3DCore.Qt3DCore.QAbstractSkeleton):

        rootJointChanged         : typing.ClassVar[Signal] = ... # rootJointChanged(Qt3DCore::QJoint*)

    class QSkeletonLoader(PySide6.Qt3DCore.Qt3DCore.QAbstractSkeleton):

        createJointsEnabledChanged: typing.ClassVar[Signal] = ... # createJointsEnabledChanged(bool)
        rootJointChanged         : typing.ClassVar[Signal] = ... # rootJointChanged(Qt3DCore::QJoint*)
        sourceChanged            : typing.ClassVar[Signal] = ... # sourceChanged(QUrl)
        statusChanged            : typing.ClassVar[Signal] = ... # statusChanged(Status)

        class Status(enum.Enum):

            NotReady                  = 0x0
            Ready                     = 0x1
            Error                     = 0x2


    class QTransform(PySide6.Qt3DCore.Qt3DCore.QComponent):

        matrixChanged            : typing.ClassVar[Signal] = ... # matrixChanged()
        rotationChanged          : typing.ClassVar[Signal] = ... # rotationChanged(QQuaternion)
        rotationXChanged         : typing.ClassVar[Signal] = ... # rotationXChanged(float)
        rotationYChanged         : typing.ClassVar[Signal] = ... # rotationYChanged(float)
        rotationZChanged         : typing.ClassVar[Signal] = ... # rotationZChanged(float)
        scale3DChanged           : typing.ClassVar[Signal] = ... # scale3DChanged(QVector3D)
        scaleChanged             : typing.ClassVar[Signal] = ... # scaleChanged(float)
        translationChanged       : typing.ClassVar[Signal] = ... # translationChanged(QVector3D)
        worldMatrixChanged       : typing.ClassVar[Signal] = ... # worldMatrixChanged(QMatrix4x4)


# eof
