//// 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
//
// 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