PCG Lib
Library for procedural content generation
Target.h
Go to the documentation of this file.
1 #ifndef SKR_PCG_TARGET_H
2 #define SKR_PCG_TARGET_H
3 
4 #include "..\..\pch.h"
5 
6 #include "Definitions.h"
7 
8 namespace skr
9 {
10  namespace pcg
11  {
14  struct __declspec(dllexport) TargetMovement
15  {
17  float extend;
18 
23  {};
24 
28  TargetMovement(Vec3 a, float e)
29  : axis(a), extend(e)
30  {}
31 
35  TargetMovement(uint8_t dir, float e)
36  : extend(e)
37  {
38  switch (dir)
39  {
40  case 0:
41  axis = Vec3{ 1.0f, 0.0f, 0.0f };
42  break;
43  case 1:
44  axis = Vec3{ 0.0f, 1.0f, 0.0f };
45  break;
46  case 2:
47  axis = Vec3{ 0.0f, 0.0f, 1.0f };
48  break;
49  default:
50  axis = Vec3{ 0.0f, 0.0f, 0.0f };
51  }
52  }
53  };
54 
57  class __declspec(dllexport) Target
58  {
59  public:
61  float _width;
62  float _height;
63  float _length;
64 
66 
70 
75 
82  Target(Vec3 pos, float w, float h, float l, TargetMovement mov = TargetMovement());
83 
88  Target(Vec3 pos, Vec3 size, TargetMovement mov = TargetMovement());
89 
90  };
91  }
92 }
93 
94 #endif // !SKR_PCG_TARGET_H
95 
skr::pcg::Target::_movement
TargetMovement _movement
target movement
Definition: Target.h:65
skr::pcg::Target::Target
Target(TargetMovement mov=TargetMovement())
default constructor
Definition: Target.cpp:5
Definitions.h
skr::pcg::Target::_width
float _width
extend of the target in x-axis
Definition: Target.h:61
skr::pcg::Target::_height
float _height
extend of the target in y-axis
Definition: Target.h:62
skr::pcg::Target::_length
float _length
extend of the target in z-axis
Definition: Target.h:63
skr::pcg::TargetMovement::TargetMovement
TargetMovement(Vec3 a, float e)
constructor
Definition: Target.h:28
skr::pcg::TargetMovement::extend
float extend
maximum length a target can move in one direction
Definition: Target.h:17
skr::pcg::Target
specifies are target in a level to hit
Definition: Target.h:58
skr::pcg::Target::_position
Vec3 _position
position
Definition: Target.h:60
skr::pcg::PCG_DEFAULT_TARGET_MOVEMENT_MAX_EXTEND
constexpr float PCG_DEFAULT_TARGET_MOVEMENT_MAX_EXTEND
default extend to which a target can move at maxmium
Definition: Definitions.h:63
skr::pcg::TargetMovement::TargetMovement
TargetMovement()
default constructor sets axis to (0,0,0) (no movement) and extend to default
Definition: Target.h:21
skr
Definition: Definitions.h:7
skr::pcg::TargetMovement::TargetMovement
TargetMovement(uint8_t dir, float e)
constructor
Definition: Target.h:35
skr::pcg::TargetMovement::axis
Vec3 axis
axis on which target can move
Definition: Target.h:16
skr::pcg::TargetMovement
specifies parameters how a target can move during gameplay
Definition: Target.h:15
skr::pcg::Vec3
Point3d Vec3
Definition: Definitions.h:17