Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
AverageShareTemperatureWorldUpdater.hpp
Go to the documentation of this file.
1 //
2 // Created by Oleg Morozenkov on 31.05.17.
3 //
4 
5 #ifndef RECAST_AVERAGESHARETEMPERATUREWORLDUPDATER_H
6 #define RECAST_AVERAGESHARETEMPERATUREWORLDUPDATER_H
7 
8 
9 #include <memory>
10 #include <list>
15 
24 public:
26  double temperatureExchangeCoefficient,
27  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> world,
28  std::shared_ptr<ITimerBlockable<ITimer>> timer);
29 
30  void update() override;
31 
32  bool canAddNearChunk(Edge edge, const std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>& chunk) const noexcept override;
33  void addNearChunk(Edge edge, std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> chunk) override;
34 
35 protected:
36  void _checkThenShareTemperature(double dt,
37  const std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>& firstWorld,
38  Coord x, Coord y, Coord z,
39  const std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>& secondWorld,
40  Coord nextX, Coord nextY, Coord nextZ);
41 
42  void _shareTemperature(double dt,
43  const std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>& firstWorld,
44  Coord x, Coord y, Coord z,
45  const std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>& secondWorld,
46  Coord nextX, Coord nextY, Coord nextZ);
47 
49  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> _world;
50  std::shared_ptr<ITimerBlockable<ITimer>> _timer;
51 
52  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> _nearRightChunk;
53  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> _nearUpChunk;
54  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> _nearFarChunk;
55 };
56 
57 
58 #endif //RECAST_AVERAGESHARETEMPERATUREWORLDUPDATER_H
Definition: Coord.hpp:16
Edge
Definition: Edge.hpp:13
void _checkThenShareTemperature(double dt, const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &firstWorld, Coord x, Coord y, Coord z, const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &secondWorld, Coord nextX, Coord nextY, Coord nextZ)
Definition: AverageShareTemperatureWorldUpdater.cpp:129
void _shareTemperature(double dt, const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &firstWorld, Coord x, Coord y, Coord z, const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &secondWorld, Coord nextX, Coord nextY, Coord nextZ)
Definition: AverageShareTemperatureWorldUpdater.cpp:140
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > _nearFarChunk
Definition: AverageShareTemperatureWorldUpdater.hpp:54
Definition: IUpdaterTemperatureWorldSemiChunkUpdatable.hpp:44
bool canAddNearChunk(Edge edge, const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &chunk) const noexceptoverride
Definition: AverageShareTemperatureWorldUpdater.cpp:56
void addNearChunk(Edge edge, std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
Definition: AverageShareTemperatureWorldUpdater.cpp:109
double _temperatureExchangeCoefficient
Definition: AverageShareTemperatureWorldUpdater.hpp:48
AverageShareTemperatureWorldUpdater(double temperatureExchangeCoefficient, std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> world, std::shared_ptr< ITimerBlockable< ITimer >> timer)
Definition: AverageShareTemperatureWorldUpdater.cpp:12
std::shared_ptr< ITimerBlockable< ITimer > > _timer
Definition: AverageShareTemperatureWorldUpdater.hpp:50
void update() override
Definition: AverageShareTemperatureWorldUpdater.cpp:21
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > _nearRightChunk
Definition: AverageShareTemperatureWorldUpdater.hpp:52
Definition: AverageShareTemperatureWorldUpdater.hpp:23
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > _world
Definition: AverageShareTemperatureWorldUpdater.hpp:49
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > _nearUpChunk
Definition: AverageShareTemperatureWorldUpdater.hpp:53