Monad Engine da02fba2
> Undercity Codex_
Loading...
Searching...
No Matches
RigidBody.h
Go to the documentation of this file.
1#pragma once
2#include "physics/Collider.h"
3#include "physics/CollisionObject.h"
4
5#include <glm/gtc/quaternion.hpp>
6
7#include <memory>
8
9class btRigidBody;
10
11namespace eng
12{
13 enum class BodyType
14 {
15 Static,
16 Dynamic,
18 };
19
21 {
22 public:
23 RigidBody(BodyType type, const std::shared_ptr<Collider>& collider, float mass, float friction);
24 ~RigidBody();
25 btRigidBody* GetBody();
26 void SetAddedToWorld(bool added);
27 bool IsAddedToWorld() const;
28
29 BodyType GetType() const;
30
31 void SetPosition(const glm::vec3& pos);
32 glm::vec3 GetPosition() const;
33 void SetRotation(const glm::quat& rot);
34 glm::quat GetRotation() const;
35
36 void ApplyImpulse(const glm::vec3& impulse);
37
38 private:
39 std::unique_ptr<btRigidBody> m_body;
41 std::shared_ptr<Collider> m_collider;
42 float m_mass = 0.0f;
43 float m_friction = 0.5f;
44 bool m_addedToWorld = false;
45 };
46}
void SetRotation(const glm::quat &rot)
Definition RigidBody.cpp:99
bool IsAddedToWorld() const
Definition RigidBody.cpp:63
void ApplyImpulse(const glm::vec3 &impulse)
void SetPosition(const glm::vec3 &pos)
Definition RigidBody.cpp:73
btRigidBody * GetBody()
Definition RigidBody.cpp:53
void SetAddedToWorld(bool added)
Definition RigidBody.cpp:58
BodyType GetType() const
Definition RigidBody.cpp:68
glm::quat GetRotation() const
glm::vec3 GetPosition() const
Definition RigidBody.cpp:89
BodyType
Definition RigidBody.h:14