Init version

This commit is contained in:
2024-10-03 18:43:04 +07:00
commit f80052961f
186 changed files with 71676 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
#pragma once
#include "AbstractRegion.h"
#include <vector>
class Environment {
protected:
std::vector<Region> regions;
public:
};

View File

@@ -0,0 +1,40 @@
#pragma once
#include <vector>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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){};
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
using std::vector;
class Region {
protected:
long int capacity; // map<SpeciesID, long int> capacities
std::vector<long int> currentSubstrates; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
std::vector<long int> restorationSubstrates; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<long int> maxSubstrates; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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;}
};

View File

@@ -0,0 +1,2 @@
#include "AbstractEnvironment.h"

39
environment/Region.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "AbstractRegion.h"
#include <iostream>
//template<class T>
//////////////////////////////////////
Region::Region(Position3D<double> pos, long capac):
position3D(pos), capacity(capac)
{}
Region::Region(Position3D<double> pos, long capac,
const std::vector<long int> & curS, const std::vector<long int> & restS,
const std::vector<long int> & maxS, const std::vector<double> & regS):
position3D(pos), capacity(capac),
currentSubstrates(curS), restorationSubstrates(restS),
maxSubstrates(maxS), regulators(regS)
{
if(currentSubstrates.size() != restorationSubstrates.size()){
std::cerr<<"Warning! currentSubstrates size != restorationSubstrates size\n";
}
if(currentSubstrates.size() != maxSubstrates.size()){
std::cerr<<"Warning! currentSubstrates size != maximumSubstrates size\n";
}
if(restorationSubstrates.size() != maxSubstrates.size()){
std::cerr<<"Warning! restorationSubstrates size != maximumSubstrates size\n";
}
}
/**
* <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**/
void Region::restoreSubstrate(){
for(unsigned int i = 0; i < this->currentSubstrates.size(); i++){
this->currentSubstrates.at(i) = std::max(
this->currentSubstrates.at(i) + this->restorationSubstrates.at(i),
this->maxSubstrates.at(i));
}
}