Jagguar Game Engine
Loading...
Searching...
No Matches
IPhysicsComponent.hpp
1#ifndef PHYSICSCOMPONENT_HPP
2#define PHYSICSCOMPONENT_HPP
3
4#include "Component.hpp"
5#include "TransformComponent.hpp"
6#include "TinyMath.hpp"
7
12public:
20
25
32 bool IsColliding(IPhysicsComponent* other);
33
43 virtual void ApplyForce(Vec2D force);
44
49 virtual void ApplyAcceleration(Vec2D acceleration);
50
59 virtual void ApplyVelocity();
60
61 // SETTERS
62
68 virtual void SetVelocity(Vec2D vel);
69
70 // GETTERS
71
79 virtual bool IsKinematic();
80
87 virtual bool IsElastic();
88
94 virtual bool UsesGravity();
95
103
110
116 virtual Vec2D GetVelocity();
117
123 virtual float GetMass();
124
125protected:
126 TransformComponent* m_position;
128 std::vector<ComponentTag> tags = {ComponentTag::Physics};
129};
130
131#endif
Definition: Component.hpp:38
Definition: IPhysicsComponent.hpp:11
virtual void ApplyAcceleration(Vec2D acceleration)
Definition: IPhysicsComponent.cpp:30
virtual void ApplyForce(Vec2D force)
Definition: IPhysicsComponent.cpp:29
virtual bool IsElastic()
Definition: IPhysicsComponent.cpp:34
virtual bool UsesGravity()
Definition: IPhysicsComponent.cpp:35
virtual Vec2D GetVelocity()
Definition: IPhysicsComponent.cpp:36
virtual float GetMass()
Definition: IPhysicsComponent.cpp:37
bool IsColliding(IPhysicsComponent *other)
Definition: IPhysicsComponent.cpp:9
virtual bool IsKinematic()
Definition: IPhysicsComponent.cpp:33
Vec2D GetDimensions()
Definition: IPhysicsComponent.cpp:24
Vec2D GetPosition()
Definition: IPhysicsComponent.cpp:20
virtual void ApplyVelocity()
Definition: IPhysicsComponent.cpp:31
Vec2D dimensions
Definition: IPhysicsComponent.hpp:127
~IPhysicsComponent()
Definition: IPhysicsComponent.cpp:7
virtual void SetVelocity(Vec2D vel)
Definition: IPhysicsComponent.cpp:32
Definition: TransformComponent.hpp:12
Definition: TinyMath.hpp:14