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 | Friends | List of all members
BoundTemperatureWorld Class Reference

#include <BoundTemperatureWorld.hpp>

Inheritance diagram for BoundTemperatureWorld:
Inheritance graph
Collaboration diagram for BoundTemperatureWorld:
Collaboration graph

Public Member Functions

 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 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
 
void foreachCellOnEdge (Edge edge, ForeachCellFn func) const override
 
Parallelepiped bounds () const noexceptoverride
 
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 Member Functions

virtual size_t _getIndexInData (Coord x, Coord y, Coord z) const
 

Protected Attributes

Parallelepiped _bounds
 
std::vector< Temperature_data
 

Friends

void swap (BoundTemperatureWorld &first, BoundTemperatureWorld &second)
 

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.

Constructor & Destructor Documentation

BoundTemperatureWorld::BoundTemperatureWorld ( Parallelepiped  bounds)

Here is the call graph for this function:

BoundTemperatureWorld::BoundTemperatureWorld ( const BoundTemperatureWorld other)
BoundTemperatureWorld::BoundTemperatureWorld ( BoundTemperatureWorld &&  other)

Member Function Documentation

size_t BoundTemperatureWorld::_getIndexInData ( Coord  x,
Coord  y,
Coord  z 
) const
protectedvirtual

Here is the call graph for this function:

Here is the caller graph for this function:

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

Reimplemented in ScalableBoundTemperatureWorld.

Here is the call graph for this function:

Parallelepiped BoundTemperatureWorld::bounds ( ) const
overridevirtualnoexcept
Returns
Bounds of this temperature world.

Implements ITemperatureWorldBoundableMixin.

void BoundTemperatureWorld::foreach ( ForeachCellFn  func) const
overridevirtual

Loops over each point.

Parameters
funcFunction to execute at each point.

Implements ITemperatureWorldBoundableMixin.

Reimplemented in ScalableBoundTemperatureWorld.

Here is the call graph for this function:

void BoundTemperatureWorld::foreachCellOnEdge ( Edge  edge,
ForeachCellFn  func 
) const
overridevirtual

Loops over each point on specified edge.

Parameters
edgeEdge.
funcFunction to execute at each point.

Implements ITemperatureWorldBoundableMixin.

Here is the call graph for this function:

Temperature BoundTemperatureWorld::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.

Here is the call graph for this function:

bool BoundTemperatureWorld::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.

Here is the caller graph for this function:

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

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

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

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

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

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

BoundTemperatureWorld & BoundTemperatureWorld::operator= ( BoundTemperatureWorld  other)
Coord BoundTemperatureWorld::previousCoordX ( Coord  x) const
overridevirtualnoexcept
Parameters
xCurrent coordinate by x axis.
Returns
Previous coordinate by x axis.

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

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

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

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

Implements ITemperatureWorld.

Reimplemented in ScalableBoundTemperatureWorld.

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

Reimplemented in ScalableBoundTemperatureWorld.

Here is the call graph for this function:

Friends And Related Function Documentation

void swap ( BoundTemperatureWorld first,
BoundTemperatureWorld second 
)
friend

Member Data Documentation

Parallelepiped BoundTemperatureWorld::_bounds
protected
std::vector<Temperature> BoundTemperatureWorld::_data
protected

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