58 lines · 1.8 KB · C
RawDownload
////  ObjectActionTractor.h//  libraries/physics/src////  Created by Seth Alves 2017-5-8//  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_ObjectActionTractor_h#define hifi_ObjectActionTractor_h #include "ObjectAction.h" class ObjectActionTractor : public ObjectAction {public:    ObjectActionTractor(const QUuid& id, EntityItemPointer ownerEntity);    virtual ~ObjectActionTractor();     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,                           float& linearTimeScale, float& angularTimeScale); protected:    static const uint16_t tractorVersion;     glm::vec3 _positionalTarget;    glm::vec3 _desiredPositionalTarget;    glm::vec3 _lastPositionTarget;    float _linearTimeScale;    bool _positionalTargetSet;    bool _havePositionTargetHistory { false };     glm::quat _rotationalTarget;    glm::quat _desiredRotationalTarget;    float _angularTimeScale;    bool _rotationalTargetSet;     glm::vec3 _linearVelocityTarget;    glm::vec3 _angularVelocityTarget;     virtual bool prepareForTractorUpdate(btScalar deltaTimeStep);     void serializeParameters(QDataStream& dataStream) const;    void deserializeParameters(QByteArray serializedArguments, QDataStream& dataStream);}; #endif // hifi_ObjectActionTractor_h