PCG Lib
Library for procedural content generation
Definitions.h
Go to the documentation of this file.
1 #ifndef PCG_DEFINITIONS
2 #define PCG_DEFINITIONS
3 
4 #include <array>
5 #include <vector>
6 namespace skr
7 {
8  namespace pcg
9  {
10 
11 #pragma region Typdefs
12 
13  typedef std::array<float, 2> Point2d;
14  typedef Point2d Vec2;
15 
16  typedef std::array<float, 3> Point3d;
17  typedef Point3d Vec3;
18 
19 #pragma endregion
20 
21 #pragma region data structures
22 
25  {
26  OGL_REPEAT = 0x2901,
27  OGL_MIRRORED_REPEAT = 0x8370,
28  OGL_CLAMP_TO_EDGE = 0x812F,
29  OGL_CLAMP_TO_BORDER = 0x812D
30  };
31 
33  struct Vertex
34  {
38  };
39 
41  struct Face
42  {
43  std::vector<Vertex> vertices;
44  std::vector<uint32_t> indices;
46  std::string diffuseTexturePath;
47  std::string normalTexturePath;
49  };
50 
51 #pragma endregion
52 
53 #pragma region Constant Values
54 
55 #define MIN_TARGETS 2
56 #define TARGETS_PER_SQUARE_SIZE 200
57 
58  constexpr float PCG_DEFAULT_ROOM_HEIGHT = 5.0f;
59  constexpr float PCG_DEFAULT_ROOM_BASE_HEIGHT = 0.0f;
60  constexpr float PCG_DEFAULT_ROOM_STACKING_OFFSET = 3.0f;
61 
62  constexpr float PCG_DEFAULT_TARGET_SIZE = 2.0f;
65  constexpr float PCG_DEFAULT_TARGET_MAX_MOVEMENT_SPEED = 2.0f; // default maximum movement speed of a target
66 
67 
68  // Default Values for normals of faces of a room
69  constexpr Vec3 DefaultNormal_Bottom { 0.0f, 1.0f, 0.0f };
70  constexpr Vec3 DefaultNormal_Top { 0.0f, -1.0f, 0.0f };
71 
72  constexpr Vec3 DefaultNormal_Back{ 0.0f, 0.0f, -1.0f };
73  constexpr Vec3 DefaultNormal_Front { 0.0f, 0.0f, 1.0f };
74 
75  constexpr Vec3 DefaultNormal_Right { -1.0f, 0.0f, 0.0f };
76  constexpr Vec3 DefaultNormal_Left { 1.0f, 0.0f, 0.0f };
77 #pragma endregion
78 
79  }
80 }
81 
82 #endif
skr::pcg::Point2d
std::array< float, 2 > Point2d
2d point
Definition: Definitions.h:13
skr::pcg::Face::diffuseTexturePath
std::string diffuseTexturePath
color to draw the face in if no texture is specified
Definition: Definitions.h:46
skr::pcg::OpenGLTextureWrapParameter::OGL_REPEAT
@ OGL_REPEAT
skr::pcg::PCG_DEFAULT_TARGET_MOVEMENT_MAX_EXTEND_VERTICAL
constexpr float PCG_DEFAULT_TARGET_MOVEMENT_MAX_EXTEND_VERTICAL
default extend to which a target can move vertically (y-axis) at maximum
Definition: Definitions.h:64
skr::pcg::OpenGLTextureWrapParameter::OGL_MIRRORED_REPEAT
@ OGL_MIRRORED_REPEAT
skr::pcg::DefaultNormal_Back
constexpr Vec3 DefaultNormal_Back
default normal for top face
Definition: Definitions.h:72
skr::pcg::Vec2
Point2d Vec2
Definition: Definitions.h:14
skr::pcg::Face::textureWrapParameter
OpenGLTextureWrapParameter textureWrapParameter
path to normal texture. empty if no texture is used
Definition: Definitions.h:48
skr::pcg::DefaultNormal_Front
constexpr Vec3 DefaultNormal_Front
default normal for back face
Definition: Definitions.h:73
skr::pcg::Point3d
std::array< float, 3 > Point3d
c 2d vector
Definition: Definitions.h:16
skr::pcg::OpenGLTextureWrapParameter::OGL_CLAMP_TO_BORDER
@ OGL_CLAMP_TO_BORDER
skr::pcg::Face::normalTexturePath
std::string normalTexturePath
path to diffuse texture. empty if no texture is used
Definition: Definitions.h:47
skr::pcg::PCG_DEFAULT_TARGET_SIZE
constexpr float PCG_DEFAULT_TARGET_SIZE
default size of targets; used to prevent overlap
Definition: Definitions.h:62
skr::pcg::Face::indices
std::vector< uint32_t > indices
vertices of face
Definition: Definitions.h:44
skr::pcg::Vertex::TexCoords
Vec2 TexCoords
normal at vertex
Definition: Definitions.h:37
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::OpenGLTextureWrapParameter
OpenGLTextureWrapParameter
c 3d vector
Definition: Definitions.h:25
skr::pcg::Face::vertices
std::vector< Vertex > vertices
Definition: Definitions.h:43
skr::pcg::OpenGLTextureWrapParameter::OGL_CLAMP_TO_EDGE
@ OGL_CLAMP_TO_EDGE
skr::pcg::Face
strcut describing a face
Definition: Definitions.h:42
skr::pcg::PCG_DEFAULT_ROOM_HEIGHT
constexpr float PCG_DEFAULT_ROOM_HEIGHT
default value for height of a room
Definition: Definitions.h:58
skr
Definition: Definitions.h:7
skr::pcg::Face::color
Vec3 color
indices of vertices. If index vertices aren't used, this i empty
Definition: Definitions.h:45
skr::pcg::PCG_DEFAULT_ROOM_STACKING_OFFSET
constexpr float PCG_DEFAULT_ROOM_STACKING_OFFSET
default space between rooms; also size of hallways
Definition: Definitions.h:60
skr::pcg::DefaultNormal_Bottom
constexpr Vec3 DefaultNormal_Bottom
Definition: Definitions.h:69
skr::pcg::DefaultNormal_Left
constexpr Vec3 DefaultNormal_Left
default normal for right face
Definition: Definitions.h:76
skr::pcg::DefaultNormal_Right
constexpr Vec3 DefaultNormal_Right
default normal for front face
Definition: Definitions.h:75
skr::pcg::Vec3
Point3d Vec3
Definition: Definitions.h:17
skr::pcg::Vertex
struct describing a vertex
Definition: Definitions.h:34
skr::pcg::Vertex::Position
Vec3 Position
Definition: Definitions.h:35
skr::pcg::PCG_DEFAULT_ROOM_BASE_HEIGHT
constexpr float PCG_DEFAULT_ROOM_BASE_HEIGHT
default value for base eight of the level
Definition: Definitions.h:59
skr::pcg::PCG_DEFAULT_TARGET_MAX_MOVEMENT_SPEED
constexpr float PCG_DEFAULT_TARGET_MAX_MOVEMENT_SPEED
Definition: Definitions.h:65
skr::pcg::Vertex::Normal
Vec3 Normal
position of vertex
Definition: Definitions.h:36
skr::pcg::DefaultNormal_Top
constexpr Vec3 DefaultNormal_Top
default normal for bottom face
Definition: Definitions.h:70