VTK  9.7.1
vtkNamedColors.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
62 #ifndef vtkNamedColors_h
63 #define vtkNamedColors_h
64 
65 #include "vtkColor.h" // Needed for vtkColor[34]ub
66 #include "vtkCommonColorModule.h" // For export macro
67 #include "vtkObject.h"
68 #include "vtkStdString.h" // Needed for arguments
69 #include "vtkStringArray.h" // For returning color names
70 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
71 
72 VTK_ABI_NAMESPACE_BEGIN
73 class vtkNamedColorsDataStore;
74 class vtkColorStringParser;
75 
76 class VTKCOMMONCOLOR_EXPORT VTK_MARSHALAUTO vtkNamedColors : public vtkObject
77 {
78 public:
79  vtkTypeMacro(vtkNamedColors, vtkObject);
80 
87  void PrintSelf(ostream& os, vtkIndent indent) override;
88 
92  static vtkNamedColors* New();
93 
97  int GetNumberOfColors();
98 
103  void ResetColors();
104 
108  bool ColorExists(const vtkStdString& name);
109 
116  vtkColor4ub GetColor4ub(const vtkStdString& name);
117 
125  void GetColor(const vtkStdString& name, unsigned char& r, unsigned char& g, unsigned char& b,
126  unsigned char& a);
127 
135  void GetColor(const vtkStdString& name, unsigned char rgba[4]);
136 
143  void GetColor(const vtkStdString& name, vtkColor4ub& rgba);
144 
151  vtkColor4d GetColor4d(const vtkStdString& name);
152 
160  void GetColor(const vtkStdString& name, double& r, double& g, double& b, double& a);
161 
169  void GetColor(const vtkStdString& name, double rgba[4]);
170 
177  void GetColor(const vtkStdString& name, vtkColor4d& rgba);
178 
185  vtkColor3ub GetColor3ub(const vtkStdString& name);
186 
193  vtkColor3d GetColor3d(const vtkStdString& name);
194 
202  void GetColor(const vtkStdString& name, double& r, double& g, double& b);
203 
211  void GetColorRGB(const vtkStdString& name, double rgb[3]);
212 
219  void GetColor(const vtkStdString& name, vtkColor3ub& rgb);
220 
227  void GetColor(const vtkStdString& name, vtkColor3d& rgb);
228 
235  virtual void SetColor(const vtkStdString& name, const unsigned char& r, const unsigned char& g,
236  const unsigned char& b, const unsigned char& a = 255);
237 
244  virtual void SetColor(const vtkStdString& name, const double& r, const double& g, const double& b,
245  const double& a = 1);
246 
255  virtual void SetColor(const vtkStdString& name, const unsigned char rgba[4]);
256 
263  virtual void SetColor(const vtkStdString& name, const vtkColor4ub& rgba);
264 
271  virtual void SetColor(const vtkStdString& name, const vtkColor3ub& rgb);
272 
280  virtual void SetColor(const vtkStdString& name, const double rgba[4]);
281 
288  virtual void SetColor(const vtkStdString& name, const vtkColor4d& rgba);
289 
296  virtual void SetColor(const vtkStdString& name, const vtkColor3d& rgb);
297 
304  void RemoveColor(const vtkStdString& name);
305 
314  vtkStdString GetColorNames();
315 
319  void GetColorNames(vtkStringArray* colorNames);
320 
331  vtkStdString GetSynonyms();
332 
345  vtkColor4ub HTMLColorToRGBA(const vtkStdString& colorString);
346 
359  vtkColor3ub HTMLColorToRGB(const vtkStdString& colorString);
360 
365  vtkStdString RGBToHTMLColor(const vtkColor3ub& rgb);
366 
371  vtkStdString RGBAToHTMLColor(const vtkColor4ub& rgba);
372 
380  void SetColor(const vtkStdString& name, const vtkStdString& htmlString);
381 
382 protected:
383  vtkNamedColors();
384  ~vtkNamedColors() override;
385 
386 private:
388 
391  vtkNamedColorsDataStore* Colors;
392  vtkColorStringParser* Parser;
394 
395  vtkNamedColors(const vtkNamedColors&) = delete;
396  void operator=(const vtkNamedColors&) = delete;
397 };
398 
399 VTK_ABI_NAMESPACE_END
400 #endif /* vtkNamedColors_h */
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:27
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
A class holding colors and their names.
a vtkAbstractArray subclass for strings
Some derived classes for the different colors commonly used.
Definition: vtkColor.h:183
a simple class to control print indentation
Definition: vtkIndent.h:28
#define VTK_MARSHALAUTO
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...