#############################################################################
##
## Copyright (C) 2020 The Qt Company Ltd.
## Contact: https://www.qt.io/licensing/
##
## This file is part of Qt for Python.
##
## $QT_BEGIN_LICENSE:LGPL$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see https://www.qt.io/terms-conditions. For further
## information use the contact form at https://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 3 as published by the Free Software
## Foundation and appearing in the file LICENSE.LGPL3 included in the
## packaging of this file. Please review the following information to
## ensure the GNU Lesser General Public License version 3 requirements
## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
##
## GNU General Public License Usage
## Alternatively, this file may be used under the terms of the GNU
## General Public License version 2.0 or (at your option) the GNU General
## Public license version 3 or any later version approved by the KDE Free
## Qt Foundation. The licenses are as published by the Free Software
## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
## included in the packaging of this file. Please review the following
## information to ensure the GNU General Public License requirements will
## be met: https://www.gnu.org/licenses/gpl-2.0.html and
## https://www.gnu.org/licenses/gpl-3.0.html.
##
## $QT_END_LICENSE$
##
#############################################################################
from __future__ import annotations

"""
This file contains the exact signatures for all functions in module
PySide2.Qt3DAnimation, except for defaults which are replaced by "...".
"""

# Module PySide2.Qt3DAnimation
import PySide2
try:
    import typing
except ImportError:
    from PySide2.support.signature import typing
from PySide2.support.signature.mapping import (
    Virtual, Missing, Invalid, Default, Instance)

from shiboken2 import Shiboken

import PySide2.QtCore
import PySide2.QtGui
import PySide2.Qt3DCore
import PySide2.Qt3DRender
import PySide2.Qt3DAnimation


