00001 /* 00002 Copyright (c) 2002 Xavier Trochu 00003 00004 This software is provided 'as-is', without any express or implied warranty. In no event 00005 will the authors be held liable for any damages arising from the use of this software. 00006 00007 Permission is granted to anyone to use this software for any purpose, including commercial 00008 applications, and to alter it and redistribute it freely, subject to the following 00009 restrictions: 00010 00011 1. The origin of this software must not be misrepresented; you must not claim that you 00012 wrote the original software. If you use this software in a product, an acknowledgment 00013 in the product documentation would be appreciated but is not required. 00014 00015 2. Altered source versions must be plainly marked as such, and must not be misrepresented 00016 as being the original software. 00017 00018 3. This notice may not be removed or altered from any source distribution. 00019 */ 00020 #ifndef __COLOR_H_ 00021 #define __COLOR_H_ 00022 00023 #ifdef HAVE_CONFIG_H 00024 #include "config.h" 00025 #endif 00026 00027 #include <ostream> 00028 00033 class color { 00034 public: 00035 typedef unsigned char value_type; 00036 private: 00037 value_type _r; 00038 value_type _g; 00039 value_type _b; 00040 public: 00041 color() throw(); 00042 color(value_type, value_type, value_type) throw(); 00043 color(const color &) throw(); 00044 color & operator=(const color &); 00045 virtual ~color() throw(); 00046 value_type red() const throw(); 00047 value_type green() const throw(); 00048 value_type blue() const throw(); 00056 void delta(short * ptr) throw(); 00057 }; 00058 00059 extern std::ostream & operator <<(std::ostream &, const color &); 00060 00061 #endif