module;

export module Color;

// Vari
export union CConvert
{
private:
    unsigned char rgb[3];       // Farbwert als RGB Anteile
    unsigned long color;        // Farbwert als ulong
public:
    // Enum fuer die Position der RGB-Anteile im rgb-Feld
    enum ColorPos { BLAU, GRUEN, ROT };
    // Farbwert als ulong setzen
    void SetColor(unsigned long val)
    {
        color = val;
    }
    // Farbwert als RGB-Wert setzen
    void SetRGB(unsigned char rot, unsigned char gruen,
        unsigned char blau)
    {
        rgb[ROT] = rot;
        rgb[GRUEN] = gruen;
        rgb[BLAU] = blau;
    }
    // Farbe als RGB-Werte zurueckgeben
    const unsigned char* GetRGB() const
    {
        return rgb;
    }
    // Farbwert als ulong zurueckgeben
    unsigned long GetColor() const
    {
        return color;
    }
};
