PCG-FPS  v2 m0.22.4
Simple First Person Shooter with Procedurally Generated Level
TargetGeometry.h
Go to the documentation of this file.
1 #ifndef SKR_FPS2_RENDERER_OPENGL_TARGETGEOMETRY
2 #define SKR_FPS2_RENDERER_OPENGL_TARGETGEOMETRY
3 
4 #include "../../pch.h"
5 
6 #include "pcg/Target.h"
7 #include "Mesh.h"
8 #include "Model.h"
9 #include "..\..\Collision\CollisionBox.h"
10 #include "MaterialParameters.h"
11 
12 namespace skr
13 {
14 namespace fps2
15 {
16 namespace Renderer
17 {
18 namespace OpenGL
19 {
22  struct TargetModel
23  {
24  std::string path;
25  float scale;
26  glm::vec3 posOffset;
27  };
28 
32  {
33  public:
34  skr::pcg::Target _target;
35  uint32_t _id;
36 
37  glm::vec3 _position;
38  bool _completed;
39  glm::vec3 _movement;
40 
42 
43  size_t _modelId;
44 
45  std::vector<skr::fps2::Collision::CollisionBox*> _collisionObjects;
46 
47  public:
51  TargetGeometry(skr::pcg::Target target, uint32_t id);
52 
55  void SetCompleted(bool value);
56 
61  glm::vec3 CalculateMovement();
62 
67  glm::vec3 CalculateMovement(double currentTime);
68 
69  private:
72  std::vector<TargetModel> _modelList
73  {
74  {"models/container/container.obj", 1.0f, glm::vec3(0.0f)},
75  {"models/nanosuit/nanosuit.obj", 0.25f, glm::vec3(0.0f, 2.49f, 0.0f)}
76  };
77  };
78 }
79 }
80 }
81 }
82 
83 #endif // !SKR_FPS2_RENDERER_OPENGL_TARGETGEOMETRY
84 
skr::fps2::Renderer::OpenGL::TargetModel::scale
float scale
scale of model
Definition: TargetGeometry.h:25
skr::fps2::Renderer::OpenGL::TargetGeometry::_id
uint32_t _id
id of target
Definition: TargetGeometry.h:35
skr::fps2::Renderer::OpenGL::TargetGeometry::_position
glm::vec3 _position
position
Definition: TargetGeometry.h:37
skr::fps2::Renderer::OpenGL::TargetGeometry::_target
skr::pcg::Target _target
target from procedural generation
Definition: TargetGeometry.h:34
skr::fps2::Renderer::OpenGL::TargetGeometry::_modelId
size_t _modelId
id of model used for target
Definition: TargetGeometry.h:43
skr::fps2::Renderer::OpenGL::TargetGeometry::_collisionObjects
std::vector< skr::fps2::Collision::CollisionBox * > _collisionObjects
collision objects of target
Definition: TargetGeometry.h:45
skr::fps2::Renderer::OpenGL::TargetGeometry::_movement
glm::vec3 _movement
movement vector
Definition: TargetGeometry.h:39
skr::fps2::Renderer::OpenGL::TargetGeometry
manages geometry of a target
Definition: TargetGeometry.h:32
Model.h
skr::fps2::Renderer::OpenGL::TargetModel::posOffset
glm::vec3 posOffset
offset of meshes from center of model
Definition: TargetGeometry.h:26
skr::fps2::Renderer::OpenGL::TargetGeometry::SetCompleted
void SetCompleted(bool value)
set completed status
Definition: TargetGeometry.cpp:29
skr::fps2::Renderer::OpenGL::MaterialParameters
holding material parameters for objects without textures
Definition: MaterialParameters.h:18
skr::fps2::Renderer::OpenGL::TargetModel
model for a target
Definition: TargetGeometry.h:23
skr::fps2::Renderer::OpenGL::TargetGeometry::TargetGeometry
TargetGeometry(skr::pcg::Target target, uint32_t id)
constructor
Definition: TargetGeometry.cpp:17
skr
Definition: AssetPath.h:10
skr::fps2::Renderer::OpenGL::TargetGeometry::CalculateMovement
glm::vec3 CalculateMovement()
calculate movement in current frame also updates position of collision object if target is already co...
Definition: TargetGeometry.cpp:49
Mesh.h
MaterialParameters.h
skr::fps2::Renderer::OpenGL::TargetGeometry::_modelList
std::vector< TargetModel > _modelList
list to chose models from. models are not set during procedural generation, but randomly choosen from...
Definition: TargetGeometry.h:73
skr::fps2::Renderer::OpenGL::TargetGeometry::_completed
bool _completed
completion status
Definition: TargetGeometry.h:38
skr::fps2::Renderer::OpenGL::TargetGeometry::_smpMaterial
MaterialParameters _smpMaterial
material used to draw model
Definition: TargetGeometry.h:41
skr::fps2::Renderer::OpenGL::TargetModel::path
std::string path
path to where model is loaded from
Definition: TargetGeometry.h:24