summaryrefslogtreecommitdiffstats
path: root/Temparray.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Temparray.cpp')
-rw-r--r--Temparray.cpp50
1 files changed, 39 insertions, 11 deletions
diff --git a/Temparray.cpp b/Temparray.cpp
index 0686ef0..ae75583 100644
--- a/Temparray.cpp
+++ b/Temparray.cpp
@@ -481,25 +481,53 @@ std::list<Triangle> Temparray::getTriangles(){
void Temparray::coloring() {
calcAverage();
- float r[4], g[4], b[4];
+ float r[4], g[4], b[4], percent, factor;
for(int i=0; i<sx; ++i){
for(int j=0; j<sy; ++j){
for(int k=0; k<sz; ++k){
for(int l=0; l<6; ++l){
for(int m=0; m<4; ++m){
- //if(temperaturenew(i, j, k, l, m) <= averagetemp/2) b[m] = 1;
- //else if(temperaturenew(i, j, k, l, m) < averagetemp)
- b[m] = 1;//1/(averagetemp/2+temperaturenew(i, j, k, l, m));
+ percent = temperatureold(i, j, k, l, m)/100;
+
+ if (percent < 0.5){
+ r[m] = 0;
+ g[m] = percent*2;
+ b[m] = 1-percent*2;
- g[m]=1;
+ if(g[m] > b[m]){
+ factor = 1 + (1-g[m]) / g[m];
+ }
+ else {
+ factor = 1 + (1-b[m]) / b[m];
+ }
+ g[m] *= factor;
+ b[m] *= factor;
+ }
+ else if (percent == 0.5) {
+ r[m] = 0;
+ g[m] = 1;
+ b[m] = 0;
+ }
+ else if (percent > 0.5) {
+ r[m] = (percent-0.5)*2;
+ g[m] = 1-(percent-0.5)*2;
+ b[m] = 0;
+
+ if(r[m] > g[m]){
+ factor = 1 + (1-r[m]) / r[m];
+ }
+ else {
+ factor = 1 + (1-g[m]) / g[m];
+ }
+ r[m] *= factor;
+ g[m] *= factor;
+ }
- //if(temperaturenew(i, j, k, l, m) >= 100-averagetemp/2) r[m] = 1;
-// r[m]=0;
+ cubehole(i, j, k, l).setColor(vmml::vec4f(r[0], g[0], b[0], 1.0),
+ vmml::vec4f(r[1], g[1], b[1], 1.0),
+ vmml::vec4f(r[2], g[2], b[2], 1.0),
+ vmml::vec4f(r[3], g[3], b[3], 1.0));
}
- cubehole(i, j, k, l).setColor(vmml::vec4f(r[0], g[0], b[0], 1.0),
- vmml::vec4f(r[1], g[1], b[1], 1.0),
- vmml::vec4f(r[2], g[2], b[2], 1.0),
- vmml::vec4f(r[3], g[3], b[3], 1.0));
}
}
}