VTK  9.4.20250130
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);
210
217
218protected:
221
223
224 int FillInputPortInformation(int port, vtkInformation* info) override;
225
226 class Internal;
227 Internal* Buckets;
228
238
239 int LastRendererSize[2];
240 double LastCameraPosition[3];
241 double LastCameraFocalPoint[3];
242 double LastCameraViewUp[3];
245
246 int Style;
247 int Shape;
248 double Margin;
250 double BackgroundColor[3];
251
252private:
254 void operator=(const vtkLabelPlacementMapper&) = delete;
255};
256
257VTK_ABI_NAMESPACE_END
258#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 *)
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:65
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
#define VTK_MARSHALAUTO