class Qt3DAnimation(Shiboken.Object):

    class QAbstractAnimation(PySide2.QtCore.QObject):
        KeyframeAnimation        : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x1
        MorphingAnimation        : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x2
        VertexBlendAnimation     : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x3

        class AnimationType(Shiboken.Enum):
            KeyframeAnimation        : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x1
            MorphingAnimation        : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x2
            VertexBlendAnimation     : Qt3DAnimation.QAbstractAnimation.AnimationType = ... # 0x3
        def animationName(self) -> str: ...
        def animationType(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation.AnimationType: ...
        def duration(self) -> float: ...
        def position(self) -> float: ...
        def setAnimationName(self, name: str) -> None: ...
        def setDuration(self, duration: float) -> None: ...
        def setPosition(self, position: float) -> None: ...

    class QAbstractAnimationClip(PySide2.Qt3DCore.QNode):
        def duration(self) -> float: ...

    class QAbstractChannelMapping(PySide2.Qt3DCore.QNode): ...

    class QAbstractClipAnimator(PySide2.Qt3DCore.QComponent):
        Infinite                 : Qt3DAnimation.QAbstractClipAnimator.Loops = ... # -0x1

        class Loops(Shiboken.Enum):
            Infinite                 : Qt3DAnimation.QAbstractClipAnimator.Loops = ... # -0x1

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def clock(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QClock: ...
        def isRunning(self) -> bool: ...
        def loopCount(self) -> int: ...
        def normalizedTime(self) -> float: ...
        def setClock(self, clock: PySide2.Qt3DAnimation.Qt3DAnimation.QClock) -> None: ...
        def setLoopCount(self, loops: int) -> None: ...
        def setNormalizedTime(self, timeFraction: float) -> None: ...
        def setRunning(self, running: bool) -> None: ...
        def start(self) -> None: ...
        def stop(self) -> None: ...

    class QAbstractClipBlendNode(PySide2.Qt3DCore.QNode):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...


    class QAdditiveClipBlend(PySide2.Qt3DAnimation.QAbstractClipBlendNode):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def additiveClip(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode: ...
        def additiveFactor(self) -> float: ...
        def baseClip(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode: ...
        def setAdditiveClip(self, additiveClip: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode) -> None: ...
        def setAdditiveFactor(self, additiveFactor: float) -> None: ...
        def setBaseClip(self, baseClip: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode) -> None: ...

    class QAnimationAspect(PySide2.Qt3DCore.QAbstractAspect):

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...


    class QAnimationCallback(Shiboken.Object):
        OnOwningThread           : Qt3DAnimation.QAnimationCallback.Flag = ... # 0x0
        OnThreadPool             : Qt3DAnimation.QAnimationCallback.Flag = ... # 0x1

        class Flag(Shiboken.Enum):
            OnOwningThread           : Qt3DAnimation.QAnimationCallback.Flag = ... # 0x0
            OnThreadPool             : Qt3DAnimation.QAnimationCallback.Flag = ... # 0x1

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

        def valueChanged(self, value: typing.Any) -> None: ...

    class QAnimationClip(PySide2.Qt3DAnimation.QAbstractAnimationClip):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...


    class QAnimationClipLoader(PySide2.Qt3DAnimation.QAbstractAnimationClip):
        NotReady                 : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x0
        Ready                    : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x1
        Error                    : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x2

        class Status(Shiboken.Enum):
            NotReady                 : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x0
            Ready                    : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x1
            Error                    : Qt3DAnimation.QAnimationClipLoader.Status = ... # 0x2

        @typing.overload
        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...
        @typing.overload
        def __init__(self, source: PySide2.QtCore.QUrl, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def setSource(self, source: PySide2.QtCore.QUrl) -> None: ...
        def source(self) -> PySide2.QtCore.QUrl: ...
        def status(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationClipLoader.Status: ...

    class QAnimationController(PySide2.QtCore.QObject):

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def activeAnimationGroup(self) -> int: ...
        def addAnimationGroup(self, animationGroups: PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup) -> None: ...
        def animationGroupList(self) -> typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup]: ...
        def entity(self) -> PySide2.Qt3DCore.Qt3DCore.QEntity: ...
        def getAnimationIndex(self, name: str) -> int: ...
        def getGroup(self, index: int) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup: ...
        def position(self) -> float: ...
        def positionOffset(self) -> float: ...
        def positionScale(self) -> float: ...
        def recursive(self) -> bool: ...
        def removeAnimationGroup(self, animationGroups: PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup) -> None: ...
        def setActiveAnimationGroup(self, index: int) -> None: ...
        def setAnimationGroups(self, animationGroups: typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAnimationGroup]) -> None: ...
        def setEntity(self, entity: PySide2.Qt3DCore.Qt3DCore.QEntity) -> None: ...
        def setPosition(self, position: float) -> None: ...
        def setPositionOffset(self, offset: float) -> None: ...
        def setPositionScale(self, scale: float) -> None: ...
        def setRecursive(self, recursive: bool) -> None: ...

    class QAnimationGroup(PySide2.QtCore.QObject):

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def addAnimation(self, animation: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation) -> None: ...
        def animationList(self) -> typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation]: ...
        def duration(self) -> float: ...
        def name(self) -> str: ...
        def position(self) -> float: ...
        def removeAnimation(self, animation: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation) -> None: ...
        def setAnimations(self, animations: typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimation]) -> None: ...
        def setName(self, name: str) -> None: ...
        def setPosition(self, position: float) -> None: ...

    class QBlendedClipAnimator(PySide2.Qt3DAnimation.QAbstractClipAnimator):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def blendTree(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode: ...
        def setBlendTree(self, blendTree: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode) -> None: ...

    class QClipAnimator(PySide2.Qt3DAnimation.QAbstractClipAnimator):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def clip(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip: ...
        def setClip(self, clip: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractAnimationClip) -> None: ...

    class QClock(PySide2.Qt3DCore.QNode):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def playbackRate(self) -> float: ...
        def setPlaybackRate(self, playbackRate: float) -> None: ...

    class QKeyFrame(Shiboken.Object):
        ConstantInterpolation    : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x0
        LinearInterpolation      : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x1
        BezierInterpolation      : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x2

        class InterpolationType(Shiboken.Enum):
            ConstantInterpolation    : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x0
            LinearInterpolation      : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x1
            BezierInterpolation      : Qt3DAnimation.QKeyFrame.InterpolationType = ... # 0x2

        @typing.overload
        def __init__(self) -> None: ...
        @typing.overload
        def __init__(self, coords: PySide2.QtGui.QVector2D) -> None: ...
        @typing.overload
        def __init__(self, coords: PySide2.QtGui.QVector2D, lh: PySide2.QtGui.QVector2D, rh: PySide2.QtGui.QVector2D) -> None: ...

        def coordinates(self) -> PySide2.QtGui.QVector2D: ...
        def interpolationType(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType: ...
        def leftControlPoint(self) -> PySide2.QtGui.QVector2D: ...
        def rightControlPoint(self) -> PySide2.QtGui.QVector2D: ...
        def setCoordinates(self, coords: PySide2.QtGui.QVector2D) -> None: ...
        def setInterpolationType(self, interp: PySide2.Qt3DAnimation.Qt3DAnimation.QKeyFrame.InterpolationType) -> None: ...
        def setLeftControlPoint(self, lh: PySide2.QtGui.QVector2D) -> None: ...
        def setRightControlPoint(self, rh: PySide2.QtGui.QVector2D) -> None: ...

    class QKeyframeAnimation(PySide2.Qt3DAnimation.QAbstractAnimation):
        None_                    : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x0
        Constant                 : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x1
        Repeat                   : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x2

        class RepeatMode(Shiboken.Enum):
            None_                    : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x0
            Constant                 : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x1
            Repeat                   : Qt3DAnimation.QKeyframeAnimation.RepeatMode = ... # 0x2

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def addKeyframe(self, keyframe: PySide2.Qt3DCore.Qt3DCore.QTransform) -> None: ...
        def easing(self) -> PySide2.QtCore.QEasingCurve: ...
        def endMode(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode: ...
        def framePositions(self) -> typing.List[float]: ...
        def keyframeList(self) -> typing.List[PySide2.Qt3DCore.Qt3DCore.QTransform]: ...
        def removeKeyframe(self, keyframe: PySide2.Qt3DCore.Qt3DCore.QTransform) -> None: ...
        def setEasing(self, easing: PySide2.QtCore.QEasingCurve) -> None: ...
        def setEndMode(self, mode: PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode) -> None: ...
        def setFramePositions(self, positions: typing.List[float]) -> None: ...
        def setKeyframes(self, keyframes: typing.List[PySide2.Qt3DCore.Qt3DCore.QTransform]) -> None: ...
        def setStartMode(self, mode: PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode) -> None: ...
        def setTarget(self, target: PySide2.Qt3DCore.Qt3DCore.QTransform) -> None: ...
        def setTargetName(self, name: str) -> None: ...
        def startMode(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QKeyframeAnimation.RepeatMode: ...
        def target(self) -> PySide2.Qt3DCore.Qt3DCore.QTransform: ...
        def targetName(self) -> str: ...

    class QLerpClipBlend(PySide2.Qt3DAnimation.QAbstractClipBlendNode):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def blendFactor(self) -> float: ...
        def endClip(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode: ...
        def setBlendFactor(self, blendFactor: float) -> None: ...
        def setEndClip(self, endClip: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode) -> None: ...
        def setStartClip(self, startClip: PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode) -> None: ...
        def startClip(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QAbstractClipBlendNode: ...

    class QMorphTarget(PySide2.QtCore.QObject):

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def addAttribute(self, attribute: PySide2.Qt3DRender.Qt3DRender.QAttribute) -> None: ...
        def attributeList(self) -> typing.List[PySide2.Qt3DRender.Qt3DRender.QAttribute]: ...
        def attributeNames(self) -> typing.List[str]: ...
        @staticmethod
        def fromGeometry(geometry: PySide2.Qt3DRender.Qt3DRender.QGeometry, attributes: typing.Sequence[str]) -> PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget: ...
        def removeAttribute(self, attribute: PySide2.Qt3DRender.Qt3DRender.QAttribute) -> None: ...
        def setAttributes(self, attributes: typing.List[PySide2.Qt3DRender.Qt3DRender.QAttribute]) -> None: ...

    class QMorphingAnimation(PySide2.Qt3DAnimation.QAbstractAnimation):
        Normalized               : Qt3DAnimation.QMorphingAnimation.Method = ... # 0x0
        Relative                 : Qt3DAnimation.QMorphingAnimation.Method = ... # 0x1

        class Method(Shiboken.Enum):
            Normalized               : Qt3DAnimation.QMorphingAnimation.Method = ... # 0x0
            Relative                 : Qt3DAnimation.QMorphingAnimation.Method = ... # 0x1

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def addMorphTarget(self, target: PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget) -> None: ...
        def easing(self) -> PySide2.QtCore.QEasingCurve: ...
        def getWeights(self, positionIndex: int) -> typing.List[float]: ...
        def interpolator(self) -> float: ...
        def method(self) -> PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method: ...
        def morphTargetList(self) -> typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]: ...
        def removeMorphTarget(self, target: PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget) -> None: ...
        def setEasing(self, easing: PySide2.QtCore.QEasingCurve) -> None: ...
        def setMethod(self, method: PySide2.Qt3DAnimation.Qt3DAnimation.QMorphingAnimation.Method) -> None: ...
        def setMorphTargets(self, targets: typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]) -> None: ...
        def setTarget(self, target: PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer) -> None: ...
        def setTargetName(self, name: str) -> None: ...
        def setTargetPositions(self, targetPositions: typing.List[float]) -> None: ...
        def setWeights(self, positionIndex: int, weights: typing.List[float]) -> None: ...
        def target(self) -> PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer: ...
        def targetName(self) -> str: ...
        def targetPositions(self) -> typing.List[float]: ...

    class QSkeletonMapping(PySide2.Qt3DAnimation.QAbstractChannelMapping):

        def __init__(self, parent: typing.Optional[PySide2.Qt3DCore.Qt3DCore.QNode] = ...) -> None: ...

        def setSkeleton(self, skeleton: PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton) -> None: ...
        def skeleton(self) -> PySide2.Qt3DCore.Qt3DCore.QAbstractSkeleton: ...

    class QVertexBlendAnimation(PySide2.Qt3DAnimation.QAbstractAnimation):

        def __init__(self, parent: typing.Optional[PySide2.QtCore.QObject] = ...) -> None: ...

        def addMorphTarget(self, target: PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget) -> None: ...
        def interpolator(self) -> float: ...
        def morphTargetList(self) -> typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]: ...
        def removeMorphTarget(self, target: PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget) -> None: ...
        def setMorphTargets(self, targets: typing.List[PySide2.Qt3DAnimation.Qt3DAnimation.QMorphTarget]) -> None: ...
        def setTarget(self, target: PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer) -> None: ...
        def setTargetName(self, name: str) -> None: ...
        def setTargetPositions(self, targetPositions: typing.List[float]) -> None: ...
        def target(self) -> PySide2.Qt3DRender.Qt3DRender.QGeometryRenderer: ...
        def targetName(self) -> str: ...
        def targetPositions(self) -> typing.List[float]: ...

# eof
