Terminus
abstractphysicsobject.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
7 
8 namespace terminus
9 {
10 
22 {
23 public:
25 
30  virtual void moveTo(const QVector3D & newPosition);
31 
39  virtual void onCollisionWith(AbstractPhysicsObject * other);
40 
45  virtual void setSpawnedLocally(bool spawnedLocally);
46 
47 protected:
48  virtual void initializePhysics(btCollisionShape * collisionShape, btScalar mass);
49  virtual void deallocatePhysics();
50 
56  virtual short myCollisionType() const = 0;
57 
63  virtual short possibleCollisionTypes() const = 0;
64 
65 protected:
73  std::shared_ptr<BulletWorld> m_bulletWorld;
74  std::unique_ptr<btRigidBody> m_btRigidBody;
76 };
77 
78 }
std::shared_ptr< BulletWorld > m_bulletWorld
Shared pointer to the bullet world that this object lives in.
Definition: abstractphysicsobject.h:73
std::unique_ptr< btRigidBody > m_btRigidBody
Definition: abstractphysicsobject.h:74
virtual void deallocatePhysics()
Definition: abstractphysicsobject.cpp:41
virtual short possibleCollisionTypes() const =0
The groups of objects that this object will collide with.
bool m_spawnedLocally
Definition: abstractphysicsobject.h:75
virtual void moveTo(const QVector3D &newPosition)
Moves object to new position.
Definition: abstractphysicsobject.cpp:18
The AbstractPhysicsObject class represents a graphical scene element with a physics-based aspect...
Definition: abstractphysicsobject.h:21
virtual void onCollisionWith(AbstractPhysicsObject *other)
Gets called on collision with another AbstractPhysicsObject.
Definition: abstractphysicsobject.cpp:54
The AbstractGraphicsObject class is the root of a class hierarchy of objects that contain independen ...
Definition: abstractgraphicsobject.h:27
AbstractPhysicsObject(World &world)
Definition: abstractphysicsobject.cpp:11
virtual void setSpawnedLocally(bool spawnedLocally)
Set whether this PhysicsObject originated in this local game instance or in a remote instance...
Definition: abstractphysicsobject.cpp:59
virtual short myCollisionType() const =0
The collision group that this object is member of.
The World class represents a running game instance and contains all graphical (3D) elements of the sc...
Definition: world.h:46
virtual void initializePhysics(btCollisionShape *collisionShape, btScalar mass)
Definition: abstractphysicsobject.cpp:25
Definition: eventhandler.cpp:18