- Qt 6.12
- Qt 3D
- C++ Classes
- Qt3DAnimation (Deprecated)
- QAnimationController
- Qt 6.12.0 Reference Documentation

# Qt3DAnimation::QAnimationController Class

class Qt3DAnimation::QAnimationController

A controller class for animations. More...

Header: | `#include <qanimationcontroller.h>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS 3danimation)` `target_link_libraries(mytarget PRIVATE Qt6::3danimation)`
qmake: | `QT += 3danimation`
In QML: | AnimationController
Inherits: | QObject
Status: | Technology preview

This class is in technology preview and is subject to change.

- List of all members, including inherited members

## Properties

activeAnimationGroup : int entity : Qt3DCore::QEntity* position : float | positionOffset : float positionScale : float recursive : bool

## Public Functions

| QAnimationController(QObject *parent = nullptr)
int | activeAnimationGroup() const
void | addAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)
QList<Qt3DAnimation::QAnimationGroup *> | animationGroupList()
Qt3DCore::QEntity * | entity() const
int | getAnimationIndex(const QString &name) const
Qt3DAnimation::QAnimationGroup * | getGroup(int index) const
float | position() const
float | positionOffset() const
float | positionScale() const
bool | recursive() const
void | removeAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)
void | setAnimationGroups(const QList<Qt3DAnimation::QAnimationGroup *> &animationGroups)

## Public Slots

void | setActiveAnimationGroup(int index)
void | setEntity(Qt3DCore::QEntity *entity)
void | setPosition(float position)
void | setPositionOffset(float offset)
void | setPositionScale(float scale)
void | setRecursive(bool recursive)

## Signals

void | activeAnimationGroupChanged(int index)
void | entityChanged(Qt3DCore::QEntity *entity)
void | positionChanged(float position)
void | positionOffsetChanged(float offset)
void | positionScaleChanged(float scale)
void | recursiveChanged(bool recursive)

## Detailed Description

Qt3DAnimation::QAnimationController class controls the selection and playback of animations. The class can be used to find all animations from Qt3DCore::QEntity tree and create QAnimationGroups from the animations with the same name. The user can select which animation group is currently controlled with the animation controller by setting the active animation. The animation position is then propagated to that group after scaling and offsetting the provided position value with the positionScale and positionOffset values.

Note: that the animation controller doesn't have internal timer, but instead the user is responsible for updating the position property in timely manner.

## Property Documentation

### activeAnimationGroup : int

Holds the currectly active animation group.

Access functions:

int | activeAnimationGroup() const
void | setActiveAnimationGroup(int index)

Notifier signal:

void | activeAnimationGroupChanged(int index)

### entity : Qt3DCore::QEntity*

Holds the entity animations are gathered and grouped from. If the controller already holds animations, they are cleared.

Access functions:

Qt3DCore::QEntity * | entity() const
void | setEntity(Qt3DCore::QEntity *entity)

Notifier signal:

void | entityChanged(Qt3DCore::QEntity *entity)

### position : float

Holds the current position of the animation. When the position is set, it is scaled and offset with positionScale/positionOffset and propagated to the active animation group.

Access functions:

float | position() const
void | setPosition(float position)

Notifier signal:

void | positionChanged(float position)

### positionOffset : float

Holds the position offset of the animation.

Access functions:

float | positionOffset() const
void | setPositionOffset(float offset)

Notifier signal:

void | positionOffsetChanged(float offset)

### positionScale : float

Holds the position scale of the animation.

Access functions:

float | positionScale() const
void | setPositionScale(float scale)

Notifier signal:

void | positionScaleChanged(float scale)

### recursive : bool

Holds whether the recursively search the entity tree when gathering animations from the entity. If set to true, the animations are searched also from the child entities of the entity. If set to false, only the entity passed to the controller is searched.

Access functions:

bool | recursive() const
void | setRecursive(bool recursive)

Notifier signal:

void | recursiveChanged(bool recursive)

## Member Function Documentation

### QAnimationController::QAnimationController(QObject *parent = nullptr)

Constructs a new QAnimationController with parent.

### void QAnimationController::addAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)

Adds the given animationGroup to the controller.

### QList<Qt3DAnimation::QAnimationGroup *> QAnimationController::animationGroupList()

Returns the list of animation groups the conroller is currently holding.

### `[invokable]` int QAnimationController::getAnimationIndex(const QString &name) const

Returns the index of the animation with name. Returns -1 if no AnimationGroup with the given name is found.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` Qt3DAnimation::QAnimationGroup *QAnimationController::getGroup(int index) const

Returns the AnimationGroup with the given index.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QAnimationController::removeAnimationGroup(Qt3DAnimation::QAnimationGroup *animationGroup)

Removes the given animationGroup from the controller.

### void QAnimationController::setAnimationGroups(const QList<Qt3DAnimation::QAnimationGroup *> &animationGroups)

Sets the animationGroups for the controller. Old groups are cleared.