VTK  9.3.20240418
vtkPen.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
3 
69 #ifndef vtkPen_h
70 #define vtkPen_h
71 
72 #include "vtkColor.h" // Needed for vtkColor4ub
73 #include "vtkObject.h"
74 #include "vtkRenderingContext2DModule.h" // For export macro
75 
76 VTK_ABI_NAMESPACE_BEGIN
77 class VTKRENDERINGCONTEXT2D_EXPORT vtkPen : public vtkObject
78 {
79 public:
80  vtkTypeMacro(vtkPen, vtkObject);
81  void PrintSelf(ostream& os, vtkIndent indent) override;
82 
83  static vtkPen* New();
84 
88  enum
89  {
96  DENSE_DOT_LINE
97  };
98 
102  void SetLineType(int type);
103 
107  int GetLineType();
108 
113  void SetColorF(double color[3]);
114 
119  void SetColorF(double r, double g, double b);
120 
125  void SetColorF(double r, double g, double b, double a);
126 
131  void SetOpacityF(double a);
132 
137  void SetColor(unsigned char color[3]);
138 
143  void SetColor(unsigned char r, unsigned char g, unsigned char b);
144 
146 
150  void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a);
151  void SetColor(const vtkColor4ub& color);
153 
158  void SetOpacity(unsigned char a);
159 
163  void GetColorF(double color[3]);
164 
168  void GetColor(unsigned char color[3]);
169 
174 
179  unsigned char GetOpacity();
180 
184  unsigned char* GetColor() { return this->Color; }
185 
187 
190  vtkSetMacro(Width, float);
191  vtkGetMacro(Width, float);
193 
197  void DeepCopy(vtkPen* pen);
198 
199 protected:
201  ~vtkPen() override;
202 
204 
207  unsigned char* Color;
210 
214  float Width;
215 
219  int LineType;
220 
221 private:
222  vtkPen(const vtkPen&) = delete;
223  void operator=(const vtkPen&) = delete;
224 };
225 
226 VTK_ABI_NAMESPACE_END
227 #endif // vtkPen_h
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:162
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:78
~vtkPen() override
void SetColorF(double r, double g, double b, double a)
Set the color of the brush with four component doubles (RGBA), ranging from 0.0 to 1....
unsigned char GetOpacity()
Get the opacity (unsigned char), ranging from 0 (transparent) to 255 (opaque).
void SetOpacity(unsigned char a)
Set the opacity with an unsigned char, ranging from 0 (transparent) to 255 (opaque).
float Width
Store the width of the pen in pixels.
Definition: vtkPen.h:214
static vtkPen * New()
void GetColorF(double color[3])
Get the color of the brush - expects a double of length 3 to copy into.
unsigned char * Color
Storage of the color in RGBA format (0-255 per channel).
Definition: vtkPen.h:207
void SetColorF(double color[3])
Set the color of the brush with three component doubles (RGB), ranging from 0.0 to 1....
void SetColor(const vtkColor4ub &color)
Set the color of the brush with four component unsigned chars (RGBA), ranging from 0 to 255.
void SetColorF(double r, double g, double b)
Set the color of the brush with three component doubles (RGB), ranging from 0.0 to 1....
void SetLineType(int type)
Set the type of line that the pen should draw.
void GetColor(unsigned char color[3])
Get the color of the brush - expects an unsigned char of length 3.
void SetColor(unsigned char r, unsigned char g, unsigned char b)
Set the color of the brush with three component unsigned chars (RGB), ranging from 0 to 255.
void SetColor(unsigned char color[3])
Set the color of the brush with three component unsigned chars (RGB), ranging from 0 to 255.
vtkColor4ub PenColor
Storage of the color in RGBA format (0-255 per channel).
Definition: vtkPen.h:208
void SetOpacityF(double a)
Set the opacity with a double, ranging from 0.0 (transparent) to 1.0 (opaque).
unsigned char * GetColor()
Get the color of the brush - gives a pointer to the underlying data.
Definition: vtkPen.h:184
vtkColor4ub GetColorObject()
Get the color of the pen.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int LineType
The type of line to be drawn with this pen.
Definition: vtkPen.h:219
void DeepCopy(vtkPen *pen)
Make a deep copy of the supplied pen.
int GetLineType()
Get the type of line that the pen will draw.
void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
Set the color of the brush with four component unsigned chars (RGBA), ranging from 0 to 255.
@ DASH_LINE
Definition: vtkPen.h:92
@ SOLID_LINE
Definition: vtkPen.h:91
@ NO_PEN
Definition: vtkPen.h:90
@ DOT_LINE
Definition: vtkPen.h:93
@ DASH_DOT_DOT_LINE
Definition: vtkPen.h:95
@ DASH_DOT_LINE
Definition: vtkPen.h:94
@ Color
Definition: vtkX3D.h:46
@ type
Definition: vtkX3D.h:516
@ color
Definition: vtkX3D.h:221