VTK  9.2.6
vtkLegendBoxActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLegendBoxActor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
41 #ifndef vtkLegendBoxActor_h
42 #define vtkLegendBoxActor_h
43 
44 #include "vtkActor2D.h"
45 #include "vtkRenderingAnnotationModule.h" // For export macro
46 
47 class vtkActor;
48 class vtkDoubleArray;
49 class vtkImageData;
50 class vtkPolyData;
52 class vtkPolyDataMapper;
53 class vtkPlaneSource;
54 class vtkTextMapper;
55 class vtkTextProperty;
56 class vtkTexturedActor2D;
57 class vtkTransform;
59 class vtkProperty2D;
60 
61 class VTKRENDERINGANNOTATION_EXPORT vtkLegendBoxActor : public vtkActor2D
62 {
63 public:
64  vtkTypeMacro(vtkLegendBoxActor, vtkActor2D);
65  void PrintSelf(ostream& os, vtkIndent indent) override;
66 
71  static vtkLegendBoxActor* New();
72 
76  void SetNumberOfEntries(int num);
77  int GetNumberOfEntries() { return this->NumberOfEntries; }
78 
80 
90  void SetEntry(int i, vtkPolyData* symbol, const char* string, double color[3]);
91  void SetEntry(int i, vtkImageData* symbol, const char* string, double color[3]);
92  void SetEntry(
93  int i, vtkPolyData* symbol, vtkImageData* icon, const char* string, double color[3]);
95 
96  void SetEntrySymbol(int i, vtkPolyData* symbol);
97  void SetEntryIcon(int i, vtkImageData* icon);
98  void SetEntryString(int i, const char* string);
99  void SetEntryColor(int i, double color[3]);
100  void SetEntryColor(int i, double r, double g, double b);
101 
102  vtkPolyData* GetEntrySymbol(int i);
103  vtkImageData* GetEntryIcon(int i);
104  const char* GetEntryString(int i);
105  double* GetEntryColor(int i) VTK_SIZEHINT(3);
106 
108 
111  virtual void SetEntryTextProperty(vtkTextProperty* p);
112  vtkGetObjectMacro(EntryTextProperty, vtkTextProperty);
114 
116 
120  vtkSetMacro(Border, vtkTypeBool);
121  vtkGetMacro(Border, vtkTypeBool);
122  vtkBooleanMacro(Border, vtkTypeBool);
124 
126 
134  vtkSetMacro(LockBorder, vtkTypeBool);
135  vtkGetMacro(LockBorder, vtkTypeBool);
136  vtkBooleanMacro(LockBorder, vtkTypeBool);
138 
140 
144  vtkSetMacro(Box, vtkTypeBool);
145  vtkGetMacro(Box, vtkTypeBool);
146  vtkBooleanMacro(Box, vtkTypeBool);
148 
152  vtkProperty2D* GetBoxProperty() { return this->BoxActor->GetProperty(); }
153 
155 
159  vtkSetClampMacro(Padding, int, 0, 50);
160  vtkGetMacro(Padding, int);
162 
164 
169  vtkSetMacro(ScalarVisibility, vtkTypeBool);
170  vtkGetMacro(ScalarVisibility, vtkTypeBool);
171  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
173 
175 
178  vtkSetMacro(UseBackground, vtkTypeBool);
179  vtkGetMacro(UseBackground, vtkTypeBool);
180  vtkBooleanMacro(UseBackground, vtkTypeBool);
182 
184 
188  vtkSetVector3Macro(BackgroundColor, double);
189  vtkGetVector3Macro(BackgroundColor, double);
191 
193 
197  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
198  vtkGetMacro(BackgroundOpacity, double);
200 
205  void ShallowCopy(vtkProp* prop) override;
206 
214  void ReleaseGraphicsResources(vtkWindow*) override;
215 
217 
222  int RenderOpaqueGeometry(vtkViewport* viewport) override;
223  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
224  int RenderOverlay(vtkViewport* viewport) override;
226 
231 
232 protected:
234  ~vtkLegendBoxActor() override;
235 
236  void InitializeEntries();
237 
238  vtkPolyData createTexturedPlane();
239 
242  int Padding;
245  double BoxOpacity;
246 
247  // Internal actors, mappers, data to represent the legend
249  int Size; // allocation size
253 
259 
266 
274 
275  // Background plane.
278  double BackgroundColor[3];
280 
281  // May use texture.
284 
285  // Used to control whether the stuff is recomputed
287  int CachedSize[2];
289 
290 private:
291  vtkLegendBoxActor(const vtkLegendBoxActor&) = delete;
292  void operator=(const vtkLegendBoxActor&) = delete;
293 };
294 
295 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:56
draw symbols with text
vtkTypeBool UseBackground
vtkPolyData * BorderPolyData
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
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:55
vtkProperty2D * GetBoxProperty()
Get the box vtkProperty2D.
a actor that draws 2D data
Definition: vtkActor2D.h:45
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkPlaneSource ** Icon
transform points and associated normals and vectors for polygonal dataset
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
vtkActor2D ** TextActor
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:90
vtkTypeBool ScalarVisibility
vtkPlaneSource * Background
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
2D text annotation
Definition: vtkTextMapper.h:50
dynamic, self-adjusting array of double
int vtkTypeBool
Definition: vtkABI.h:69
window superclass for vtkRenderWindow
Definition: vtkWindow.h:38
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:39
vtkTextProperty * EntryTextProperty
vtkActor2D * BorderActor
topologically and geometrically regular array of data
Definition: vtkImageData.h:53
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:40
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