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
ScalableBoundTemperatureWorld Class Reference

#include <ScalableBoundTemperatureWorld.hpp>

Inheritance diagram for ScalableBoundTemperatureWorld:
Inheritance graph
Collaboration diagram for ScalableBoundTemperatureWorld:
Collaboration graph

Public Member Functions

 ScalableBoundTemperatureWorld (Parallelepiped bounds)
 
IntScaleParallelepiped cellScale () const noexceptoverride
 
void setCellScale (IntScaleParallelepiped cellScale) override
 
void set (Coord x, Coord y, Coord z, Temperature temperature) override
 
void amplify (Coord x, Coord y, Coord z, Temperature temperature) override
 
void foreach (ForeachCellFn func) const 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
 
- Public Member Functions inherited from BoundTemperatureWorld
 BoundTemperatureWorld (Parallelepiped bounds)
 
 BoundTemperatureWorld (const BoundTemperatureWorld &other)
 
 BoundTemperatureWorld (BoundTemperatureWorld &&other)
 
BoundTemperatureWorldoperator= (BoundTemperatureWorld other)
 
bool has (Coord x, Coord y, Coord z) const noexceptoverride
 
Temperature get (Coord x, Coord y, Coord z) const override
 
void foreachCellOnEdge (Edge edge, ForeachCellFn func) const override
 
Parallelepiped bounds () const noexceptoverride
 

Protected Member Functions

virtual Coord _findScaledAreaMinByAxis (Coord initialCoord, IntScale scale, Coord minCoord) const noexcept
 
virtual Coord _findScaledAreaMaxByAxis (Coord initialCoord, IntScale scale, Coord maxCoord) const noexcept
 
virtual std::pair< Coord, Coord_findScaledAreaByAxis (Coord initialCoord, IntScale scale, Coord minCoord, Coord maxCoord) const noexcept
 
virtual Parallelepiped _findScaledArea (Coord x, Coord y, Coord z) const noexcept
 
- Protected Member Functions inherited from BoundTemperatureWorld
virtual size_t _getIndexInData (Coord x, Coord y, Coord z) const
 

Protected Attributes

IntScaleParallelepiped _cellScale
 
- Protected Attributes inherited from BoundTemperatureWorld
Parallelepiped _bounds
 
std::vector< Temperature_data
 

Additional Inherited Members

- Public Types inherited from ITemperatureWorldBoundableMixin
using ForeachCellFn = std::function< void(Coord, Coord, Coord)>
 

Detailed Description

Implementation of temperature world with bounds. It's backed by std::vector. You can make cell size bigger for set, amplify and foreach methods. It's useful for optimization.

Constructor & Destructor Documentation

ScalableBoundTemperatureWorld::ScalableBoundTemperatureWorld ( Parallelepiped  bounds)

Member Function Documentation

Parallelepiped ScalableBoundTemperatureWorld::_findScaledArea ( Coord  x,
Coord  y,
Coord  z 
) const
protectedvirtualnoexcept

Here is the caller graph for this function:

pair< Coord, Coord > ScalableBoundTemperatureWorld::_findScaledAreaByAxis ( Coord  initialCoord,
IntScale  scale,
Coord  minCoord,
Coord  maxCoord 
) const
protectedvirtualnoexcept
Coord ScalableBoundTemperatureWorld::_findScaledAreaMaxByAxis ( Coord  initialCoord,
IntScale  scale,
Coord  maxCoord 
) const
protectedvirtualnoexcept
Coord ScalableBoundTemperatureWorld::_findScaledAreaMinByAxis ( Coord  initialCoord,
IntScale  scale,
Coord  minCoord 
) const
protectedvirtualnoexcept
void ScalableBoundTemperatureWorld::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.

Reimplemented from BoundTemperatureWorld.

Here is the call graph for this function:

IntScaleParallelepiped ScalableBoundTemperatureWorld::cellScale ( ) const
overridevirtualnoexcept
Returns
Scale of each cell in three dimensions.

Implements ITemperatureWorldScalableMixin.

void ScalableBoundTemperatureWorld::foreach ( ForeachCellFn  func) const
overridevirtual

Loops over each point.

Parameters
funcFunction to execute at each point.

Reimplemented from BoundTemperatureWorld.

Here is the call graph for this function:

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

Reimplemented from BoundTemperatureWorld.

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

Reimplemented from BoundTemperatureWorld.

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

Reimplemented from BoundTemperatureWorld.

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

Reimplemented from BoundTemperatureWorld.

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

Reimplemented from BoundTemperatureWorld.

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

Reimplemented from BoundTemperatureWorld.

void ScalableBoundTemperatureWorld::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.

Reimplemented from BoundTemperatureWorld.

Here is the call graph for this function:

void ScalableBoundTemperatureWorld::setCellScale ( IntScaleParallelepiped  scale)
overridevirtual

Sets scale of each cell.

Parameters
scaleScale in three dimensions.

Implements ITemperatureWorldScalableMutableMixin.

Here is the call graph for this function:

Member Data Documentation

IntScaleParallelepiped ScalableBoundTemperatureWorld::_cellScale
protected

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