Overte C++ Documentation
ObjectAction.h
1 //
2 // ObjectAction.h
3 // libraries/physics/src
4 //
5 // Created by Seth Alves 2015-6-2
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 // http://bulletphysics.org/Bullet/BulletFull/classbtActionInterface.html
12 
13 #ifndef hifi_ObjectAction_h
14 #define hifi_ObjectAction_h
15 
16 #include <QUuid>
17 #include <btBulletDynamicsCommon.h>
18 #include "ObjectDynamic.h"
19 
20 class ObjectAction : public btActionInterface, public ObjectDynamic {
21 public:
22  ObjectAction(EntityDynamicType type, const QUuid& id, EntityItemPointer ownerEntity);
23  virtual ~ObjectAction() {}
24 
25  virtual bool isAction() const override { return true; }
26 
27  // this is called from updateAction and should be overridden by subclasses
28  virtual void updateActionWorker(float deltaTimeStep) = 0;
29 
30  // these are from btActionInterface
31  virtual void updateAction(btCollisionWorld* collisionWorld, btScalar deltaTimeStep) override;
32  virtual void debugDraw(btIDebugDraw* debugDrawer) override;
33 };
34 
35 #endif // hifi_ObjectAction_h