52 lines · 1.5 KB · C
RawDownload
////  ObjectActionSpring.h//  libraries/physics/src////  Created by Seth Alves 2015-6-5//  Copyright 2015 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_ObjectActionSpring_h#define hifi_ObjectActionSpring_h #include "ObjectAction.h" class ObjectActionSpring : public ObjectAction {public:    ObjectActionSpring(const QUuid& id, EntityItemPointer ownerEntity);    virtual ~ObjectActionSpring();     virtual bool updateArguments(QVariantMap arguments) override;    virtual QVariantMap getArguments() override;     virtual void updateActionWorker(float deltaTimeStep) override;     virtual QByteArray serialize() const override;    virtual void deserialize(QByteArray serializedArguments) override;     virtual bool getTarget(float deltaTimeStep, glm::quat& rotation, glm::vec3& position,                           glm::vec3& linearVelocity, glm::vec3& angularVelocity); protected:    static const uint16_t springVersion;     glm::vec3 _positionalTarget;    glm::vec3 _desiredPositionalTarget;    float _linearTimeScale;    bool _positionalTargetSet;     glm::quat _rotationalTarget;    glm::quat _desiredRotationalTarget;    float _angularTimeScale;    bool _rotationalTargetSet;     glm::vec3 _linearVelocityTarget;    glm::vec3 _angularVelocityTarget;     virtual bool prepareForSpringUpdate(btScalar deltaTimeStep);}; #endif // hifi_ObjectActionSpring_h