Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
CollisionMap Class Reference

#include <CollisionMap.h>

+ Collaboration diagram for CollisionMap:

Classes

struct  Sector
 

Public Types

typedef std::function< void(TileProperties &)> TileUpdateFunc
 

Public Member Functions

void Initialize (int width, int height, GridProjectionType projection, float tileWidth, float tileHeight, int numLayers=1, float tileOffsetX=0.0f, float tileOffsetY=0.0f)
 
void SetActiveLayer (CollisionLayer layer)
 
CollisionLayer GetActiveLayer () const
 
int GetNumLayers () const
 
void SetTileProperties (int x, int y, const TileProperties &props)
 
const TilePropertiesGetTileProperties (int x, int y) const
 
void SetTileProperties (int x, int y, CollisionLayer layer, const TileProperties &props)
 
const TilePropertiesGetTileProperties (int x, int y, CollisionLayer layer) const
 
void SetCollision (int x, int y, bool hasCollision)
 
bool HasCollision (int x, int y) const
 
bool HasCollision (int x, int y, CollisionLayer layer) const
 
void UpdateTileState (int x, int y, TileUpdateFunc updateFunc)
 
void UpdateTileState (int x, int y, CollisionLayer layer, TileUpdateFunc updateFunc)
 
void WorldToGrid (float worldX, float worldY, int &outGridX, int &outGridY) const
 
void GridToWorld (int gridX, int gridY, float &outWorldX, float &outWorldY) const
 
bool IsValidGridPosition (int x, int y) const
 
bool IsValidGridPosition (int x, int y, CollisionLayer layer) const
 
int GetWidth () const
 
int GetHeight () const
 
GridProjectionType GetProjection () const
 
float GetTileWidth () const
 
float GetTileHeight () const
 
const std::vector< std::vector< TileProperties > > & GetLayer (CollisionLayer layer) const
 
void RegisterSector (int sectorX, int sectorY, int width, int height)
 
void LoadSector (int sectorX, int sectorY)
 
void UnloadSector (int sectorX, int sectorY)
 
const std::vector< Sector > & GetSectors () const
 
void Clear ()
 
 CollisionMap ()=default
 
 ~CollisionMap ()=default
 
 CollisionMap (const CollisionMap &)=delete
 
CollisionMapoperator= (const CollisionMap &)=delete
 

Static Public Member Functions

static CollisionMapGet ()
 

Public Attributes

std::vector< std::vector< std::vector< TileProperties > > > m_layers
 
int m_numLayers = 1
 
CollisionLayer m_activeLayer = CollisionLayer::Ground
 
int m_width = 0
 
int m_height = 0
 
GridProjectionType m_projection = GridProjectionType::Ortho
 
float m_tileWidth = 32.0f
 
float m_tileHeight = 32.0f
 
float m_tileOffsetX = 0.0f
 
float m_tileOffsetY = 0.0f
 
std::vector< Sectorm_sectors
 

Static Public Attributes

static const TileProperties s_emptyTile = TileProperties()
 

Detailed Description

Definition at line 86 of file CollisionMap.h.

Member Typedef Documentation

◆ TileUpdateFunc

Definition at line 119 of file CollisionMap.h.

Constructor & Destructor Documentation

◆ CollisionMap() [1/2]

CollisionMap::CollisionMap ( )
default

◆ ~CollisionMap()

CollisionMap::~CollisionMap ( )
default

◆ CollisionMap() [2/2]

CollisionMap::CollisionMap ( const CollisionMap )
delete

Member Function Documentation

◆ Clear()

void CollisionMap::Clear ( )

Definition at line 336 of file CollisionMap.cpp.

References Ground, m_activeLayer, m_height, m_layers, m_numLayers, m_sectors, and m_width.

◆ Get()

static CollisionMap & CollisionMap::Get ( )
inlinestatic

◆ GetActiveLayer()

CollisionLayer CollisionMap::GetActiveLayer ( ) const
inline

Definition at line 102 of file CollisionMap.h.

References m_activeLayer.

◆ GetHeight()

int CollisionMap::GetHeight ( ) const
inline

Definition at line 133 of file CollisionMap.h.

References m_height.

◆ GetLayer()

