VoxelEngine
 
Loading...
Searching...
No Matches
engine::DenseGrid Struct Reference

DenseGrid is a storage of blocks in a dense grid aka array.. More...

#include <DenseGrid.h>

Inheritance diagram for engine::DenseGrid:
engine::IChunkData engine::ISerializable

Public Member Functions

 DenseGrid (glm::ivec3 dims)
 
void compress (BlockID block)
 
void decompress ()
 
size_t index (int x, int y, int z) const
 
size_t index (const glm::ivec3 &pos) const
 
BlockID getBlock (const glm::ivec3 &pos) const override final
 
MultiBlockgetMultiBlock (const glm::ivec3 &pos) override final
 
void setBlock (const glm::ivec3 &pos, BlockID block) override final
 
void setBlock (const glm::ivec3 &pos, BlockID block, BlockState state) override final
 
void setMultiBlock (const glm::ivec3 &pos, MultiBlock &&multiBlock) override final
 
BlockStategetState (const glm::ivec3 &pos) override final
 
const BlockStategetState (const glm::ivec3 &pos) const override final
 
void setState (const glm::ivec3 &pos, BlockState &&state) override final
 
void clearState (const glm::ivec3 &pos) override final
 
BlockStategetOrCreateState (const glm::ivec3 &pos) override final
 
void serialize (std::ostream &out) const override final
 
void deserialize (std::istream &in) override final
 
- Public Member Functions inherited from engine::IChunkData
 IChunkData (glm::ivec3 dims)
 
void clear (const glm::ivec3 &pos)
 
bool isEmpty (const glm::ivec3 &pos) const
 
BlockID getBlockAndState (const glm::ivec3 &pos, BlockState *&state)
 
BlockID getBlockAndState (const glm::ivec3 &pos, const BlockState *&state) const
 
BlockID getAll (const glm::ivec3 &pos, BlockState *&state, MultiBlock *&multiBlock)
 

Public Attributes

BlockID uniform = InvalidBlockID
 
std::vector< BlockID > data
 
std::unordered_map< glm::ivec3, BlockStatestates
 
std::unordered_map< glm::ivec3, MultiBlockmultiBlocks
 
- Public Attributes inherited from engine::IChunkData
glm::ivec3 dims
 
bool populated = false
 

Detailed Description

DenseGrid is a storage of blocks in a dense grid aka array..

Member Function Documentation

◆ clearState()

void DenseGrid::clearState ( const glm::ivec3 &  pos)
finaloverridevirtual

Implements engine::IChunkData.

◆ deserialize()

void DenseGrid::deserialize ( std::istream &  in)
finaloverridevirtual

Implements engine::IChunkData.

◆ getBlock()

BlockID DenseGrid::getBlock ( const glm::ivec3 &  pos) const
finaloverridevirtual

access

Implements engine::IChunkData.

◆ getMultiBlock()

MultiBlock * DenseGrid::getMultiBlock ( const glm::ivec3 &  pos)
finaloverridevirtual

Implements engine::IChunkData.

◆ getOrCreateState()

BlockState * DenseGrid::getOrCreateState ( const glm::ivec3 &  pos)
finaloverridevirtual

Implements engine::IChunkData.

◆ getState() [1/2]

const BlockState * DenseGrid::getState ( const glm::ivec3 &  pos) const
finaloverridevirtual

Implements engine::IChunkData.

◆ getState() [2/2]

BlockState * DenseGrid::getState ( const glm::ivec3 &  pos)
finaloverridevirtual

access

Implements engine::IChunkData.

◆ serialize()

void DenseGrid::serialize ( std::ostream &  out) const
finaloverridevirtual

Implements engine::IChunkData.

◆ setBlock() [1/2]

void DenseGrid::setBlock ( const glm::ivec3 &  pos,
BlockID  block 
)
finaloverridevirtual

Implements engine::IChunkData.

◆ setBlock() [2/2]

void DenseGrid::setBlock ( const glm::ivec3 &  pos,
BlockID  block,
BlockState  state 
)
finaloverridevirtual

Implements engine::IChunkData.

◆ setMultiBlock()

void DenseGrid::setMultiBlock ( const glm::ivec3 &  pos,
MultiBlock &&  multiBlock 
)
finaloverridevirtual

Implements engine::IChunkData.

◆ setState()

void DenseGrid::setState ( const glm::ivec3 &  pos,
BlockState &&  state 
)
finaloverridevirtual

Implements engine::IChunkData.


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