Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
BoundTemperatureWorld.hpp
Go to the documentation of this file.
1 //
2 // Created by Oleg Morozenkov on 31.05.17.
3 //
4 
5 #ifndef RECAST_VECTORTEMPERATUREWORLD_H
6 #define RECAST_VECTORTEMPERATUREWORLD_H
7 
8 
9 #include <vector>
11 
15 class BoundTemperatureWorld : public virtual ITemperatureWorldBoundable<ITemperatureWorld> {
16 public:
18 
22 
23  friend void swap(BoundTemperatureWorld& first, BoundTemperatureWorld& second);
24 
25  bool has(Coord x, Coord y, Coord z) const noexcept override;
26  Temperature get(Coord x, Coord y, Coord z) const override;
27  void set(Coord x, Coord y, Coord z, Temperature temperature) override;
28  void amplify(Coord x, Coord y, Coord z, Temperature temperature) override;
29 
30  void foreach(ForeachCellFn func) const override;
31  void foreachCellOnEdge(Edge edge, ForeachCellFn func) const override;
32 
33  Parallelepiped bounds() const noexcept override;
34 
35  Coord previousCoordX(Coord x) const noexcept override;
36  Coord previousCoordY(Coord y) const noexcept override;
37  Coord previousCoordZ(Coord z) const noexcept override;
38  Coord nextCoordX(Coord x) const noexcept override;
39  Coord nextCoordY(Coord y) const noexcept override;
40  Coord nextCoordZ(Coord z) const noexcept override;
41 
42 protected:
43  virtual size_t _getIndexInData(Coord x, Coord y, Coord z) const;
44 
46  std::vector<Temperature> _data;
47 };
48 
50 
51 
52 #endif //RECAST_VECTORTEMPERATUREWORLD_H
BoundTemperatureWorld & operator=(BoundTemperatureWorld other)
Definition: BoundTemperatureWorld.cpp:30
BoundTemperatureWorld(Parallelepiped bounds)
Definition: BoundTemperatureWorld.cpp:12
Parallelepiped _bounds
Definition: BoundTemperatureWorld.hpp:45
Definition: Temperature.hpp:15
bool has(Coord x, Coord y, Coord z) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:16
Coord previousCoordX(Coord x) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:123
Definition: Coord.hpp:16
Edge
Definition: Edge.hpp:13
Definition: Parallelepiped.hpp:17
virtual size_t _getIndexInData(Coord x, Coord y, Coord z) const
Definition: BoundTemperatureWorld.cpp:113
void foreachCellOnEdge(Edge edge, ForeachCellFn func) const override
Definition: BoundTemperatureWorld.cpp:57
Definition: ITemperatureWorldBoundable.hpp:53
void set(Coord x, Coord y, Coord z, Temperature temperature) override
Definition: BoundTemperatureWorld.cpp:39
Parallelepiped bounds() const noexceptoverride
Definition: BoundTemperatureWorld.cpp:109
Coord previousCoordZ(Coord z) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:131
std::vector< Temperature > _data
Definition: BoundTemperatureWorld.hpp:46
void amplify(Coord x, Coord y, Coord z, Temperature temperature) override
Definition: BoundTemperatureWorld.cpp:43
std::function< void(Coord, Coord, Coord)> ForeachCellFn
Definition: ITemperatureWorldBoundable.hpp:23
friend void swap(BoundTemperatureWorld &first, BoundTemperatureWorld &second)
Definition: BoundTemperatureWorld.inc.hpp:11
Coord nextCoordZ(Coord z) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:143
Coord nextCoordX(Coord x) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:135
Coord previousCoordY(Coord y) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:127
Definition: BoundTemperatureWorld.hpp:15
Coord nextCoordY(Coord y) const noexceptoverride
Definition: BoundTemperatureWorld.cpp:139