VTK  9.0.1
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 =========================================================================*/
38 #ifndef vtkLegendBoxActor_h
39 #define vtkLegendBoxActor_h
40 
41 #include "vtkActor2D.h"
42 #include "vtkRenderingAnnotationModule.h" // For export macro
43 
44 class vtkActor;
45 class vtkDoubleArray;
46 class vtkImageData;
47 class vtkPolyData;
49 class vtkPolyDataMapper;
50 class vtkPlaneSource;
51 class vtkTextMapper;
52 class vtkTextProperty;
53 class vtkTexturedActor2D;
54 class vtkTransform;
56 class vtkProperty2D;
57 
58 class VTKRENDERINGANNOTATION_EXPORT vtkLegendBoxActor : public vtkActor2D
59 {
60 public:
61  vtkTypeMacro(vtkLegendBoxActor, vtkActor2D);
62  void PrintSelf(ostream& os, vtkIndent indent) override;
63 
68  static vtkLegendBoxActor* New();
69 
73  void SetNumberOfEntries(int num);
74  int GetNumberOfEntries() { return this->NumberOfEntries; }
75 
77 
87  void SetEntry(int i, vtkPolyData* symbol, const char* string, double color[3]);
88  void SetEntry(int i, vtkImageData* symbol, const char* string, double color[3]);
89  void SetEntry(
90  int i, vtkPolyData* symbol, vtkImageData* icon, const char* string, double color[3]);
92 
93  void SetEntrySymbol(int i, vtkPolyData* symbol);
94  void SetEntryIcon(int i, vtkImageData* icon);
95  void SetEntryString(int i, const char* string);
96  void SetEntryColor(int i, double color[3]);
97  void SetEntryColor(int i, double r, double g, double b);
98 
99  vtkPolyData* GetEntrySymbol(int i);
100  vtkImageData* GetEntryIcon(int i);
101  const char* GetEntryString(int i);
102  double* GetEntryColor(int i) VTK_SIZEHINT(3);
103 
105 
108  virtual void SetEntryTextProperty(vtkTextProperty* p);
109  vtkGetObjectMacro(EntryTextProperty, vtkTextProperty);
111 
113 
117  vtkSetMacro(Border, vtkTypeBool);
118  vtkGetMacro(Border, vtkTypeBool);
119  vtkBooleanMacro(Border, vtkTypeBool);
121 
123 
131  vtkSetMacro(LockBorder, vtkTypeBool);
132  vtkGetMacro(LockBorder, vtkTypeBool);
133  vtkBooleanMacro(LockBorder, vtkTypeBool);
135 
137 
141  vtkSetMacro(Box, vtkTypeBool);
142  vtkGetMacro(Box, vtkTypeBool);
143  vtkBooleanMacro(Box, vtkTypeBool);
145 
149  vtkProperty2D* GetBoxProperty() { return this->BoxActor->GetProperty(); }
150 
152 
156  vtkSetClampMacro(Padding, int, 0, 50);
157  vtkGetMacro(Padding, int);
159 
161 
166  vtkSetMacro(ScalarVisibility, vtkTypeBool);
167  vtkGetMacro(ScalarVisibility, vtkTypeBool);
168  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
170 
172 
175  vtkSetMacro(UseBackground, vtkTypeBool);
176  vtkGetMacro(UseBackground, vtkTypeBool);
177  vtkBooleanMacro(UseBackground, vtkTypeBool);
179 
181 
185  vtkSetVector3Macro(BackgroundColor, double);
186  vtkGetVector3Macro(BackgroundColor, double);
188 
190 
194  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
195  vtkGetMacro(BackgroundOpacity, double);
197 
202  void ShallowCopy(vtkProp* prop) override;
203 
211  void ReleaseGraphicsResources(vtkWindow*) override;
212 
214 
219  int RenderOpaqueGeometry(vtkViewport* viewport) override;
220  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
221  int RenderOverlay(vtkViewport* viewport) override;
223 
228 
229 protected:
231  ~vtkLegendBoxActor() override;
232 
233  void InitializeEntries();
234 
235  vtkPolyData createTexturedPlane();
236 
239  int Padding;
242  double BoxOpacity;
243 
244  // Internal actors, mappers, data to represent the legend
246  int Size; // allocation size
250 
256 
263 
271 
272  // Background plane.
275  double BackgroundColor[3];
277 
278  // May use texture.
281 
282  // Used to control whether the stuff is recomputed
284  int CachedSize[2];
286 
287 private:
288  vtkLegendBoxActor(const vtkLegendBoxActor&) = delete;
289  void operator=(const vtkLegendBoxActor&) = delete;
290 };
291 
292 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:53
draw symbols with text
vtkTypeBool UseBackground
vtkPolyData * BorderPolyData
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:45
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:39
record modification and/or execution time
Definition: vtkTimeStamp.h:32
vtkPlaneSource ** Icon
transform points and associated normals and vectors for polygonal dataset
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:54
vtkActor2D ** TextActor
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkTypeBool ScalarVisibility
vtkPlaneSource * Background
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
2D text annotation
Definition: vtkTextMapper.h:47
dynamic, self-adjusting array of double
int vtkTypeBool
Definition: vtkABI.h:69
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
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:33
vtkTextProperty * EntryTextProperty
vtkActor2D * BorderActor
topologically and geometrically regular array of data
Definition: vtkImageData.h:41
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:37
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