#pragma once #include // Квадратная (кубическая) область template class Position3D { public: T xOrigin; T yOrigin; T zOrigin; T length; T width; T height; //Position3D(T x0, T y0, T z0, T len, T wid, T hei): Position3D(T x0, T y0, T z0, T len, T wid, T heigh): xOrigin(x0), yOrigin(y0), zOrigin(z0), length(len), width(wid), height(heigh){}; }; // Область, объединение которых образует окружающую среду using std::vector; class Region { protected: long int capacity; // map capacities std::vector currentSubstrates; // текущие объёмы субстратов в среде std::vector restorationSubstrates; // объёмы восстановления субстратов std::vector maxSubstrates; // максимальные объёмы субстратов std::vector regulators; // temperature, humidity etc ///////////////////// Position3D position3D; public: Region(Position3D pos, long int capac); Region(Position3D pos, long int capac, const vector&, const vector&, const vector&, const vector&); void restoreSubstrate(); long int getCapacity() const { return this->capacity;} };