// // AnimationObject.h // libraries/animation/src/ // // Created by Andrzej Kapolka on 4/17/14. // Copyright (c) 2014 High Fidelity, Inc. All rights reserved. // Copyright 2022-2023 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // SPDX-License-Identifier: Apache-2.0 // #ifndef hifi_AnimationObject_h #define hifi_AnimationObject_h #include #include #include "Scriptable.h" class ScriptEngine; /*@jsdoc * Information about an animation resource, created by {@link AnimationCache.getAnimation}. * * @class AnimationObject * @hideconstructor * * @hifi-interface * @hifi-client-entity * @hifi-avatar * @hifi-server-entity * @hifi-assignment-client * * @property {string[]} jointNames - The names of the joints that are animated. Read-only. * @property {AnimationFrameObject[]} frames - The frames in the animation. Read-only. */ /// Scriptable wrapper for animation pointers. class AnimationObject : public QObject, protected Scriptable { Q_OBJECT Q_PROPERTY(QStringList jointNames READ getJointNames) Q_PROPERTY(QVector frames READ getFrames) public: /*@jsdoc * Gets the names of the joints that are animated. * @function AnimationObject.getJointNames * @returns {string[]} The names of the joints that are animated. */ Q_INVOKABLE QStringList getJointNames() const; /*@jsdoc * Gets the frames in the animation. * @function AnimationObject.getFrames * @returns {AnimationFrameObject[]} The frames in the animation. */ Q_INVOKABLE QVector getFrames() const; }; /*@jsdoc * Joint rotations in one frame of an {@link AnimationObject}. * * @class AnimationFrameObject * @hideconstructor * * @hifi-interface * @hifi-client-entity * @hifi-avatar * @hifi-server-entity * @hifi-assignment-client * * @property {Quat[]} rotations - Joint rotations. Read-only. */ /// Scriptable wrapper for animation frames. class AnimationFrameObject : public QObject, protected Scriptable { Q_OBJECT Q_PROPERTY(QVector rotations READ getRotations) public: /*@jsdoc * Gets the joint rotations in the animation frame. * @function AnimationFrameObject.getRotations * @returns {Quat[]} The joint rotations in the animation frame. */ Q_INVOKABLE QVector getRotations() const; }; void registerAnimationTypes(ScriptEngine* engine); void registerAnimationPrototypes(ScriptEngine* engine); #endif // hifi_AnimationObject_h