const std::vector< std::vector< TileProperties > > & CollisionMap::GetLayer ( CollisionLayer  layer) const

Definition at line 286 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), and m_layers.

+ Here is the call graph for this function:

◆ GetNumLayers()

int CollisionMap::GetNumLayers ( ) const
inline

Definition at line 103 of file CollisionMap.h.

References m_numLayers.

◆ GetProjection()

GridProjectionType CollisionMap::GetProjection ( ) const
inline

Definition at line 134 of file CollisionMap.h.

References m_projection.

◆ GetSectors()

const std::vector< Sector > & CollisionMap::GetSectors ( ) const
inline

Definition at line 153 of file CollisionMap.h.

References m_sectors.

◆ GetTileHeight()

float CollisionMap::GetTileHeight ( ) const
inline

Definition at line 136 of file CollisionMap.h.

References m_tileHeight.

◆ GetTileProperties() [1/2]

const TileProperties & CollisionMap::GetTileProperties ( int  x,
int  y 
) const

Definition at line 117 of file CollisionMap.cpp.

References GetTileProperties(), and m_activeLayer.

Referenced by GetTileProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTileProperties() [2/2]

const TileProperties & CollisionMap::GetTileProperties ( int  x,
int  y,
CollisionLayer  layer 
) const

Definition at line 132 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), IsValidGridPosition(), m_layers, and s_emptyTile.

+ Here is the call graph for this function:

◆ GetTileWidth()

float CollisionMap::GetTileWidth ( ) const
inline

Definition at line 135 of file CollisionMap.h.

References m_tileWidth.

◆ GetWidth()

int CollisionMap::GetWidth ( ) const
inline

Definition at line 132 of file CollisionMap.h.

References m_width.

◆ GridToWorld()

void CollisionMap::GridToWorld ( int  gridX,
int  gridY,
float outWorldX,
float outWorldY 
) const

Definition at line 241 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), HexAxial, Iso, m_projection, m_tileHeight, m_tileWidth, and Ortho.

Referenced by NavigationMap::GridToWorld(), and Initialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HasCollision() [1/2]

bool CollisionMap::HasCollision ( int  x,
int  y 
) const

Definition at line 152 of file CollisionMap.cpp.

References HasCollision(), and m_activeLayer.

Referenced by HasCollision().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HasCollision() [2/2]

bool CollisionMap::HasCollision ( int  x,
int  y,
CollisionLayer  layer 
) const

Definition at line 157 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), IsValidGridPosition(), and m_layers.

+ Here is the call graph for this function:

◆ Initialize()

void CollisionMap::Initialize ( int  width,
int  height,
GridProjectionType  projection,
float  tileWidth,
float  tileHeight,
int  numLayers = 1,
float  tileOffsetX = 0.0f,
float  tileOffsetY = 0.0f 
)

◆ IsValidGridPosition() [1/2]

bool CollisionMap::IsValidGridPosition ( int  x,
int  y 
) const

Definition at line 275 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), and m_height.

Referenced by GetTileProperties(), HasCollision(), IsValidGridPosition(), SetCollision(), SetTileProperties(), and UpdateTileState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsValidGridPosition() [2/2]

bool CollisionMap::IsValidGridPosition ( int  x,
int  y,
CollisionLayer  layer 
) const

Definition at line 280 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), IsValidGridPosition(), and m_numLayers.

+ Here is the call graph for this function:

◆ LoadSector()

void CollisionMap::LoadSector ( int  sectorX,
int  sectorY 
)

Definition at line 310 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), and m_sectors.

+ Here is the call graph for this function:

◆ operator=()

CollisionMap & CollisionMap::operator= ( const CollisionMap )
delete

◆ RegisterSector()

void CollisionMap::RegisterSector ( int  sectorX,
int  sectorY,
int  width,
int  height 
)

Definition at line 298 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), m_sectors, and CollisionMap::Sector::x.

+ Here is the call graph for this function:

◆ SetActiveLayer()

void CollisionMap::SetActiveLayer ( CollisionLayer  layer)

Definition at line 104 of file CollisionMap.cpp.

References m_activeLayer, and m_numLayers.

◆ SetCollision()

