Files
DEC/environment/AbstractRegion.h
2024-10-03 18:43:04 +07:00

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;}
};