| 
    PCG Lib
    
   Library for procedural content generation 
   | 
 
Generates a level consisting of rooms. More...
#include <FloorGenerator.h>
Public Member Functions | |
| FloorGenerator () | |
| default constrcutor usess default parameter, does not print seed and sets a random seed  More... | |
| FloorGenerator (FloorGeneratorParameter ¶m) | |
| constructor using parameter struct uses the specified parameter struct  More... | |
| std::vector< Room > | GetAllGeometry () | 
| returns all room in a single list  More... | |
Public Attributes | |
| std::vector< Room > | _floor | 
| list of regular rooms  More... | |
| std::vector< Room > | _hallways | 
| list of hallways  More... | |
| Room | _startBox | 
| special room for start  More... | |
| Room | _finishBox | 
| special room for finish  More... | |
Private Member Functions | |
| void | StartGeneration () | 
| starts generation  More... | |
| Point3d | GenerateCenterRandomPlacement (float minCoord=0.0f, float maxCoord=100.0f) | 
| randomly places center for a room  More... | |
| void | GenerateRoomsRandomPlacement () | 
| place room randomly  More... | |
| bool | IsOverlapping (Room r, Room r2) | 
| checks if the two rooms are overlapping  More... | |
| bool | IsInside (Room r, Room r2) | 
| checks if center of second room is inside first room  More... | |
| bool | IsInside (Room r, Point3d p) | 
| checks if specified point is inside room  More... | |
| void | GenerateRoomsStacking () | 
| generate a room layout using the stacking-strategy  More... | |
| DoorDirection | GetRandomDirection () | 
| gets a random direction for a door  More... | |
| DoorDirection | GetRandomDirection (std::vector< DoorDirection > dirs) | 
| gets a random direction from a list of directions  More... | |
| Room | PlaceNewRoom (DoorDirection dir, Room prev, float offX=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offY=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offZ=PCG_DEFAULT_ROOM_STACKING_OFFSET) | 
| Room | PlaceHallwayBetweenTwoRooms (Room curr, Room prev, float offX=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offY=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offZ=PCG_DEFAULT_ROOM_STACKING_OFFSET) | 
| place hallway in the middle of two rooms only works with quadratic rooms  More... | |
| Room | PlaceHallwayBetweenTwoRooms (Room prev, DoorDirection dir, float offX=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offY=PCG_DEFAULT_ROOM_STACKING_OFFSET, float offZ=PCG_DEFAULT_ROOM_STACKING_OFFSET) | 
| place hallway between two rooms uses size and direction to place between rectangular rooms correctly  More... | |
| Room | PlaceSpecialRoom (Room &prev, RoomType rt, DoorDirection dir) | 
| place special room  More... | |
Private Attributes | |
| FloorGeneratorParameter | _param | 
| parameter struct used for generation  More... | |
| RNG | _rng | 
| random number generator used for generation  More... | |
Generates a level consisting of rooms.
| skr::pcg::FloorGenerator::FloorGenerator | ( | ) | 
default constrcutor usess default parameter, does not print seed and sets a random seed
| skr::pcg::FloorGenerator::FloorGenerator | ( | FloorGeneratorParameter & | param | ) | 
constructor using parameter struct uses the specified parameter struct
| param | reference to parameter struct | 
      
  | 
  private | 
randomly places center for a room
| minCoord | minimum coordinate, default 0.0f | 
| maxCoord | maximum coordinate, default 100.0f | 
      
  | 
  private | 
place room randomly
      
  | 
  private | 
generate a room layout using the stacking-strategy
| std::vector< skr::pcg::Room > skr::pcg::FloorGenerator::GetAllGeometry | ( | ) | 
returns all room in a single list
      
  | 
  private | 
gets a random direction for a door
      
  | 
  private | 
gets a random direction from a list of directions
| dirs | list of DoorDirections to choose from | 
checks if specified point is inside room
| r | room | 
| p | point | 
checks if center of second room is inside first room
| r | first room | 
| r2 | second room | 
checks if the two rooms are overlapping
| r | first room | 
| r2 | second room | 
      
  | 
  private | 
place hallway in the middle of two rooms only works with quadratic rooms
| curr | current room | 
| prev | previous room | 
| offX | offset in x-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offY | offset in y-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offZ | offset in z-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
      
  | 
  private | 
place hallway between two rooms uses size and direction to place between rectangular rooms correctly
| prev | previous room | 
| dir | direction hallways is placed in relation to previous room | 
| offX | offset in x-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offY | offset in y-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offZ | offset in z-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
      
  | 
  private | 
\brief places a new room
| dir | direction in which new room is placed | 
| prev | previous room to place new room off | 
| offX | offset in x-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offY | offset in y-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
| offZ | offset in z-axis, default PCG_DEFAULT_ROOM_STACKING_OFFSET | 
      
  | 
  private | 
place special room
| prev | reference to previous room | 
| rt | type of new special room | 
| dir | direction special room is placed in relation to previous room | 
      
  | 
  private | 
starts generation
| Room skr::pcg::FloorGenerator::_finishBox | 
special room for finish
| std::vector<Room> skr::pcg::FloorGenerator::_floor | 
list of regular rooms
| std::vector<Room> skr::pcg::FloorGenerator::_hallways | 
list of hallways
      
  | 
  private | 
parameter struct used for generation
      
  | 
  private | 
random number generator used for generation
| Room skr::pcg::FloorGenerator::_startBox | 
special room for start
 1.8.18