Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Attributes | List of all members
ChunkedTemperatureWorld Class Reference

#include <ChunkedTemperatureWorld.hpp>

Inheritance diagram for ChunkedTemperatureWorld:
Inheritance graph
Collaboration diagram for ChunkedTemperatureWorld:
Collaboration graph

Public Member Functions

 ChunkedTemperatureWorld ()
 
bool hasChunk (Coord x, Coord y, Coord z) const noexceptoverride
 
std::shared_ptr
< ITemperatureWorldBoundable
< ITemperatureWorld > > 
getChunk (Coord x, Coord y, Coord z) const override
 
void foreachChunk (ForeachChunkFn func) const override
 
bool has (Coord x, Coord y, Coord z) const noexceptoverride
 
Temperature get (Coord x, Coord y, Coord z) const override
 
void set (Coord x, Coord y, Coord z, Temperature temperature) override
 
void amplify (Coord x, Coord y, Coord z, Temperature temperature) override
 
void addChunk (std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
 
void removeChunk (std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
 
Coord previousCoordX (Coord x) const noexceptoverride
 
Coord previousCoordY (Coord y) const noexceptoverride
 
Coord previousCoordZ (Coord z) const noexceptoverride
 
Coord nextCoordX (Coord x) const noexceptoverride
 
Coord nextCoordY (Coord y) const noexceptoverride
 
Coord nextCoordZ (Coord z) const noexceptoverride
 
- Public Member Functions inherited from ITemperatureWorld
virtual ~ITemperatureWorld () noexcept=default
 

Protected Attributes

std::list< std::shared_ptr
< ITemperatureWorldBoundable
< ITemperatureWorld > > > 
_chunks
 

Additional Inherited Members

- Public Types inherited from ITemperatureWorldChunkableMixin
using ForeachChunkFn = std::function< void(const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &)>
 

Detailed Description

Implementation of temperature world divided by chunks. It's backed by std::list.

Constructor & Destructor Documentation

ChunkedTemperatureWorld::ChunkedTemperatureWorld ( )

Member Function Documentation

void ChunkedTemperatureWorld::addChunk ( std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >>  chunk)
overridevirtual

Adds a chunk to this temperature world.

Parameters
chunkChunk to add.

Implements ITemperatureWorldChunkableMutableMixin.

Reimplemented in ScalingGeneratableChunkedTemperatureWorld, and GeneratableChunkedTemperatureWorld.

Here is the caller graph for this function:

void ChunkedTemperatureWorld::amplify ( Coord  x,
Coord  y,
Coord  z,
Temperature  temperature 
)
overridevirtual

Adds or substracts temperature value from existing temperature value at the point.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
temperatureTemperature difference.

Implements ITemperatureWorld.

void ChunkedTemperatureWorld::foreachChunk ( ForeachChunkFn  func) const
overridevirtual

Loops over each chunk.

Parameters
funcFunction to execute at each chunk.

Implements ITemperatureWorldChunkableMixin.

Temperature ChunkedTemperatureWorld::get ( Coord  x,
Coord  y,
Coord  z 
) const
overridevirtual

Returns temperature at the point.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
Returns
Temperature at the point.

Implements ITemperatureWorld.

shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > ChunkedTemperatureWorld::getChunk ( Coord  x,
Coord  y,
Coord  z 
) const
overridevirtual

Retrieves chunk which holds this point.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
Returns
Chunk at the point.

Implements ITemperatureWorldChunkableMixin.

bool ChunkedTemperatureWorld::has ( Coord  x,
Coord  y,
Coord  z 
) const
overridevirtualnoexcept

Tells whether temperature at the point is accessible. This method doesn't throw exceptions.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
Returns
True if the point is accessible.

Implements ITemperatureWorld.

bool ChunkedTemperatureWorld::hasChunk ( Coord  x,
Coord  y,
Coord  z 
) const
overridevirtualnoexcept

Tells whether the chunk which holds this point exists. This method doesn't throw exceptions.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
Returns
True if chunk exists.

Implements ITemperatureWorldChunkableMixin.

Coord ChunkedTemperatureWorld::nextCoordX ( Coord  x) const
overridevirtualnoexcept
Parameters
xCurrent coordinate by x axis.
Returns
Next coordinate by x axis.

Implements ITemperatureWorld.

Coord ChunkedTemperatureWorld::nextCoordY ( Coord  y) const
overridevirtualnoexcept
Parameters
yCurrent coordinate by y axis.
Returns
Next coordinate by y axis.

Implements ITemperatureWorld.

Coord ChunkedTemperatureWorld::nextCoordZ ( Coord  z) const
overridevirtualnoexcept
Parameters
zCurrent coordinate by z axis.
Returns
Next coordinate by z axis.

Implements ITemperatureWorld.

Coord ChunkedTemperatureWorld::previousCoordX ( Coord  x) const
overridevirtualnoexcept
Parameters
xCurrent coordinate by x axis.
Returns
Previous coordinate by x axis.

Implements ITemperatureWorld.

Coord ChunkedTemperatureWorld::previousCoordY ( Coord  y) const
overridevirtualnoexcept
Parameters
yCurrent coordinate by y axis.
Returns
Previous coordinate by y axis.

Implements ITemperatureWorld.

Coord ChunkedTemperatureWorld::previousCoordZ ( Coord  z) const
overridevirtualnoexcept
Parameters
zCurrent coordinate by z axis.
Returns
Previous coordinate by z axis.

Implements ITemperatureWorld.

void ChunkedTemperatureWorld::removeChunk ( std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >>  chunk)
overridevirtual

Removes chunk from this temperature world.

Parameters
chunkChunk to remove.

Implements ITemperatureWorldChunkableMutableMixin.

Reimplemented in ScalingGeneratableChunkedTemperatureWorld, and GeneratableChunkedTemperatureWorld.

Here is the caller graph for this function:

void ChunkedTemperatureWorld::set ( Coord  x,
Coord  y,
Coord  z,
Temperature  temperature 
)
overridevirtual

Sets temperature at the point.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.
temperatureTemperature to set.

Implements ITemperatureWorld.

Member Data Documentation

std::list<std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld> > > ChunkedTemperatureWorld::_chunks
protected

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