VTK  9.1.0
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 -------------------------------------------------------------------------*/
54 #ifndef vtkLabelPlacementMapper_h
55 #define vtkLabelPlacementMapper_h
56 
57 #include "vtkMapper2D.h"
58 #include "vtkRenderingLabelModule.h" // For export macro
59 
60 class vtkCoordinate;
63 
64 class VTKRENDERINGLABEL_EXPORT vtkLabelPlacementMapper : public vtkMapper2D
65 {
66 public:
69  void PrintSelf(ostream& os, vtkIndent indent) override;
70 
74  void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor) override;
75 
77 
81  vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
83 
85 
89  vtkSetClampMacro(MaximumLabelFraction, double, 0., 1.);
90  vtkGetMacro(MaximumLabelFraction, double);
92 
94 
98  vtkSetMacro(IteratorType, int);
99  vtkGetMacro(IteratorType, int);
101 
103 
106  vtkSetMacro(UseUnicodeStrings, bool);
107  vtkGetMacro(UseUnicodeStrings, bool);
108  vtkBooleanMacro(UseUnicodeStrings, bool);
110 
112 
117  vtkGetMacro(PositionsAsNormals, bool);
118  vtkSetMacro(PositionsAsNormals, bool);
119  vtkBooleanMacro(PositionsAsNormals, bool);
121 
123 
127  vtkGetMacro(GeneratePerturbedLabelSpokes, bool);
128  vtkSetMacro(GeneratePerturbedLabelSpokes, bool);
129  vtkBooleanMacro(GeneratePerturbedLabelSpokes, bool);
131 
133 
137  vtkGetMacro(UseDepthBuffer, bool);
138  vtkSetMacro(UseDepthBuffer, bool);
139  vtkBooleanMacro(UseDepthBuffer, bool);
141 
143 
147  vtkSetMacro(PlaceAllLabels, bool);
148  vtkGetMacro(PlaceAllLabels, bool);
149  vtkBooleanMacro(PlaceAllLabels, bool);
151 
153 
156  vtkSetMacro(OutputTraversedBounds, bool);
157  vtkGetMacro(OutputTraversedBounds, bool);
158  vtkBooleanMacro(OutputTraversedBounds, bool);
160 
162  {
166  NUMBER_OF_LABEL_SHAPES
167  };
168 
170 
174  vtkSetClampMacro(Shape, int, 0, NUMBER_OF_LABEL_SHAPES - 1);
175  vtkGetMacro(Shape, int);
176  virtual void SetShapeToNone() { this->SetShape(NONE); }
177  virtual void SetShapeToRect() { this->SetShape(RECT); }
178  virtual void SetShapeToRoundedRect() { this->SetShape(ROUNDED_RECT); }
180 
182  {
185  NUMBER_OF_LABEL_STYLES
186  };
187 
189 
193  vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES - 1);
194  vtkGetMacro(Style, int);
195  virtual void SetStyleToFilled() { this->SetStyle(FILLED); }
196  virtual void SetStyleToOutline() { this->SetStyle(OUTLINE); }
198 
200 
204  vtkSetMacro(Margin, double);
205  vtkGetMacro(Margin, double);
207 
209 
212  vtkSetVector3Macro(BackgroundColor, double);
213  vtkGetVector3Macro(BackgroundColor, double);
215 
217 
220  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
221  vtkGetMacro(BackgroundOpacity, double);
223 
225 
228  vtkGetObjectMacro(AnchorTransform, vtkCoordinate);
230 
237 
238 protected:
241 
243 
245 
246  class Internal;
247  Internal* Buckets;
248 
259 
260  int LastRendererSize[2];
261  double LastCameraPosition[3];
262  double LastCameraFocalPoint[3];
263  double LastCameraViewUp[3];
266 
267  int Style;
268  int Shape;
269  double Margin;
271  double BackgroundColor[3];
272 
273 private:
275  void operator=(const vtkLabelPlacementMapper&) = delete;
276 };
277 
278 #endif
vtkLabelPlacementMapper::LastCameraParallelScale
double LastCameraParallelScale
Definition: vtkLabelPlacementMapper.h:264
vtkLabelPlacementMapper::OUTLINE
@ OUTLINE
Definition: vtkLabelPlacementMapper.h:184
vtkLabelPlacementMapper::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
vtkLabelPlacementMapper::Shape
int Shape
Definition: vtkLabelPlacementMapper.h:268
vtkLabelPlacementMapper::SetShapeToRect
virtual void SetShapeToRect()
The shape of the label background, should be one of the values in the LabelShape enumeration.
Definition: vtkLabelPlacementMapper.h:177
vtkLabelPlacementMapper::SetStyleToFilled
virtual void SetStyleToFilled()
The style of the label background shape, should be one of the values in the LabelStyle enumeration.
Definition: vtkLabelPlacementMapper.h:195
vtkLabelPlacementMapper::vtkLabelPlacementMapper
vtkLabelPlacementMapper()
vtkLabelPlacementMapper::Margin
double Margin
Definition: vtkLabelPlacementMapper.h:269
vtkX3D::Shape
@ Shape
Definition: vtkX3D.h:42
vtkLabelPlacementMapper::Style
int Style
Definition: vtkLabelPlacementMapper.h:267
vtkLabelPlacementMapper
Places and renders non-overlapping labels.
Definition: vtkLabelPlacementMapper.h:65
vtkLabelPlacementMapper::RenderStrategy
vtkLabelRenderStrategy * RenderStrategy
Definition: vtkLabelPlacementMapper.h:249
vtkLabelPlacementMapper::OutputTraversedBounds
bool OutputTraversedBounds
Definition: vtkLabelPlacementMapper.h:258
vtkLabelPlacementMapper::SetShapeToNone
virtual void SetShapeToNone()
The shape of the label background, should be one of the values in the LabelShape enumeration.
Definition: vtkLabelPlacementMapper.h:176
vtkLabelPlacementMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLabelPlacementMapper::New
static vtkLabelPlacementMapper * New()
vtkLabelPlacementMapper::LabelStyle
LabelStyle
Definition: vtkLabelPlacementMapper.h:182
vtkLabelPlacementMapper::LabelShape
LabelShape
Definition: vtkLabelPlacementMapper.h:162
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkLabelPlacementMapper::NONE
@ NONE
Definition: vtkLabelPlacementMapper.h:163
vtkLabelPlacementMapper::BackgroundOpacity
double BackgroundOpacity
Definition: vtkLabelPlacementMapper.h:270
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkLabelPlacementMapper::PlaceAllLabels
bool PlaceAllLabels
Definition: vtkLabelPlacementMapper.h:257
vtkLabelPlacementMapper::FILLED
@ FILLED
Definition: vtkLabelPlacementMapper.h:183
vtkLabelPlacementMapper::UseUnicodeStrings
bool UseUnicodeStrings
Definition: vtkLabelPlacementMapper.h:256
vtkLabelPlacementMapper::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkLabelPlacementMapper::SetRenderStrategy
virtual void SetRenderStrategy(vtkLabelRenderStrategy *s)
Set the label rendering strategy.
vtkLabelPlacementMapper::Buckets
Internal * Buckets
Definition: vtkLabelPlacementMapper.h:246
vtkLabelPlacementMapper::MaximumLabelFraction
double MaximumLabelFraction
Definition: vtkLabelPlacementMapper.h:252
vtkLabelPlacementMapper::SetShapeToRoundedRect
virtual void SetShapeToRoundedRect()
The shape of the label background, should be one of the values in the LabelShape enumeration.
Definition: vtkLabelPlacementMapper.h:178
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkLabelPlacementMapper::IteratorType
int IteratorType
Definition: vtkLabelPlacementMapper.h:265
vtkMapper2D.h
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:186
vtkLabelPlacementMapper::PositionsAsNormals
bool PositionsAsNormals
Definition: vtkLabelPlacementMapper.h:253
vtkLabelPlacementMapper::AnchorTransform
vtkCoordinate * AnchorTransform
Definition: vtkLabelPlacementMapper.h:250
vtkLabelPlacementMapper::ROUNDED_RECT
@ ROUNDED_RECT
Definition: vtkLabelPlacementMapper.h:165
vtkLabelPlacementMapper::VisiblePoints
vtkSelectVisiblePoints * VisiblePoints
Definition: vtkLabelPlacementMapper.h:251
vtkMapper2D
abstract class specifies interface for objects which render 2D actors
Definition: vtkMapper2D.h:36
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkLabelRenderStrategy
Superclass for label rendering implementations.
Definition: vtkLabelRenderStrategy.h:37
vtkLabelPlacementMapper::~vtkLabelPlacementMapper
~vtkLabelPlacementMapper() override
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkLabelPlacementMapper::UseDepthBuffer
bool UseDepthBuffer
Definition: vtkLabelPlacementMapper.h:255
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:149
vtkLabelPlacementMapper::SetAnchorTransform
virtual void SetAnchorTransform(vtkCoordinate *)
vtkSelectVisiblePoints
extract points that are visible (based on z-buffer calculation)
Definition: vtkSelectVisiblePoints.h:84
vtkLabelPlacementMapper::SetStyleToOutline
virtual void SetStyleToOutline()
The style of the label background shape, should be one of the values in the LabelStyle enumeration.
Definition: vtkLabelPlacementMapper.h:196
vtkLabelPlacementMapper::RenderOverlay
void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor) override
Draw non-overlapping labels to the screen.
vtkLabelPlacementMapper::RECT
@ RECT
Definition: vtkLabelPlacementMapper.h:164
vtkLabelPlacementMapper::GeneratePerturbedLabelSpokes
bool GeneratePerturbedLabelSpokes
Definition: vtkLabelPlacementMapper.h:254