Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
RigidBodyComponent.hpp
1
#pragma once
2
3
#include <bullet/btBulletDynamicsCommon.h>
4
5
#include "Common/Math.hpp"
6
#include "EngineCore/ECS/Entity.hpp"
7
#include "EngineCore/Reflection/ComponentReflection.hpp"
8
#include "ColliderComponent.hpp"
9
10
class
btRigidBody;
11
12
namespace
Grindstone
{
13
struct
TransformComponent
;
14
class
WorldContextSet
;
15
16
namespace
Physics
{
17
struct
ColliderComponent
;
18
19
struct
RigidBodyComponent {
20
RigidBodyComponent() =
default
;
21
RigidBodyComponent(
float
mass,
ColliderComponent
* colliderComponent);
22
23
static
void
Construct(
Grindstone::WorldContextSet
&, entt::entity);
24
RigidBodyComponent Clone(
Grindstone::WorldContextSet
& cxt, entt::entity newEntityId)
const
;
25
26
void
SetCollisionShape(
ColliderComponent
* colliderComponent);
27
void
SetFriction(
float
friction);
28
void
SetRestitution(
float
restitution);
29
void
SetDamping(
float
linear,
float
rotational);
30
31
void
ApplyForce(
Math::Float3
pos,
Math::Float3
force);
32
void
ApplyCentralForce(
Math::Float3
force);
33
void
ApplyImpulse(
Math::Float3
pos,
Math::Float3
force);
34
void
ApplyCentralImpulse(
Math::Float3
force);
35
36
float
GetMass()
const
;
37
float
GetFriction()
const
;
38
float
GetRestitution()
const
;
39
float
GetDampingLinear()
const
;
40
float
GetDampingRotational()
const
;
41
private
:
42
float
mass = 0.0f;
43
float
friction = 0.0f;
44
float
restitution = 0.0f;
45
float
dampingLinear = 0.0f;
46
float
dampingRotational = 0.0f;
47
public
:
48
Grindstone::UniquePtr<btRigidBody>
rigidBody =
nullptr
;
49
Grindstone::UniquePtr<btDefaultMotionState>
motionState =
nullptr
;
50
51
REFLECT(
"RigidBody"
)
52
};
53
54
void
SetupRigidBodyComponentWithCollider(
55
Grindstone::WorldContextSet
& cxt,
56
RigidBodyComponent
* rigidBodyComponent,
57
TransformComponent
* transformComponent,
58
ColliderComponent
* colliderComponent
59
);
60
}
61
}
Grindstone::UniquePtr
Definition
UniquePtr.hpp:7
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
Grindstone::Physics
Definition
PhysicsLayer.hpp:6
Grindstone
Definition
ArchiveContentFile.hpp:8
Grindstone::Math.Float3
Definition
FloatVectors.cs:119
Grindstone::Physics::ColliderComponent
Definition
ColliderComponent.hpp:14
Grindstone::Physics::RigidBodyComponent
Definition
RigidBodyComponent.hpp:19
Grindstone::TransformComponent
Definition
TransformComponent.hpp:12
plugins
Grindstone.Physics.Bullet
include
Components
RigidBodyComponent.hpp
Generated by
1.17.0