PCG-FPS  v2 m0.22.4
Simple First Person Shooter with Procedurally Generated Level
CollisionBox.h
Go to the documentation of this file.
1 #ifndef SKR_FPS2_COLLISION_COLLISION_BOX_H
2 #define SKR_FPS2_COLLISION_COLLISION_BOX_H
3 
4 #include "..\pch.h"
5 
6 #include "reactphysics3d.h"
7 
8 #include "..\Renderer\OpenGL\Definitions.h"
9 #include "..\Renderer\OpenGL\Shader.h"
10 #include "BoundingBox.h"
11 
12 namespace skr
13 {
14 namespace fps2
15 {
16 namespace Collision
17 {
21  {
22  public:
23  rp3d::CollisionWorld* _world;
24 
25  rp3d::CollisionBody* _body;
26  rp3d::CollisionShape* _shape;
27  rp3d::ProxyShape* _proxyShape;
28 
29  glm::vec3 _position;
30 
31  public:
34  CollisionBox();
35 
41  CollisionBox(rp3d::CollisionWorld* world, rp3d::Vector3 position, rp3d::Vector3 size, CollisionCategory category = CollisionCategory::WALL);
42 
44  //~CollisionBox();
45 
49 
53 
56  void SetCollisionCatergory(unsigned short category);
57 
60  void UpdatePosition(glm::vec3 pos);
61 
64  void UpdatePosition(rp3d::Vector3 pos);
65 
72  void DrawCollisionShape(skr::fps2::Renderer::OpenGL::Shader shader, glm::mat4 view, glm::mat4 proj, glm::mat4 model, glm::vec3 color = glm::vec3(1.0f, 0.0f, 0.0f)) const;
73 
74  private:
76 
77  };
78 }
79 }
80 }
81 
82 #endif // SKR_FPS2_COLLISION_COLLISION_BOX_H
skr::fps2::Collision::CollisionBox::_proxyShape
rp3d::ProxyShape * _proxyShape
proxy shape of the collision object
Definition: CollisionBox.h:27
skr::fps2::CollisionCategory::WALL
@ WALL
walls
skr::fps2::Collision::CollisionBox::_position
glm::vec3 _position
position
Definition: CollisionBox.h:29
skr::fps2::Collision::CollisionBox::GetCollisionCategory
CollisionCategory GetCollisionCategory()
returns the collision categories of this box
Definition: CollisionBox.cpp:38
skr::fps2::Collision::CollisionBox
defines a box used to collision
Definition: CollisionBox.h:21
skr::fps2::Collision::CollisionBox::SetCollisionCatergory
void SetCollisionCatergory(CollisionCategory category)
sets CollisionCategory using the enum
Definition: CollisionBox.cpp:43
skr::fps2::Collision::CollisionBox::_world
rp3d::CollisionWorld * _world
RP3D collision world.
Definition: CollisionBox.h:23
skr::fps2::Renderer::OpenGL::Shader
handles shader loading, compiling and linking. Also provides access to set uniform ids and usage.
Definition: Shader.h:31
skr::fps2::Collision::CollisionBox::_shape
rp3d::CollisionShape * _shape
shape of the collision object
Definition: CollisionBox.h:26
BoundingBox.h
skr::fps2::Collision::CollisionBox::CollisionBox
CollisionBox()
Default constructor initiliazes all pointers as null_ptr.
Definition: CollisionBox.cpp:10
skr::fps2::Collision::CollisionBox::UpdatePosition
void UpdatePosition(glm::vec3 pos)
Updates position of this CollisionBox as glm vec3.
Definition: CollisionBox.cpp:53
skr::fps2::Collision::CollisionBox::DrawCollisionShape
void DrawCollisionShape(skr::fps2::Renderer::OpenGL::Shader shader, glm::mat4 view, glm::mat4 proj, glm::mat4 model, glm::vec3 color=glm::vec3(1.0f, 0.0f, 0.0f)) const
Draws the collision shape.
Definition: CollisionBox.cpp:66
skr
Definition: AssetPath.h:10
skr::fps2::CollisionCategory
CollisionCategory
CollisionCategory collision bodys have categories, which can be used to filter collision events,...
Definition: Definitions.h:27
skr::fps2::Collision::CollisionBox::_body
rp3d::CollisionBody * _body
collision body of the box
Definition: CollisionBox.h:25
skr::fps2::Collision::BoundingBox
specifies bounding box of a geometry
Definition: BoundingBox.h:17
skr::fps2::Collision::CollisionBox::_boundingBox
BoundingBox _boundingBox
bounding box of the collision shape
Definition: CollisionBox.h:75