VTK  9.2.5
vtkLabelPlacementMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLabelPlacementMapper.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 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
57 #ifndef vtkLabelPlacementMapper_h
58 #define vtkLabelPlacementMapper_h
59 
60 #include "vtkMapper2D.h"
61 #include "vtkRenderingLabelModule.h" // For export macro
62 
63 class vtkCoordinate;
66 
67 class VTKRENDERINGLABEL_EXPORT vtkLabelPlacementMapper : public vtkMapper2D
68 {
69 public:
72  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
77  void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor) override;
78 
80 
84  vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
86 
88 
92  vtkSetClampMacro(MaximumLabelFraction, double, 0., 1.);
93  vtkGetMacro(MaximumLabelFraction, double);
95 
97 
101  vtkSetMacro(IteratorType, int);
102  vtkGetMacro(IteratorType, int);
104 
106 
111  vtkGetMacro(PositionsAsNormals, bool);
112  vtkSetMacro(PositionsAsNormals, bool);
113  vtkBooleanMacro(PositionsAsNormals, bool);
115 
117 
121  vtkGetMacro(GeneratePerturbedLabelSpokes, bool);
122  vtkSetMacro(GeneratePerturbedLabelSpokes, bool);
123  vtkBooleanMacro(GeneratePerturbedLabelSpokes, bool);
125 
127 
131  vtkGetMacro(UseDepthBuffer, bool);
132  vtkSetMacro(UseDepthBuffer, bool);
133  vtkBooleanMacro(UseDepthBuffer, bool);
135 
137 
141  vtkSetMacro(PlaceAllLabels, bool);
142  vtkGetMacro(PlaceAllLabels, bool);
143  vtkBooleanMacro(PlaceAllLabels, bool);
145 
147 
150  vtkSetMacro(OutputTraversedBounds, bool);
151  vtkGetMacro(OutputTraversedBounds, bool);
152  vtkBooleanMacro(OutputTraversedBounds, bool);
154 
156  {
160  NUMBER_OF_LABEL_SHAPES
161  };
162 
164 
168  vtkSetClampMacro(Shape, int, 0, NUMBER_OF_LABEL_SHAPES - 1);
169  vtkGetMacro(Shape, int);
170  virtual void SetShapeToNone() { this->SetShape(NONE); }
171  virtual void SetShapeToRect() { this->SetShape(RECT); }
172  virtual void SetShapeToRoundedRect() { this->SetShape(ROUNDED_RECT); }
174 
176  {
179  NUMBER_OF_LABEL_STYLES
180  };
181 
183 
187  vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES - 1);
188  vtkGetMacro(Style, int);
189  virtual void SetStyleToFilled() { this->SetStyle(FILLED); }
190  virtual void SetStyleToOutline() { this->SetStyle(OUTLINE); }
192 
194 
198  vtkSetMacro(Margin, double);
199  vtkGetMacro(Margin, double);
201 
203 
206  vtkSetVector3Macro(BackgroundColor, double);
207  vtkGetVector3Macro(BackgroundColor, double);
209 
211 
214  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
215  vtkGetMacro(BackgroundOpacity, double);
217 
219 
222  vtkGetObjectMacro(AnchorTransform, vtkCoordinate);
224 
231 
232 protected:
235 
237 
239 
240  class Internal;
241  Internal* Buckets;
242 
252 
253  int LastRendererSize[2];
254  double LastCameraPosition[3];
255  double LastCameraFocalPoint[3];
256  double LastCameraViewUp[3];
259 
260  int Style;
261  int Shape;
262  double Margin;
264  double BackgroundColor[3];
265 
266 private:
268  void operator=(const vtkLabelPlacementMapper&) = delete;
269 };
270 
271 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:155
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
a simple class to control print indentation
Definition: vtkIndent.h:119
Store vtkAlgorithm input/output information.
Places and renders non-overlapping labels.
virtual void SetAnchorTransform(vtkCoordinate *)
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.
static vtkLabelPlacementMapper * New()
~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:36
extract points that are visible (based on z-buffer calculation)
abstract specification for Viewports
Definition: vtkViewport.h:56
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ Shape
Definition: vtkX3D.h:42
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453