1#ifndef VULKAN_CINEMATICABLE
2#define VULKAN_CINEMATICABLE
24 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 }) :
99 speed = { 0.0f, 0.0f, 0.0f };
111 if (
float(
mass) == std::numeric_limits<float>::max()/10.0f) {
Definition: Foundations.h:254
A Cinematicable object is a Movable object which obeys to physics laws.
Definition: Cinematicable.h:21
virtual void setPosition(Position position) override
Definition: Cinematicable.h:66
Speed speed
Definition: Cinematicable.h:125
virtual void setAngularSpeed(float angularSpeed)
Definition: Cinematicable.h:83
Acceleration acceleration
Definition: Cinematicable.h:126
virtual void setMass(Mass mass)
Definition: Cinematicable.h:30
virtual float getAngularSpeed() const
Definition: Cinematicable.h:78
float angularSpeed
Definition: Cinematicable.h:130
virtual void reset(Position position)
Definition: Cinematicable.h:97
virtual Cinematicable & translate(DeltaSpace delta) override
Definition: Cinematicable.h:72
virtual void move(Time elapsedTime)
Computes the new position of the object based on its current speed and the forces which are acting on...
Definition: Cinematicable.h:109
virtual Mass getMass() const
Definition: Cinematicable.h:34
Mass mass
Definition: Cinematicable.h:124
virtual const Speed & getSpeed() const
Definition: Cinematicable.h:42
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 })
Definition: Cinematicable.h:24
virtual const Acceleration & getAcceleration() const
Definition: Cinematicable.h:50
virtual Field getEmittedField()
Definition: Cinematicable.h:62
virtual const Force & getInternalForce() const
Definition: Cinematicable.h:58
virtual void setSpeed(Speed speed)
Definition: Cinematicable.h:38
virtual void addExternalForce(Force externalForce)
Sums to the already present external forces the argument.
Definition: Cinematicable.h:92
Force impulsiveForce
Definition: Cinematicable.h:128
virtual void setInternalForce(Force internalForce)
Definition: Cinematicable.h:54
Force internalForce
Definition: Cinematicable.h:127
Field emittedField
Definition: Cinematicable.h:129
virtual void setAcceleration(Acceleration acceleration)
Definition: Cinematicable.h:46
Definition: Foundations.h:230
A force Field is an object which can interact with other objects with a force, defined by its calcula...
Definition: Field.h:13
void setPosition(Position position)
Definition: Field.h:32
Position getPosition() const
Definition: Field.h:27
Definition: Foundations.h:265
Definition: Foundations.h:161
A Movable object is an object which can be moved and rotated.
Definition: Moveable.h:16
virtual Moveable & rotate(float angle, glm::vec3 axis)
Definition: Moveable.h:38
virtual void setPosition(Position position)
Definition: Moveable.h:33
virtual const Position & getPosition() const
Definition: Moveable.h:28
Moveable(Position position={ 0.0f, 0.0f, 0.0f }, glm::vec3 rotationEuler={ 0.0f, 0.0f, 0.0f })
Definition: Moveable.h:18
Definition: Foundations.h:187
Definition: Foundations.h:242
Definition: Foundations.h:175
Definition: Cinematicable.h:9
Force emptyField(const Position &, const Cinematicable &)
Definition: FieldFunctions.h:10
Definition: Cinematicable.h:9