// qanimationcontroller.sip generated by MetaSIP
//
// This file is part of the Qt3DAnimation Python extension module.
//
// Copyright (c) 2024 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt6-3D.
// 
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file.  Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
// 
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license.  For more information contact
// info@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


namespace Qt3DAnimation
{
%TypeHeaderCode
#include <qanimationcontroller.h>
%End

    class QAnimationController : public QObject
    {
%TypeHeaderCode
#include <qanimationcontroller.h>
%End

    public:
        QAnimationController(QObject *parent /TransferThis/ = 0);
        QList<Qt3DAnimation::QAnimationGroup *> animationGroupList();
        int activeAnimationGroup() const;
        float position() const;
        float positionScale() const;
        float positionOffset() const;
        Qt3DCore::QEntity *entity() const;
        bool recursive() const;
        void setAnimationGroups(const QList<Qt3DAnimation::QAnimationGroup *> &animationGroups);
        void addAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroups);
        void removeAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroups);
        int getAnimationIndex(const QString &name) const;
        Qt3DAnimation::QAnimationGroup *getGroup(int index) const;

    public slots:
        void setActiveAnimationGroup(int index);
        void setPosition(float position);
        void setPositionScale(float scale);
        void setPositionOffset(float offset);
        void setEntity(Qt3DCore::QEntity *entity);
        void setRecursive(bool recursive);

    signals:
        void activeAnimationGroupChanged(int index);
        void positionChanged(float position);
        void positionScaleChanged(float scale);
        void positionOffsetChanged(float offset);
        void entityChanged(Qt3DCore::QEntity *entity);
        void recursiveChanged(bool recursive);
    };
};
