VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkNamedColors.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00071 #ifndef vtkNamedColors_h 00072 #define vtkNamedColors_h 00073 00074 #include "vtkCommonColorModule.h" // For export macro 00075 #include "vtkObject.h" 00076 #include "vtkColor.h" // Needed for vtkColor[34]ub 00077 #include "vtkStdString.h" // Needed for arguments 00078 #include "vtkStringArray.h" // For returning color names 00079 00080 class vtkNamedColorsDataStore; 00081 class vtkColorStringParser; 00082 00083 class VTKCOMMONCOLOR_EXPORT vtkNamedColors : public vtkObject 00084 { 00085 public: 00086 vtkTypeMacro(vtkNamedColors, vtkObject); 00087 00092 virtual void PrintSelf(ostream &os, vtkIndent indent); 00093 00095 static vtkNamedColors* New(); 00096 00098 int GetNumberOfColors(); 00099 00102 void ResetColors(); 00103 00105 bool ColorExists(const vtkStdString & name); 00106 00110 vtkColor4ub GetColor4ub(const vtkStdString & name); 00111 00113 00117 void GetColor(const vtkStdString & name, 00118 unsigned char & r, unsigned char & g, 00119 unsigned char & b, unsigned char & a); 00121 00126 void GetColor(const vtkStdString & name, unsigned char rgba[4]); 00127 00131 void GetColor(const vtkStdString & name, vtkColor4ub & rgba); 00132 00136 vtkColor4d GetColor4d(const vtkStdString & name); 00137 00139 00143 void GetColor(const vtkStdString & name, 00144 double & r, double & g, double & b, double & a); 00146 00151 void GetColor(const vtkStdString & name, double rgba[4]); 00152 00156 void GetColor(const vtkStdString & name, vtkColor4d & rgba); 00157 00161 vtkColor3ub GetColor3ub(const vtkStdString & name); 00162 00166 vtkColor3d GetColor3d(const vtkStdString & name); 00167 00169 00173 void GetColor(const vtkStdString & name, 00174 double & r, double & g, double & b); 00176 00181 void GetColorRGB(const vtkStdString & name, double rgb[3]); 00182 00186 void GetColor(const vtkStdString & name, vtkColor3ub & rgb); 00187 00191 void GetColor(const vtkStdString & name, vtkColor3d & rgb); 00192 00194 00197 virtual void SetColor(const vtkStdString & name, 00198 const unsigned char & r, const unsigned char & g, 00199 const unsigned char & b, const unsigned char & a = 255); 00201 00203 00206 virtual void SetColor(const vtkStdString & name, 00207 const double & r, const double & g, 00208 const double & b, const double & a = 1); 00210 00215 virtual void SetColor(const vtkStdString & name, const unsigned char rgba[4]); 00216 00220 virtual void SetColor(const vtkStdString & name, const vtkColor4ub & rgba); 00221 00225 virtual void SetColor(const vtkStdString & name, const vtkColor3ub & rgb); 00226 00230 virtual void SetColor(const vtkStdString & name, const double rgba[4]); 00231 00235 virtual void SetColor(const vtkStdString & name, const vtkColor4d & rgba); 00236 00240 virtual void SetColor(const vtkStdString & name, const vtkColor3d & rgb); 00241 00245 void RemoveColor(const vtkStdString & name); 00246 00251 vtkStdString GetColorNames(); 00252 00254 void GetColorNames(vtkStringArray * colorNames); 00255 00262 vtkStdString GetSynonyms(); 00263 00270 vtkColor4ub HTMLColorToRGBA(const vtkStdString& colorString); 00271 00277 vtkColor3ub HTMLColorToRGB(const vtkStdString& colorString); 00278 00281 vtkStdString RGBToHTMLColor(const vtkColor3ub & rgb); 00282 00285 vtkStdString RGBAToHTMLColor(const vtkColor4ub & rgba); 00286 00290 void SetColor(const vtkStdString & name, const vtkStdString & htmlString); 00291 00292 protected: 00293 vtkNamedColors(); 00294 virtual ~vtkNamedColors(); 00295 00296 private: 00298 00299 vtkNamedColorsDataStore *Colors; 00300 vtkColorStringParser* Parser; 00302 00303 vtkNamedColors(const vtkNamedColors&); // Not implemented. 00304 void operator=(const vtkNamedColors&); // Not implemented. 00305 }; 00306 00307 #endif /* vtkNamedColors_h */