Terminus
|
The Projectile class simulates and renders a projectile. It also handles collisions with Wagons, deals damage and spawns Explosions. More...
#include <projectile.h>
Public Member Functions | |
Projectile (World &world) | |
virtual | ~Projectile () |
virtual void | localUpdate () override |
override this method to update this objects state More... | |
virtual void | onCollisionWith (AbstractPhysicsObject *other) override |
Gets called on collision with another AbstractPhysicsObject. More... | |
Public Member Functions inherited from terminus::DynamicPhysicsObject | |
DynamicPhysicsObject (World &world) | |
virtual void | setLinearVelocity (const QVector3D &velocity) |
Set the object's velocity, discarding any previously applied forces. More... | |
virtual void | addLinearVelocity (const QVector3D &velocity) |
Add a velocity to the object's own velocity. More... | |
Public Member Functions inherited from terminus::AbstractPhysicsObject | |
AbstractPhysicsObject (World &world) | |
virtual void | moveTo (const QVector3D &newPosition) |
Moves object to new position. More... | |
virtual void | setSpawnedLocally (bool spawnedLocally) |
Set whether this PhysicsObject originated in this local game instance or in a remote instance. More... | |
Public Member Functions inherited from terminus::AbstractGraphicsObject | |
AbstractGraphicsObject (World &world) | |
virtual | ~AbstractGraphicsObject () |
virtual void | update () final |
update object hierarchy beginning at this object More... | |
virtual void | render (QOpenGLFunctions &gl) final |
render object hierarchy beginning at this object More... | |
virtual void | bindCamera (Camera *camera) |
binds a camera to track this object More... | |
virtual void | unbindCamera (Camera *camera) |
release a camera so that it wont track this object any longer More... | |
virtual void | onBindCamera () |
override this method to perform specific actions once a camera has been bound More... | |
virtual void | onUnbindCamera () |
override this method to perform specific actions once a camera has been released More... | |
virtual void | adjustCamera () |
override this method to adjust the parameters of a bound camera according to this objects own state More... | |
virtual void | moveEvent (QVector3D movement) |
override this method to react to move events received by a bound camera More... | |
virtual void | rotateEvent (QVector2D rotation) |
override this method to react to rotate events received by a bound camera More... | |
const QVector3D & | minBB () const |
const QVector3D & | maxBB () const |
QVector3D | worldUp () |
QVector3D | worldFront () |
QVector3D | worldSide () |
QVector3D | position () const |
QQuaternion | rotation () const |
QVector3D | scale () const |
QMatrix4x4 | modelMatrix () const |
QMatrix4x4 | modelMatrixInverted () const |
Protected Member Functions | |
float | damage () const |
int | maxAgeInMilliseconds () const |
virtual short | myCollisionType () const override |
The collision group that this object is member of. More... | |
virtual short | possibleCollisionTypes () const override |
The groups of objects that this object will collide with. More... | |
Protected Member Functions inherited from terminus::AbstractPhysicsObject | |
virtual void | initializePhysics (btCollisionShape *collisionShape, btScalar mass) |
virtual void | deallocatePhysics () |
Protected Member Functions inherited from terminus::AbstractGraphicsObject | |
virtual void | localRender (QOpenGLFunctions &gl) const |
this method contains the default render code using m_geometry, m_program and m_material More... | |
virtual void | localRenderSetup (QOpenGLFunctions &gl, Program &program) const |
override this method to customize the rendering process More... | |
virtual void | localRenderCleanup (QOpenGLFunctions &gl, Program &program) const |
override this method to customize the rendering process More... | |
virtual bool | localRenderEnabled () const |
override this method to disable or enable rendering conditionally More... | |
virtual void | doForAllChildren (std::function< void(AbstractGraphicsObject &)> callback) |
override this method to make child objects known More... | |
void | setPosition (const QVector3D &position) |
sets the position and invalidates the model matrices More... | |
void | setRotation (const QQuaternion &rotation) |
sets the rotation and invalidates the model matrices More... | |
void | setScale (const QVector3D &scale) |
sets the scale and invalidates the model matrices More... | |
void | setScale (float scale) |
sets the scale uniformly on all three axes and invalidates the model matrices More... | |
QVector3D | worldToModel (const QVector3D &vWorld) |
QVector3D | modelToWorld (const QVector3D &vModel) |
void | dispose () |
remove this object from the world and delete it as soon as it is safe to do so More... | |
Protected Attributes | |
Timer::TimerID | m_lifeTimer |
Protected Attributes inherited from terminus::AbstractPhysicsObject | |
std::shared_ptr< BulletWorld > | m_bulletWorld |
Shared pointer to the bullet world that this object lives in. More... | |
std::unique_ptr< btRigidBody > | m_btRigidBody |
bool | m_spawnedLocally |
Protected Attributes inherited from terminus::AbstractGraphicsObject | |
World & | m_world |
bool | m_validState |
Camera * | m_camera |
std::shared_ptr< std::unique_ptr< Program > > | m_program |
std::shared_ptr< std::unique_ptr< Geometry > > | m_geometry |
std::shared_ptr< std::unique_ptr< Material > > | m_material |
QVector3D | m_position |
QQuaternion | m_rotation |
QVector3D | m_scale |
bool | m_modelMatrixChanged |
QMatrix4x4 | m_modelMatrix |
bool | m_modelMatrixInvertedChanged |
QMatrix4x4 | m_modelMatrixInverted |
The Projectile class simulates and renders a projectile. It also handles collisions with Wagons, deals damage and spawns Explosions.
Projectiles have a limited lifetime and disappear if they do not hit a target within that time.
terminus::Projectile::Projectile | ( | World & | world | ) |
|
virtual |
|
protected |
|
overridevirtual |
override this method to update this objects state
Reimplemented from terminus::DynamicPhysicsObject.
|
protected |
|
overrideprotectedvirtual |
The collision group that this object is member of.
Implements terminus::AbstractPhysicsObject.
|
overridevirtual |
Gets called on collision with another AbstractPhysicsObject.
other | AbstractPhysicsObject that we collided with |
This default implementation does nothing and only exists so that subclasses can override it with custom functionality (like dealing damage). Movement changes are handled by bullet.
Reimplemented from terminus::AbstractPhysicsObject.
|
overrideprotectedvirtual |
The groups of objects that this object will collide with.
Implements terminus::AbstractPhysicsObject.
|
protected |