Overte C++ Documentation
ObjectActionOffset.h
1 //
2 // ObjectActionOffset.h
3 // libraries/physics/src
4 //
5 // Created by Seth Alves 2015-6-17
6 // Copyright 2015 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_ObjectActionOffset_h
13 #define hifi_ObjectActionOffset_h
14 
15 #include <QUuid>
16 
17 #include <EntityItem.h>
18 #include "ObjectAction.h"
19 
20 class ObjectActionOffset : public ObjectAction {
21 public:
22  ObjectActionOffset(const QUuid& id, EntityItemPointer ownerEntity);
23  virtual ~ObjectActionOffset();
24 
25  virtual bool updateArguments(QVariantMap arguments) override;
26  virtual QVariantMap getArguments() override;
27 
28  virtual void updateActionWorker(float deltaTimeStep) override;
29 
30  virtual QByteArray serialize() const override;
31  virtual void deserialize(QByteArray serializedArguments) override;
32 
33  private:
34  static const uint16_t offsetVersion;
35  glm::vec3 _pointToOffsetFrom;
36  float _linearDistance;
37  float _linearTimeScale;
38  bool _positionalTargetSet;
39 };
40 
41 #endif // hifi_ObjectActionOffset_h