Init version
This commit is contained in:
10
environment/AbstractEnvironment.h
Normal file
10
environment/AbstractEnvironment.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
#include "AbstractRegion.h"
|
||||
#include <vector>
|
||||
|
||||
class Environment {
|
||||
protected:
|
||||
std::vector<Region> regions;
|
||||
public:
|
||||
|
||||
};
|
||||
40
environment/AbstractRegion.h
Normal file
40
environment/AbstractRegion.h
Normal 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;}
|
||||
};
|
||||
2
environment/Environment.cpp
Normal file
2
environment/Environment.cpp
Normal file
@@ -0,0 +1,2 @@
|
||||
#include "AbstractEnvironment.h"
|
||||
|
||||
39
environment/Region.cpp
Normal file
39
environment/Region.cpp
Normal 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user