// // AvatarActionFarGrab.h // interface/src/avatar/ // // Created by Seth Alves 2017-4-14 // Copyright 2017 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef hifi_AvatarActionFarGrab_h #define hifi_AvatarActionFarGrab_h #include #include /**jsdoc * The "far-grab" {@link Entities.ActionType|ActionType} moves and rotates an entity to a target position and * orientation, optionally relative to another entity. Collisions between the entity and the user's avatar are disabled during * the far-grab. * It has arguments in addition to the common {@link Entities.ActionArguments|ActionArguments}. * * @typedef {object} Entities.ActionArguments-FarGrab * @property {Vec3} targetPosition=0,0,0 - The target position. * @property {Quat} targetRotation=0,0,0,1 - The target rotation. * @property {Uuid} otherID=null - If an entity ID, the targetPosition and targetRotation are * relative to this entity's position and rotation. * @property {number} linearTimeScale=3.4e+38 - Controls how long it takes for the entity's position to catch up with the * target position. The value is the time for the action to catch up to 1/e = 0.368 of the target value, where the action * is applied using an exponential decay. * @property {number} angularTimeScale=3.4e+38 - Controls how long it takes for the entity's orientation to catch up with the * target orientation. The value is the time for the action to catch up to 1/e = 0.368 of the target value, where the * action is applied using an exponential decay. */ class AvatarActionFarGrab : public ObjectActionTractor { public: AvatarActionFarGrab(const QUuid& id, EntityItemPointer ownerEntity); virtual ~AvatarActionFarGrab(); QByteArray serialize() const override; virtual void deserialize(QByteArray serializedArguments) override; }; #endif // hifi_AvatarActionFarGrab_h