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

#include <ScalingGeneratableChunkedTemperatureWorld.hpp>

Inheritance diagram for ScalingGeneratableChunkedTemperatureWorld:
Inheritance graph
Collaboration diagram for ScalingGeneratableChunkedTemperatureWorld:
Collaboration graph

Public Member Functions

 ScalingGeneratableChunkedTemperatureWorld (GeneratableChunkedTemperatureWorldTypedefs::NeedChunkFn needChunkFn, GeneratableChunkedTemperatureWorldTypedefs::MakeChunkFn makeChunkFn, Parallelepiped baseChunkSize)
 
void addPriorityPoint (Coord x, Coord y, Coord z) override
 
void removePriorityPoint (Coord x, Coord y, Coord z) override
 
void addChunk (std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
 
void removeChunk (std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
 
- Public Member Functions inherited from ITemperatureWorld
virtual ~ITemperatureWorld () noexcept=default
 
- Public Member Functions inherited from GeneratableChunkedTemperatureWorld
 GeneratableChunkedTemperatureWorld (GeneratableChunkedTemperatureWorldTypedefs::NeedChunkFn needChunkFn, GeneratableChunkedTemperatureWorldTypedefs::MakeChunkFn makeChunkFn)
 
bool hasOrIsGeneratableChunk (Coord x, Coord y, Coord z) const noexceptoverride
 
std::shared_ptr
< ITemperatureWorldBoundable
< ITemperatureWorld > > 
getOrGenerateChunk (Coord x, Coord y, Coord z) override
 
void onChunkAdd (OnChunkEventFn func) override
 
void onChunkRemove (OnChunkEventFn func) override
 
- Public Member Functions inherited from ChunkedTemperatureWorld
 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
 
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
 

Protected Member Functions

virtual void _updateScales ()
 
virtual void _updateScale (std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &chunk)
 

Protected Attributes

Parallelepiped _baseChunkSize
 
std::list< Point_priorityPoints
 
- Protected Attributes inherited from GeneratableChunkedTemperatureWorld
GeneratableChunkedTemperatureWorldTypedefs::NeedChunkFn _needChunkFn
 
GeneratableChunkedTemperatureWorldTypedefs::MakeChunkFn _makeChunkFn
 
std::list< OnChunkEventFn_onChunkAddListeners
 
std::list< OnChunkEventFn_onChunkRemoveListeners
 
- Protected Attributes inherited from ChunkedTemperatureWorld
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 >> &)>
 
- Public Types inherited from ITemperatureWorldChunkableObservableMixin
using OnChunkEventFn = std::function< void(std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >>)>
 

Detailed Description

Implementation of temperature world divided by chunks. It's backed by std::list. It will create new chunk if client accesses temperature of point in non-existing chunk. Also it will automatically upscale cell size in far chunks for optimization.

Constructor & Destructor Documentation

ScalingGeneratableChunkedTemperatureWorld::ScalingGeneratableChunkedTemperatureWorld ( GeneratableChunkedTemperatureWorldTypedefs::NeedChunkFn  needChunkFn,
GeneratableChunkedTemperatureWorldTypedefs::MakeChunkFn  makeChunkFn,
Parallelepiped  baseChunkSize 
)

Member Function Documentation

void ScalingGeneratableChunkedTemperatureWorld::_updateScale ( std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &  chunk)
protectedvirtual

Here is the call graph for this function:

Here is the caller graph for this function:

void ScalingGeneratableChunkedTemperatureWorld::_updateScales ( )
protectedvirtual

Here is the call graph for this function:

Here is the caller graph for this function:

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

Adds a chunk to this temperature world.

Parameters
chunkChunk to add.

Reimplemented from GeneratableChunkedTemperatureWorld.

Here is the call graph for this function:

void ScalingGeneratableChunkedTemperatureWorld::addPriorityPoint ( Coord  x,
Coord  y,
Coord  z 
)
overridevirtual

Marks point where there is something important.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.

Implements ITemperatureWorldPointPrioritizableMixin.

Here is the call graph for this function:

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

Removes chunk from this temperature world.

Parameters
chunkChunk to remove.

Reimplemented from GeneratableChunkedTemperatureWorld.

Here is the call graph for this function:

void ScalingGeneratableChunkedTemperatureWorld::removePriorityPoint ( Coord  x,
Coord  y,
Coord  z 
)
overridevirtual

Unmarks point where there is something important.

Parameters
xX coordinate.
yY coordinate.
zZ coordinate.

Implements ITemperatureWorldPointPrioritizableMixin.

Here is the call graph for this function:

Member Data Documentation

Parallelepiped ScalingGeneratableChunkedTemperatureWorld::_baseChunkSize
protected
std::list<Point> ScalingGeneratableChunkedTemperatureWorld::_priorityPoints
protected

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