A Cinematicable object is a Movable object which obeys to physics laws.
More...
#include <Cinematicable.h>
|
| Cinematicable (Position position={ 0.0f, 0.0f, 0.0f }, glm::vec3 rotationEuler={ 0.0f, 0.0f, 0.0f }, Mass mass=1.0f, Speed initialSpeed={ 0.0f, 0.0f, 0.0f }, Acceleration initialAcceleration={ 0.0f, 0.0f, 0.0f }, Force internalForce={ 0.0f, 0.0f, 0.0f }, float angularSpeed=0.0f, Field emittedField=Field{ {0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField }) |
|
virtual void | setMass (Mass mass) |
|
virtual Mass | getMass () const |
|
virtual void | setSpeed (Speed speed) |
|
virtual const Speed & | getSpeed () const |
|
virtual void | setAcceleration (Acceleration acceleration) |
|
virtual const Acceleration & | getAcceleration () const |
|
virtual void | setInternalForce (Force internalForce) |
|
virtual const Force & | getInternalForce () const |
|
virtual Field | getEmittedField () |
|
virtual void | setPosition (Position position) override |
|
virtual Cinematicable & | translate (DeltaSpace delta) override |
|
virtual float | getAngularSpeed () const |
|
virtual void | setAngularSpeed (float angularSpeed) |
|
virtual void | addExternalForce (Force externalForce) |
| Sums to the already present external forces the argument. More...
|
|
virtual void | reset (Position position) |
|
virtual void | move (Time elapsedTime) |
| Computes the new position of the object based on its current speed and the forces which are acting on the object. More...
|
|
| Moveable (Position position={ 0.0f, 0.0f, 0.0f }, glm::vec3 rotationEuler={ 0.0f, 0.0f, 0.0f }) |
|
virtual Moveable & | translate (DeltaSpace delta) |
|
virtual const Position & | getPosition () const |
|
virtual void | setPosition (Position position) |
|
virtual Moveable & | rotate (float angle, glm::vec3 axis) |
|
virtual const glm::quat & | getRotation () const |
|
virtual const glm::vec3 & | getRotationEuler () const |
|
virtual void | setRotation (glm::quat rotation) |
|
virtual void | setRotation (glm::vec3 eulerAngles) |
|
std::mutex & | getMutex () |
|
A Cinematicable object is a Movable object which obeys to physics laws.
A Cinematicable object is determined by its position and rotation (since it is a Movable object) and its speed, acceleration. A Cinematicable object can also emit a force Field, and can have an internal force (an engine like force).
◆ Cinematicable()
Vulkan::Physics::Cinematicable::Cinematicable |
( |
Position |
position = { 0.0f, 0.0f, 0.0f } , |
|
|
glm::vec3 |
rotationEuler = { 0.0f, 0.0f, 0.0f } , |
|
|
Mass |
mass = 1.0f , |
|
|
Speed |
initialSpeed = { 0.0f, 0.0f, 0.0f } , |
|
|
Acceleration |
initialAcceleration = { 0.0f, 0.0f, 0.0f } , |
|
|
Force |
internalForce = { 0.0f, 0.0f, 0.0f } , |
|
|
float |
angularSpeed = 0.0f , |
|
|
Field |
emittedField = Field{ {0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField } |
|
) |
| |
|
inline |
◆ addExternalForce()
virtual void Vulkan::Physics::Cinematicable::addExternalForce |
( |
Force |
externalForce | ) |
|
|
inlinevirtual |
Sums to the already present external forces the argument.
External forces are deleted once the move method is called, so they are basically impulse-like forces which act on the object in between 2 frames.
◆ getAcceleration()
virtual const Acceleration & Vulkan::Physics::Cinematicable::getAcceleration |
( |
| ) |
const |
|
inlinevirtual |
◆ getAngularSpeed()
virtual float Vulkan::Physics::Cinematicable::getAngularSpeed |
( |
| ) |
const |
|
inlinevirtual |
◆ getEmittedField()
virtual Field Vulkan::Physics::Cinematicable::getEmittedField |
( |
| ) |
|
|
inlinevirtual |
◆ getInternalForce()
virtual const Force & Vulkan::Physics::Cinematicable::getInternalForce |
( |
| ) |
const |
|
inlinevirtual |
◆ getMass()
virtual Mass Vulkan::Physics::Cinematicable::getMass |
( |
| ) |
const |
|
inlinevirtual |
◆ getSpeed()
virtual const Speed & Vulkan::Physics::Cinematicable::getSpeed |
( |
| ) |
const |
|
inlinevirtual |
◆ move()
virtual void Vulkan::Physics::Cinematicable::move |
( |
Time |
elapsedTime | ) |
|
|
inlinevirtual |
Computes the new position of the object based on its current speed and the forces which are acting on the object.
◆ reset()
virtual void Vulkan::Physics::Cinematicable::reset |
( |
Position |
position | ) |
|
|
inlinevirtual |
◆ setAcceleration()
virtual void Vulkan::Physics::Cinematicable::setAcceleration |
( |
Acceleration |
acceleration | ) |
|
|
inlinevirtual |
◆ setAngularSpeed()
virtual void Vulkan::Physics::Cinematicable::setAngularSpeed |
( |
float |
angularSpeed | ) |
|
|
inlinevirtual |
◆ setInternalForce()
virtual void Vulkan::Physics::Cinematicable::setInternalForce |
( |
Force |
internalForce | ) |
|
|
inlinevirtual |
◆ setMass()
virtual void Vulkan::Physics::Cinematicable::setMass |
( |
Mass |
mass | ) |
|
|
inlinevirtual |
◆ setPosition()
virtual void Vulkan::Physics::Cinematicable::setPosition |
( |
Position |
position | ) |
|
|
inlineoverridevirtual |
◆ setSpeed()
virtual void Vulkan::Physics::Cinematicable::setSpeed |
( |
Speed |
speed | ) |
|
|
inlinevirtual |
◆ translate()
◆ acceleration
◆ angularSpeed
float Vulkan::Physics::Cinematicable::angularSpeed |
|
protected |
◆ emittedField
Field Vulkan::Physics::Cinematicable::emittedField |
|
protected |
◆ impulsiveForce
Force Vulkan::Physics::Cinematicable::impulsiveForce |
|
protected |
◆ internalForce
Force Vulkan::Physics::Cinematicable::internalForce |
|
protected |
◆ mass
Mass Vulkan::Physics::Cinematicable::mass |
|
protected |
◆ speed
Speed Vulkan::Physics::Cinematicable::speed |
|
protected |
The documentation for this class was generated from the following file: