|
|
|
/***************************************************************************
|
|
|
|
color.h - description
|
|
|
|
-------------------
|
|
|
|
begin : Sun Jul 9 2000
|
|
|
|
copyright : (C) 2000 by Artur Rataj
|
|
|
|
email : art@zeus.polsl.gliwice.pl
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef COLOR_H
|
|
|
|
#define COLOR_H
|
|
|
|
|
|
|
|
#include "main.h"
|
|
|
|
|
|
|
|
/**A color class, holds its components and name
|
|
|
|
*@author Artur Rataj
|
|
|
|
*/
|
|
|
|
|
|
|
|
class Color {
|
|
|
|
public:
|
|
|
|
/** indices of components
|
|
|
|
*/
|
|
|
|
enum { RED_INDEX = 0,
|
|
|
|
GREEN_INDEX = 1,
|
|
|
|
BLUE_INDEX = 2,
|
|
|
|
COMPONENTS_NUM = 3 };
|
|
|
|
|
|
|
|
public:
|
|
|
|
/** constructs a color
|
|
|
|
*/
|
|
|
|
Color();
|
|
|
|
/** constructs a color with given components and a name
|
|
|
|
*/
|
|
|
|
Color(const int red, const int green, const int blue, const TQString& name);
|
|
|
|
~Color();
|
|
|
|
/** sets a component
|
|
|
|
*/
|
|
|
|
void setComponent(const int index, const int value);
|
|
|
|
/** sets components
|
|
|
|
*/
|
|
|
|
void setComponents(const int red, const int green, const int blue);
|
|
|
|
/** sets a name
|
|
|
|
*/
|
|
|
|
void setName(const TQString& name);
|
|
|
|
/** @return a component
|
|
|
|
*/
|
|
|
|
int component(const int index) const;
|
|
|
|
/** @return components
|
|
|
|
*/
|
|
|
|
const int* components() const;
|
|
|
|
/** @return a color name
|
|
|
|
*/
|
|
|
|
const TQString& name() const;
|
|
|
|
/** @return if is equal to color
|
|
|
|
*/
|
|
|
|
bool equals(const Color& color);
|
|
|
|
/** modifies a component, amount can be either positive or negative
|
|
|
|
*/
|
|
|
|
void modifyComponent(const int index, const int value, const double amount);
|
|
|
|
/** modifies components, amount can be either positive or negative
|
|
|
|
*/
|
|
|
|
void modifyComponents(const int red, const int green, const int blue, const double amount);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
/** components table
|
|
|
|
*/
|
|
|
|
int m_components[COMPONENTS_NUM];
|
|
|
|
/** a color name
|
|
|
|
*/
|
|
|
|
TQString m_name;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|