Elevate Engine
1
Loading...
Searching...
No Matches
Rigidbody.h
Go to the documentation of this file.
1
#pragma once
2
#include <
ElevateEngine/Core/Component.h
>
3
#include <
ElevateEngine/Core/GameObject.h
>
4
#include <
ElevateEngine/Core/ComponentRegistry.h
>
5
#include <
ElevateEngine/Editor/Components/ComponentsIcon.h
>
6
7
#include "glm/glm.hpp"
8
9
namespace
Elevate
10
{
11
struct
SurfaceMaterial
12
{
13
BEGIN_STRUCT
(
SurfaceMaterial
)
14
15
float
m_staticFriction
= 0;
// static friction coefficient
16
EXPOSE
(
m_staticFriction
)
17
float
m_dynamicFriction
= 0;
// dynamic friction coefficient
18
EXPOSE
(
m_dynamicFriction
)
19
float
m_restitution
= 1;
// 0 = no rebound, 1 = bounce with no energy loss
20
EXPOSE
(
m_restitution
)
21
22
END_STRUCT
()
23
};
24
25
struct
RigidbodyData
26
{
27
BEGIN_STRUCT
(
RigidbodyData
)
28
29
glm::vec3 m_gravity = { 0, -9.81, 0 };
30
EXPOSE
(m_gravity)
31
32
glm::vec3 m_force = { 0, 0, 0 };
33
EXPOSE
(m_force)
34
35
glm::vec3 m_velocity = { 0, 0, 0 };
36
EXPOSE
(m_velocity)
37
38
float m_mass = 100;
// Mass in kg
39
EXPOSE
(m_mass)
40
41
SurfaceMaterial
material;
42
EXPOSE
(material)
43
44
END_STRUCT
()
45
};
46
47
class
Rigidbody
: public
Component
48
{
49
public
:
50
BEGIN_COMPONENT
(
Rigidbody
,
EditorIcon
(std::string(
Editor::Icons::COMPONENT_ICON_RIGIDBODY
)))
51
EECATEGORY
(
"Physics"
)
52
53
Rigidbody
();
54
Rigidbody
(const
Rigidbody
& other);
55
56
void
Update() override;
57
58
private:
59
RigidbodyData
m_data;
60
EXPOSE
(m_data,
Flatten
)
61
62
END_COMPONENT
()
63
};
64
}
ComponentRegistry.h
EECATEGORY
#define EECATEGORY(name)
Definition
ComponentRegistry.h:172
END_STRUCT
#define END_STRUCT()
Definition
ComponentRegistry.h:348
EXPOSE
#define EXPOSE(param,...)
Definition
ComponentRegistry.h:215
EditorIcon
#define EditorIcon(path)
Definition
ComponentRegistry.h:75
BEGIN_STRUCT
#define BEGIN_STRUCT(T)
Definition
ComponentRegistry.h:331
Flatten
#define Flatten
Definition
ComponentRegistry.h:57
END_COMPONENT
#define END_COMPONENT()
Definition
ComponentRegistry.h:228
Component.h
ComponentsIcon.h
GameObject.h
Elevate::Component
Definition
Component.h:25
Elevate::Rigidbody
Definition
Rigidbody.h:48
Elevate::Rigidbody::BEGIN_COMPONENT
BEGIN_COMPONENT(Rigidbody, EditorIcon(std::string(Editor::Icons::COMPONENT_ICON_RIGIDBODY))) Rigidbody()
Elevate::Editor::Icons::COMPONENT_ICON_RIGIDBODY
constexpr std::string_view COMPONENT_ICON_RIGIDBODY
Definition
ComponentsIcon.h:10
Elevate
Definition
AudioDistanceProbe.h:9
Elevate::RigidbodyData
Definition
Rigidbody.h:26
Elevate::SurfaceMaterial
Definition
Rigidbody.h:12
Elevate::SurfaceMaterial::m_staticFriction
float m_staticFriction
Definition
Rigidbody.h:15
Elevate::SurfaceMaterial::m_dynamicFriction
float m_dynamicFriction
Definition
Rigidbody.h:17
Elevate::SurfaceMaterial::m_restitution
float m_restitution
Definition
Rigidbody.h:19
ElevateEngine
src
ElevateEngine
Physics
Rigidbody.h
Generated by
1.9.8