41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#pragma once
|
|
#include <vector>
|
|
|
|
// Êâàäðàòíàÿ (êóáè÷åñêàÿ) îáëàñòü
|
|
template<class T>
|
|
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<SpeciesID, long int> capacities
|
|
std::vector<long int> currentSubstrates; // òåêóùèå îáú¸ìû ñóáñòðàòîâ â ñðåäå
|
|
std::vector<long int> restorationSubstrates; // îáú¸ìû âîññòàíîâëåíèÿ ñóáñòðàòîâ
|
|
std::vector<long int> maxSubstrates; // ìàêñèìàëüíûå îáú¸ìû ñóáñòðàòîâ
|
|
std::vector<double> regulators; // temperature, humidity etc
|
|
|
|
/////////////////////
|
|
Position3D<double> position3D;
|
|
|
|
public:
|
|
Region(Position3D<double> pos, long int capac);
|
|
Region(Position3D<double> pos, long int capac,
|
|
const vector<long int>&, const vector<long int>&,
|
|
const vector<long int>&, const vector<double>&);
|
|
void restoreSubstrate();
|
|
long int getCapacity() const { return this->capacity;}
|
|
};
|