// $Source: /usr/local/SimSoft/SoftShop/XGraph/Space/Color.h,v $
// $Revision: 1.20 $
// $Author: baum $
// $Date: 2001/11/29 15:52:24 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-20 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: Color.h,v $
// Revision 1.20  2001/11/29 15:52:24  baum
// -In Kalender.cpp und Kalender.h Handsteuerung eingebaut
//

#ifndef _COLOR_H
#define _COLOR_H 1

#include <iostream.h>

#ifdef _COLOR_CPP
#  undef _impexp
#  define _impexp __declspec(dllexport)
#elif defined BUILD_XGRAPH_DLL
#  undef _impexp
#  define _impexp
#else
#  undef _impexp
#  define _impexp __declspec(dllimport)
#endif

#if defined __GNUG__ || defined __hpux
#  undef _impexp
#  define _impexp
#endif

//==================================================================
//		Klassen-Header
//		fuer class RGBAColor 
//==================================================================

//##ModelId=4030D78100FA
class _impexp RGBAColor
  {
  public:
    //Konstruktor

    // Values should be between 0.0 and 1.0
	//##ModelId=4030D78100FB
    RGBAColor (const double& red, const double& green, const double& blue, const double& alpha = 1.0);

    // Values should be between 0 and 255
	//##ModelId=4030D781010B
    RGBAColor (const unsigned& red, const unsigned& green, const unsigned& blue, const unsigned& alpha = 255);

    // define Color by name of the Standard X-Windows Name (rgb.txt)
    // for exact Name have a look at file 'StdColor.cpp'
    // if there is no match for your string the Default-Return-color is 'white'
	//##ModelId=4030D7810119
    RGBAColor (const char *ColName);

    // Copy-Constructor
	//##ModelId=4030D781011B
    RGBAColor (const RGBAColor&);

    //Destructor
	//##ModelId=4030D781011D
    ~RGBAColor ();

    //Zuweisungsoperator
	//##ModelId=4030D781011E
    RGBAColor& operator = (const RGBAColor&);

    // Vergleichsoperatoren
	//##ModelId=4030D7810129
    bool operator == (const RGBAColor&);
	//##ModelId=4030D781012B
    bool operator != (const RGBAColor&);

    //IO-Funktionen
	//##ModelId=4030D781012D
    void stream (ostream&, unsigned spaces = 0) const;

    // getting an C-Array[4] for OpenGL
    // that's the reason why 'float' and not 'double'
	//##ModelId=4030D781013B
    const float *OpenGLForm () const;

  public:
    //Datamembers
	//##ModelId=4030D781013D
    float Col[4];

}; // class RGBAColor

#endif	// !defined _COLOR_H

