VTK  9.3.1
vtkLegendBoxActor.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
29 #ifndef vtkLegendBoxActor_h
30 #define vtkLegendBoxActor_h
31 
32 #include "vtkActor2D.h"
33 #include "vtkRenderingAnnotationModule.h" // For export macro
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 class vtkActor;
37 class vtkDoubleArray;
38 class vtkImageData;
39 class vtkPolyData;
41 class vtkPolyDataMapper;
42 class vtkPlaneSource;
43 class vtkTextMapper;
44 class vtkTextProperty;
45 class vtkTexturedActor2D;
46 class vtkTransform;
48 class vtkProperty2D;
49 
50 class VTKRENDERINGANNOTATION_EXPORT vtkLegendBoxActor : public vtkActor2D
51 {
52 public:
53  vtkTypeMacro(vtkLegendBoxActor, vtkActor2D);
54  void PrintSelf(ostream& os, vtkIndent indent) override;
55 
60  static vtkLegendBoxActor* New();
61 
65  void SetNumberOfEntries(int num);
66  int GetNumberOfEntries() { return this->NumberOfEntries; }
67 
69 
79  void SetEntry(int i, vtkPolyData* symbol, const char* string, double color[3]);
80  void SetEntry(int i, vtkImageData* symbol, const char* string, double color[3]);
81  void SetEntry(
82  int i, vtkPolyData* symbol, vtkImageData* icon, const char* string, double color[3]);
84 
85  void SetEntrySymbol(int i, vtkPolyData* symbol);
86  void SetEntryIcon(int i, vtkImageData* icon);
87  void SetEntryString(int i, const char* string);
88  void SetEntryColor(int i, double color[3]);
89  void SetEntryColor(int i, double r, double g, double b);
90 
91  vtkPolyData* GetEntrySymbol(int i);
92  vtkImageData* GetEntryIcon(int i);
93  const char* GetEntryString(int i);
94  double* GetEntryColor(int i) VTK_SIZEHINT(3);
95 
97 
100  virtual void SetEntryTextProperty(vtkTextProperty* p);
101  vtkGetObjectMacro(EntryTextProperty, vtkTextProperty);
103 
105 
109  vtkSetMacro(Border, vtkTypeBool);
110  vtkGetMacro(Border, vtkTypeBool);
111  vtkBooleanMacro(Border, vtkTypeBool);
113 
115 
123  vtkSetMacro(LockBorder, vtkTypeBool);
124  vtkGetMacro(LockBorder, vtkTypeBool);
125  vtkBooleanMacro(LockBorder, vtkTypeBool);
127 
129 
133  vtkSetMacro(Box, vtkTypeBool);
134  vtkGetMacro(Box, vtkTypeBool);
135  vtkBooleanMacro(Box, vtkTypeBool);
137 
141  vtkProperty2D* GetBoxProperty() { return this->BoxActor->GetProperty(); }
142 
144 
148  vtkSetClampMacro(Padding, int, 0, 50);
149  vtkGetMacro(Padding, int);
151 
153 
158  vtkSetMacro(ScalarVisibility, vtkTypeBool);
159  vtkGetMacro(ScalarVisibility, vtkTypeBool);
160  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
162 
164 
167  vtkSetMacro(UseBackground, vtkTypeBool);
168  vtkGetMacro(UseBackground, vtkTypeBool);
169  vtkBooleanMacro(UseBackground, vtkTypeBool);
171 
173 
177  vtkSetVector3Macro(BackgroundColor, double);
178  vtkGetVector3Macro(BackgroundColor, double);
180 
182 
186  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
187  vtkGetMacro(BackgroundOpacity, double);
189 
194  void ShallowCopy(vtkProp* prop) override;
195 
203  void ReleaseGraphicsResources(vtkWindow*) override;
204 
206 
211  int RenderOpaqueGeometry(vtkViewport* viewport) override;
212  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
213  int RenderOverlay(vtkViewport* viewport) override;
215 
220 
221 protected:
223  ~vtkLegendBoxActor() override;
224 
225  void InitializeEntries();
226 
227  vtkPolyData createTexturedPlane();
228 
231  int Padding;
234  double BoxOpacity;
235 
236  // Internal actors, mappers, data to represent the legend
238  int Size; // allocation size
242 
248 
255 
263 
264  // Background plane.
267  double BackgroundColor[3];
269 
270  // May use texture.
273 
274  // Used to control whether the stuff is recomputed
276  int CachedSize[2];
278 
279 private:
280  vtkLegendBoxActor(const vtkLegendBoxActor&) = delete;
281  void operator=(const vtkLegendBoxActor&) = delete;
282 };
283 
284 VTK_ABI_NAMESPACE_END
285 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:45
draw symbols with text
vtkTypeBool UseBackground
vtkPolyData * BorderPolyData
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
actor that draws 2D data with texture support
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkProperty2D * GetBoxProperty()
Get the box vtkProperty2D.
a actor that draws 2D data
Definition: vtkActor2D.h:34
record modification and/or execution time
Definition: vtkTimeStamp.h:24
vtkPlaneSource ** Icon
transform points and associated normals and vectors for polygonal dataset
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:49
vtkActor2D ** TextActor
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkTypeBool ScalarVisibility
vtkPlaneSource * Background
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
2D text annotation
Definition: vtkTextMapper.h:39
dynamic, self-adjusting array of double
int vtkTypeBool
Definition: vtkABI.h:64
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
vtkTextMapper ** TextMapper
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkPolyDataMapper2D * BackgroundMapper
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkTextProperty * EntryTextProperty
vtkActor2D * BorderActor
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
static vtkActor2D * New()
Creates an actor2D with the following defaults: position (0,0) (coordinate system is viewport); at la...
vtkDoubleArray * Colors
vtkTransform ** Transform
vtkPolyData * BoxPolyData
#define VTK_SIZEHINT(...)
represent text properties.
create an array of quadrilaterals located in a plane
vtkPolyDataMapper2D * BorderMapper
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
map vtkPolyData to graphics primitives
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkTransformPolyDataFilter ** SymbolTransform
vtkImageData ** IconImage
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
vtkActor2D ** SymbolActor
vtkTransformPolyDataFilter ** IconTransformFilter
represent surface properties of a 2D image
Definition: vtkProperty2D.h:29
vtkTexturedActor2D * BackgroundActor
vtkPolyDataMapper2D * BoxMapper
vtkPolyData ** Symbol
draw vtkPolyData onto the image plane
vtkPolyDataMapper2D ** SymbolMapper
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTimeStamp BuildTime
vtkTransform ** IconTransform
vtkPolyDataMapper2D ** IconMapper
vtkTexturedActor2D ** IconActor