VTK  9.3.20240907
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
108#ifndef vtkLegendBoxActor_h
109#define vtkLegendBoxActor_h
110
111#include "vtkActor2D.h"
112#include "vtkRenderingAnnotationModule.h" // For export macro
113#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
114
115VTK_ABI_NAMESPACE_BEGIN
116class vtkActor;
117class vtkDoubleArray;
118class vtkImageData;
119class vtkPolyData;
122class vtkPlaneSource;
123class vtkTextMapper;
124class vtkTextProperty;
126class vtkTransform;
128class vtkProperty2D;
129
130class VTKRENDERINGANNOTATION_EXPORT VTK_MARSHALAUTO vtkLegendBoxActor : public vtkActor2D
131{
132public:
134 void PrintSelf(ostream& os, vtkIndent indent) override;
135
141
145 void SetNumberOfEntries(int num);
146 int GetNumberOfEntries() { return this->NumberOfEntries; }
147
149
159 void SetEntry(int i, vtkPolyData* symbol, const char* string, double color[3]);
160 void SetEntry(int i, vtkImageData* symbol, const char* string, double color[3]);
162 int i, vtkPolyData* symbol, vtkImageData* icon, const char* string, double color[3]);
164
165 void SetEntrySymbol(int i, vtkPolyData* symbol);
166 void SetEntryIcon(int i, vtkImageData* icon);
167 void SetEntryString(int i, const char* string);
168 void SetEntryColor(int i, double color[3]);
169 void SetEntryColor(int i, double r, double g, double b);
170
173 const char* GetEntryString(int i);
174 double* GetEntryColor(int i) VTK_SIZEHINT(3);
175
177
181 vtkGetObjectMacro(EntryTextProperty, vtkTextProperty);
183
185
189 vtkSetMacro(Border, vtkTypeBool);
190 vtkGetMacro(Border, vtkTypeBool);
191 vtkBooleanMacro(Border, vtkTypeBool);
193
195
203 vtkSetMacro(LockBorder, vtkTypeBool);
204 vtkGetMacro(LockBorder, vtkTypeBool);
205 vtkBooleanMacro(LockBorder, vtkTypeBool);
207
209
213 vtkSetMacro(Box, vtkTypeBool);
214 vtkGetMacro(Box, vtkTypeBool);
215 vtkBooleanMacro(Box, vtkTypeBool);
217
221 vtkProperty2D* GetBoxProperty() { return this->BoxActor->GetProperty(); }
222
224
228 vtkSetClampMacro(Padding, int, 0, 50);
229 vtkGetMacro(Padding, int);
231
233
238 vtkSetMacro(ScalarVisibility, vtkTypeBool);
239 vtkGetMacro(ScalarVisibility, vtkTypeBool);
240 vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
242
244
247 vtkSetMacro(UseBackground, vtkTypeBool);
248 vtkGetMacro(UseBackground, vtkTypeBool);
249 vtkBooleanMacro(UseBackground, vtkTypeBool);
251
253
257 vtkSetVector3Macro(BackgroundColor, double);
258 vtkGetVector3Macro(BackgroundColor, double);
260
262
266 vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
267 vtkGetMacro(BackgroundOpacity, double);
269
274 void ShallowCopy(vtkProp* prop) override;
275
284
286
291 int RenderOpaqueGeometry(vtkViewport* viewport) override;
293 int RenderOverlay(vtkViewport* viewport) override;
295
300
301protected:
304
306
308
315
316 // Internal actors, mappers, data to represent the legend
318 int Size; // allocation size
322
328
335
343
344 // Background plane.
347 double BackgroundColor[3];
349
350 // May use texture.
353
354 // Used to control whether the stuff is recomputed
356 int CachedSize[2];
358
359private:
360 vtkLegendBoxActor(const vtkLegendBoxActor&) = delete;
361 void operator=(const vtkLegendBoxActor&) = delete;
362};
363
364VTK_ABI_NAMESPACE_END
365#endif
a actor that draws 2D data
Definition vtkActor2D.h:145
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
dynamic, self-adjusting array of double
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
draw symbols with text
int RenderOpaqueGeometry(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
void SetNumberOfEntries(int num)
Specify the number of entries in the legend box.
int RenderOverlay(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkPolyData * BoxPolyData
vtkTexturedActor2D ** IconActor
vtkTexturedActor2D * BackgroundActor
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkImageData ** IconImage
vtkTextProperty * EntryTextProperty
vtkTransformPolyDataFilter ** SymbolTransform
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkPlaneSource * Background
void SetEntry(int i, vtkImageData *symbol, const char *string, double color[3])
Add an entry to the legend box.
void SetEntry(int i, vtkPolyData *symbol, vtkImageData *icon, const char *string, double color[3])
Add an entry to the legend box.
vtkPlaneSource ** Icon
vtkTransform ** IconTransform
vtkPolyDataMapper2D * BorderMapper
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkProperty2D * GetBoxProperty()
Get the box vtkProperty2D.
vtkPolyData createTexturedPlane()
void SetEntryColor(int i, double color[3])
vtkDoubleArray * Colors
void ShallowCopy(vtkProp *prop) override
Shallow copy of this scaled text actor.
double * GetEntryColor(int i)
vtkImageData * GetEntryIcon(int i)
vtkPolyDataMapper2D * BackgroundMapper
void SetEntrySymbol(int i, vtkPolyData *symbol)
vtkTypeBool ScalarVisibility
~vtkLegendBoxActor() override
vtkTextMapper ** TextMapper
virtual void SetEntryTextProperty(vtkTextProperty *p)
Set/Get the text property.
void SetEntry(int i, vtkPolyData *symbol, const char *string, double color[3])
Add an entry to the legend box.
void InitializeEntries()
vtkPolyDataMapper2D ** IconMapper
vtkTransformPolyDataFilter ** IconTransformFilter
vtkPolyData * BorderPolyData
vtkTransform ** Transform
void SetEntryColor(int i, double r, double g, double b)
static vtkLegendBoxActor * New()
Instantiate object with a rectangle in normaled view coordinates of (0.2,0.85, 0.8,...
vtkPolyDataMapper2D ** SymbolMapper
vtkPolyDataMapper2D * BoxMapper
vtkPolyData ** Symbol
void SetEntryString(int i, const char *string)
vtkPolyData * GetEntrySymbol(int i)
vtkActor2D ** SymbolActor
vtkActor2D ** TextActor
const char * GetEntryString(int i)
void SetEntryIcon(int i, vtkImageData *icon)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
create an array of quadrilaterals located in a plane
draw vtkPolyData onto the image plane
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:66
represent surface properties of a 2D image
2D text annotation
represent text properties.
actor that draws 2D data with texture support
record modification and/or execution time
transform points and associated normals and vectors for polygonal dataset
describes linear transformations via a 4x4 matrix
abstract specification for Viewports
Definition vtkViewport.h:65
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO