// Geom. Objekte: Statische Member: drawAll (einfache Version mit List)
// Implementierung der Klasse "Color"
//
// Klaus Kusche, 2020

#include "color.h"

int Color::makeColorVal(int rgbNum)
{
  // berechne aus sColorCounter einen zyklischen Wert i von 0 bis 6*255-1:
  // unser Farbkreis enthält 6*255 verschiedene Farben
  // die Berechnung des Farbwertes für rot, grün und blau ist dieselbe,
  // aber jeweils um 2*255 (ein Drittel des Farbkreises) verschoben
  int i = (sColorCounter + 2*255 * rgbNum) % (6*255);
  
  if (i < 255) return i;                  // 1. Sechstel: Farbwert steigt an
  else if (i < 3*255) return 255;         // 2. & 3. Sechstel: Farbwert fix 255
  else if (i < 4*255) return 4*255 - i;   // 4. Sechstel: Farbwert sinkt ab
  else return 0;                          // 5. & 6. Sechstel: Farbwert fix 0
}
    
// Speicherplatz für das static-Member anlegen!
int Color::sColorCounter;  
