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

#include <ScalingGeneratableChunkedTemperatureWorldInjector.hpp>

Collaboration diagram for ScalingGeneratableChunkedTemperatureWorldInjector:
Collaboration graph

Public Member Functions

 ScalingGeneratableChunkedTemperatureWorldInjector ()
 
bool hasChunkBounds () const noexcept
 
Parallelepiped chunkBounds () const
 
void setChunkBounds (Parallelepiped chunkBounds)
 
bool hasTemperatureExchangeCoefficient () const noexcept
 
double temperatureExchangeCoefficient () const
 
void setTemperatureExchangeCoefficient (double temperatureExchangeCoefficient)
 
bool hasMinUpdateDelta () const noexcept
 
std::chrono::milliseconds minUpdateDelta () const
 
void setMinUpdateDelta (std::chrono::milliseconds minUpdateDelta)
 
std::shared_ptr
< ITemperatureWorldChunkableObservable
< ITemperatureWorldChunkableGeneratable
< ITemperatureWorldChunkableMutable
< ITemperatureWorldChunkable
< ITemperatureWorld > > > > > 
world ()
 
std::shared_ptr< IUpdaterupdater ()
 
std::shared_ptr
< ITimerBlockable< ITimer > > 
timer ()
 

Protected Member Functions

void _makeWorld ()
 
void _makeUpdater ()
 

Static Protected Member Functions

static bool _needChunkFn (Coord x, Coord y, Coord z) noexcept
 
static std::shared_ptr
< ITemperatureWorldBoundable
< ITemperatureWorld > > 
_makeChunkFn (Parallelepiped baseChunkBounds, Coord x, Coord y, Coord z)
 
static std::shared_ptr
< IUpdaterTemperatureWorldSemiChunkUpdatable
< IUpdater > > 
_makeChunkUpdaterFn (double temperatureExchangeCoefficient, std::function< std::shared_ptr< ITimerBlockable< ITimer >>()> timerFactory, std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk)
 

Protected Attributes

std::unique_ptr< Parallelepiped_chunkBounds
 
std::unique_ptr< double > _temperatureExchangeCoefficient
 
std::unique_ptr
< std::chrono::milliseconds > 
_minUpdateDelta
 
std::shared_ptr
< ITemperatureWorldChunkableObservable
< ITemperatureWorldChunkableGeneratable
< ITemperatureWorldChunkableMutable
< ITemperatureWorldChunkable
< ITemperatureWorld > > > > > 
_world
 
std::shared_ptr< IUpdater_updater
 

Detailed Description

Injector. This class builds scaling chunked temperature world and its updater. You must set chunk bounds via setChunkBounds method. These chunk bounds will be the same for all chunks. Temperature exchange coefficient and minimum update delta are set to defaults.

Constructor & Destructor Documentation

ScalingGeneratableChunkedTemperatureWorldInjector::ScalingGeneratableChunkedTemperatureWorldInjector ( )

Member Function Documentation

shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > ScalingGeneratableChunkedTemperatureWorldInjector::_makeChunkFn ( Parallelepiped  baseChunkBounds,
Coord  x,
Coord  y,
Coord  z 
)
staticprotected

Here is the call graph for this function:

shared_ptr< IUpdaterTemperatureWorldSemiChunkUpdatable< IUpdater > > ScalingGeneratableChunkedTemperatureWorldInjector::_makeChunkUpdaterFn ( double  temperatureExchangeCoefficient,
std::function< std::shared_ptr< ITimerBlockable< ITimer >>()>  timerFactory,
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >>  chunk 
)
staticprotected
void ScalingGeneratableChunkedTemperatureWorldInjector::_makeUpdater ( )
protected
void ScalingGeneratableChunkedTemperatureWorldInjector::_makeWorld ( )
protected
bool ScalingGeneratableChunkedTemperatureWorldInjector::_needChunkFn ( Coord  x,
Coord  y,
Coord  z 
)
staticprotectednoexcept
Parallelepiped ScalingGeneratableChunkedTemperatureWorldInjector::chunkBounds ( ) const

This method can throw an exception if chunk bounds are not set.

Returns
Chunk bounds.
bool ScalingGeneratableChunkedTemperatureWorldInjector::hasChunkBounds ( ) const
noexcept

This method is exception-safe.

Returns
True if chunk bounds have been set.
bool ScalingGeneratableChunkedTemperatureWorldInjector::hasMinUpdateDelta ( ) const
noexcept

This method is exception-safe.

Returns
True if minimum update delta have been set.
bool ScalingGeneratableChunkedTemperatureWorldInjector::hasTemperatureExchangeCoefficient ( ) const
noexcept

This method is exception-safe.

Returns
True if temperature exchange coefficient have been set.
milliseconds ScalingGeneratableChunkedTemperatureWorldInjector::minUpdateDelta ( ) const

Minimum time between world updates is the minimum update delta. This method can throw an exception if minimum update delta is not set.

Returns
Minimum update delta.
void ScalingGeneratableChunkedTemperatureWorldInjector::setChunkBounds ( Parallelepiped  chunkBounds)

Sets chunk bounds.

Parameters
chunkBoundsChunk bounds.
void ScalingGeneratableChunkedTemperatureWorldInjector::setMinUpdateDelta ( std::chrono::milliseconds  minUpdateDelta)

Sets minimum update delta. Minimum time between world updates is minimum update delta.

Parameters
minUpdateDeltaMinimum update delta.
void ScalingGeneratableChunkedTemperatureWorldInjector::setTemperatureExchangeCoefficient ( double  temperatureExchangeCoefficient)

Sets temperature exchange coefficient. The more temperature exchange coefficient is, the faster temperature exchange will be.

Parameters
temperatureExchangeCoefficientTemperature exchange coefficient.
double ScalingGeneratableChunkedTemperatureWorldInjector::temperatureExchangeCoefficient ( ) const

The more temperature exchange coefficient is, the faster temperature exchange will be. This method can throw an exception if temperature exchange coefficient is not set.

Returns
Temperature exchange coefficient.
shared_ptr< ITimerBlockable< ITimer > > ScalingGeneratableChunkedTemperatureWorldInjector::timer ( )

Timer will be built on each call.

Returns
Built blocking timer which is used in the world updater.
shared_ptr< IUpdater > ScalingGeneratableChunkedTemperatureWorldInjector::updater ( )

Temperature world updater will be built only once for an injector instance. You can get the world via world getter.

Returns
Built chunked temperature world updater.

Temperature world will be built only once for an injector instance. updater getter uses the same world instance.

Returns
Built chunked temperature world.

Member Data Documentation

std::unique_ptr<Parallelepiped> ScalingGeneratableChunkedTemperatureWorldInjector::_chunkBounds
protected
std::unique_ptr<std::chrono::milliseconds> ScalingGeneratableChunkedTemperatureWorldInjector::_minUpdateDelta
protected
std::unique_ptr<double> ScalingGeneratableChunkedTemperatureWorldInjector::_temperatureExchangeCoefficient
protected
std::shared_ptr<IUpdater> ScalingGeneratableChunkedTemperatureWorldInjector::_updater
protected

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