VTK  9.5.20250806
vtkLabelPlacementMapper.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
41#ifndef vtkLabelPlacementMapper_h
42#define vtkLabelPlacementMapper_h
43
44#include "vtkMapper2D.h"
45#include "vtkRenderingLabelModule.h" // For export macro
46#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
47
48VTK_ABI_NAMESPACE_BEGIN
49class vtkCoordinate;
52
53class VTKRENDERINGLABEL_EXPORT VTK_MARSHALAUTO vtkLabelPlacementMapper : public vtkMapper2D
54{
55public:
58 void PrintSelf(ostream& os, vtkIndent indent) override;
59
63 void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor) override;
64
66
70 vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
72
74
78 vtkSetClampMacro(MaximumLabelFraction, double, 0., 1.);
79 vtkGetMacro(MaximumLabelFraction, double);
81
83
87 vtkSetMacro(IteratorType, int);
88 vtkGetMacro(IteratorType, int);
90
92
97 vtkGetMacro(PositionsAsNormals, bool);
98 vtkSetMacro(PositionsAsNormals, bool);
99 vtkBooleanMacro(PositionsAsNormals, bool);
101
103
107 vtkGetMacro(GeneratePerturbedLabelSpokes, bool);
108 vtkSetMacro(GeneratePerturbedLabelSpokes, bool);
109 vtkBooleanMacro(GeneratePerturbedLabelSpokes, bool);
111
113
117 vtkGetMacro(UseDepthBuffer, bool);
118 vtkSetMacro(UseDepthBuffer, bool);
119 vtkBooleanMacro(UseDepthBuffer, bool);
121
123
127 vtkSetMacro(PlaceAllLabels, bool);
128 vtkGetMacro(PlaceAllLabels, bool);
129 vtkBooleanMacro(PlaceAllLabels, bool);
131
133
136 vtkSetMacro(OutputTraversedBounds, bool);
137 vtkGetMacro(OutputTraversedBounds, bool);
138 vtkBooleanMacro(OutputTraversedBounds, bool);
140
142 {
146 NUMBER_OF_LABEL_SHAPES
147 };
148
150
154 vtkSetClampMacro(Shape, int, 0, NUMBER_OF_LABEL_SHAPES - 1);
155 vtkGetMacro(Shape, int);
156 virtual void SetShapeToNone() { this->SetShape(NONE); }
157 virtual void SetShapeToRect() { this->SetShape(RECT); }
158 virtual void SetShapeToRoundedRect() { this->SetShape(ROUNDED_RECT); }
160
162 {
165 NUMBER_OF_LABEL_STYLES
166 };
167
169
173 vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES - 1);
174 vtkGetMacro(Style, int);
175 virtual void SetStyleToFilled() { this->SetStyle(FILLED); }
176 virtual void SetStyleToOutline() { this->SetStyle(OUTLINE); }
178
180
184 vtkSetMacro(Margin, double);
185 vtkGetMacro(Margin, double);
187
189
192 vtkSetVector3Macro(BackgroundColor, double);
193 vtkGetVector3Macro(BackgroundColor, double);
195
197
200 vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
201 vtkGetMacro(BackgroundOpacity, double);
203
205
208 vtkGetObjectMacro(AnchorTransform, vtkCoordinate);
211
218
219protected:
222
223 int FillInputPortInformation(int port, vtkInformation* info) override;
224
225 class Internal;
226 Internal* Buckets;
227
237
238 int LastRendererSize[2];
239 double LastCameraPosition[3];
240 double LastCameraFocalPoint[3];
241 double LastCameraViewUp[3];
244
245 int Style;
246 int Shape;
247 double Margin;
249 double BackgroundColor[3];
250
251private:
253 void operator=(const vtkLabelPlacementMapper&) = delete;
254};
255
256VTK_ABI_NAMESPACE_END
257#endif
a actor that draws 2D data
Definition vtkActor2D.h:145
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.
Places and renders non-overlapping labels.
virtual void SetAnchorTransform(vtkCoordinate *)
Get/Set the transform for the anchor points.
static vtkLabelPlacementMapper * New()
virtual void SetStyleToOutline()
The style of the label background shape, should be one of the values in the LabelStyle enumeration.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLabelRenderStrategy * RenderStrategy
virtual void SetShapeToRoundedRect()
The shape of the label background, should be one of the values in the LabelShape enumeration.
virtual void SetRenderStrategy(vtkLabelRenderStrategy *s)
Set the label rendering strategy.
virtual void SetStyleToFilled()
The style of the label background shape, should be one of the values in the LabelStyle enumeration.
~vtkLabelPlacementMapper() override
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
virtual void SetShapeToRect()
The shape of the label background, should be one of the values in the LabelShape enumeration.
void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor) override
Draw non-overlapping labels to the screen.
vtkSelectVisiblePoints * VisiblePoints
virtual void SetShapeToNone()
The shape of the label background, should be one of the values in the LabelShape enumeration.
Superclass for label rendering implementations.
abstract class specifies interface for objects which render 2D actors
Definition vtkMapper2D.h:26
extract points that are visible (based on z-buffer calculation)
abstract specification for Viewports
Definition vtkViewport.h:66
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
#define VTK_MARSHALAUTO