void CollisionMap::SetCollision ( int  x,
int  y,
bool  hasCollision 
)

Definition at line 142 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), TileProperties::isBlocked, IsValidGridPosition(), m_activeLayer, and m_layers.

+ Here is the call graph for this function:

◆ SetTileProperties() [1/2]

void CollisionMap::SetTileProperties ( int  x,
int  y,
CollisionLayer  layer,
const TileProperties props 
)

Definition at line 122 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), IsValidGridPosition(), and m_layers.

+ Here is the call graph for this function:

◆ SetTileProperties() [2/2]

void CollisionMap::SetTileProperties ( int  x,
int  y,
const TileProperties props 
)

Definition at line 112 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), m_activeLayer, and SetTileProperties().

Referenced by SetTileProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UnloadSector()

void CollisionMap::UnloadSector ( int  sectorX,
int  sectorY 
)

Definition at line 323 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), and m_sectors.

+ Here is the call graph for this function:

◆ UpdateTileState() [1/2]

void CollisionMap::UpdateTileState ( int  x,
int  y,
CollisionLayer  layer,
TileUpdateFunc  updateFunc 
)

Definition at line 172 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), IsValidGridPosition(), and m_layers.

+ Here is the call graph for this function:

◆ UpdateTileState() [2/2]

void CollisionMap::UpdateTileState ( int  x,
int  y,
TileUpdateFunc  updateFunc 
)

Definition at line 167 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), m_activeLayer, and UpdateTileState().

Referenced by UpdateTileState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WorldToGrid()

void CollisionMap::WorldToGrid ( float  worldX,
float  worldY,
int outGridX,
int outGridY 
) const

Definition at line 181 of file CollisionMap.cpp.

References GetComponentTypeID_Static(), HexAxial, Iso, m_projection, m_tileHeight, m_tileWidth, and Ortho.

Referenced by NavigationMap::WorldToGrid().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_activeLayer

CollisionLayer CollisionMap::m_activeLayer = CollisionLayer::Ground

◆ m_height

int CollisionMap::m_height = 0

Definition at line 170 of file CollisionMap.h.

Referenced by Clear(), GetHeight(), Initialize(), and IsValidGridPosition().

◆ m_layers

std::vector<std::vector<std::vector<TileProperties> > > CollisionMap::m_layers

◆ m_numLayers

int CollisionMap::m_numLayers = 1

Definition at line 166 of file CollisionMap.h.

Referenced by Clear(), GetNumLayers(), Initialize(), IsValidGridPosition(), and SetActiveLayer().

◆ m_projection

GridProjectionType CollisionMap::m_projection = GridProjectionType::Ortho

Definition at line 171 of file CollisionMap.h.

Referenced by GetProjection(), GridToWorld(), Initialize(), and WorldToGrid().

◆ m_sectors

std::vector<Sector> CollisionMap::m_sectors

Definition at line 180 of file CollisionMap.h.

Referenced by Clear(), GetSectors(), LoadSector(), RegisterSector(), and UnloadSector().

◆ m_tileHeight

float CollisionMap::m_tileHeight = 32.0f

Definition at line 173 of file CollisionMap.h.

Referenced by GetTileHeight(), GridToWorld(), Initialize(), and WorldToGrid().

◆ m_tileOffsetX

float CollisionMap::m_tileOffsetX = 0.0f

Definition at line 176 of file CollisionMap.h.

Referenced by Initialize().

◆ m_tileOffsetY

float CollisionMap::m_tileOffsetY = 0.0f

Definition at line 177 of file CollisionMap.h.

Referenced by Initialize().

◆ m_tileWidth

float CollisionMap::m_tileWidth = 32.0f

Definition at line 172 of file CollisionMap.h.

Referenced by GetTileWidth(), GridToWorld(), Initialize(), and WorldToGrid().

◆ m_width

int CollisionMap::m_width = 0

Definition at line 169 of file CollisionMap.h.

Referenced by Clear(), GetWidth(), and Initialize().

◆ s_emptyTile

const TileProperties CollisionMap::s_emptyTile = TileProperties()
static

Definition at line 183 of file CollisionMap.h.

Referenced by GetTileProperties().


The documentation for this class was generated from the following files: