VTK
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 -------------------------------------------------------------------------*/
35 #ifndef vtkLabelPlacementMapper_h
36 #define vtkLabelPlacementMapper_h
37 
38 #include "vtkRenderingLabelModule.h" // For export macro
39 #include "vtkMapper2D.h"
40 
41 class vtkCoordinate;
44 
45 class VTKRENDERINGLABEL_EXPORT vtkLabelPlacementMapper : public vtkMapper2D
46 {
47 public:
48  static vtkLabelPlacementMapper *New();
50  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
55  void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor) override;
56 
58 
61  virtual void SetRenderStrategy(vtkLabelRenderStrategy* s);
62  vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
64 
66 
70  vtkSetClampMacro(MaximumLabelFraction,double,0.,1.);
71  vtkGetMacro(MaximumLabelFraction,double);
73 
75 
79  vtkSetMacro(IteratorType,int);
80  vtkGetMacro(IteratorType,int);
82 
84 
87  vtkSetMacro(UseUnicodeStrings,bool);
88  vtkGetMacro(UseUnicodeStrings,bool);
89  vtkBooleanMacro(UseUnicodeStrings,bool);
91 
93 
98  vtkGetMacro(PositionsAsNormals,bool);
99  vtkSetMacro(PositionsAsNormals,bool);
100  vtkBooleanMacro(PositionsAsNormals,bool);
102 
104 
108  vtkGetMacro(GeneratePerturbedLabelSpokes,bool);
109  vtkSetMacro(GeneratePerturbedLabelSpokes,bool);
110  vtkBooleanMacro(GeneratePerturbedLabelSpokes,bool);
112 
114 
118  vtkGetMacro(UseDepthBuffer,bool);
119  vtkSetMacro(UseDepthBuffer,bool);
120  vtkBooleanMacro(UseDepthBuffer,bool);
122 
124 
128  vtkSetMacro(PlaceAllLabels, bool);
129  vtkGetMacro(PlaceAllLabels, bool);
130  vtkBooleanMacro(PlaceAllLabels, bool);
132 
134 
137  vtkSetMacro(OutputTraversedBounds, bool);
138  vtkGetMacro(OutputTraversedBounds, bool);
139  vtkBooleanMacro(OutputTraversedBounds, bool);
141 
142  enum LabelShape {
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()
157  { this->SetShape(NONE); }
158  virtual void SetShapeToRect()
159  { this->SetShape(RECT); }
160  virtual void SetShapeToRoundedRect()
161  { this->SetShape(ROUNDED_RECT); }
163 
164  enum LabelStyle {
167  NUMBER_OF_LABEL_STYLES
168  };
169 
171 
175  vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES-1);
176  vtkGetMacro(Style, int);
177  virtual void SetStyleToFilled()
178  { this->SetStyle(FILLED); }
179  virtual void SetStyleToOutline()
180  { this->SetStyle(OUTLINE); }
182 
184 
188  vtkSetMacro(Margin, double);
189  vtkGetMacro(Margin, double);
191 
193 
196  vtkSetVector3Macro(BackgroundColor, double);
197  vtkGetVector3Macro(BackgroundColor, double);
199 
201 
204  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
205  vtkGetMacro(BackgroundOpacity, double);
207 
209 
212  vtkGetObjectMacro(AnchorTransform,vtkCoordinate);
214 
220  void ReleaseGraphicsResources(vtkWindow *) override;
221 
222 protected:
224  ~vtkLabelPlacementMapper() override;
225 
226  virtual void SetAnchorTransform( vtkCoordinate* );
227 
228  int FillInputPortInformation( int port, vtkInformation* info ) override;
229 
230  class Internal;
231  Internal* Buckets;
232 
243 
244  int LastRendererSize[2];
245  double LastCameraPosition[3];
246  double LastCameraFocalPoint[3];
247  double LastCameraViewUp[3];
250 
251  int Style;
252  int Shape;
253  double Margin;
255  double BackgroundColor[3];
256 
257 private:
259  void operator=(const vtkLabelPlacementMapper&) = delete;
260 };
261 
262 #endif
263 
vtkLabelPlacementMapper::LastCameraParallelScale
double LastCameraParallelScale
Definition: vtkLabelPlacementMapper.h:248
vtkMapper2D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLabelPlacementMapper::OUTLINE
Definition: vtkLabelPlacementMapper.h:166
vtkMapper2D::RenderOverlay
virtual void RenderOverlay(vtkViewport *, vtkActor2D *)
Definition: vtkMapper2D.h:41
vtkLabelPlacementMapper::Shape
int Shape
Definition: vtkLabelPlacementMapper.h:252
vtkLabelPlacementMapper::SetShapeToRect
virtual void SetShapeToRect()
Definition: vtkLabelPlacementMapper.h:158
vtkLabelPlacementMapper::SetStyleToFilled
virtual void SetStyleToFilled()
Definition: vtkLabelPlacementMapper.h:177
vtkAlgorithm::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkLabelPlacementMapper::Margin
double Margin
Definition: vtkLabelPlacementMapper.h:253
vtkX3D::Shape
Definition: vtkX3D.h:36
vtkLabelPlacementMapper::Style
int Style
Definition: vtkLabelPlacementMapper.h:251
vtkLabelPlacementMapper
Places and renders non-overlapping labels.
Definition: vtkLabelPlacementMapper.h:45
vtkLabelPlacementMapper::RenderStrategy
vtkLabelRenderStrategy * RenderStrategy
Definition: vtkLabelPlacementMapper.h:233
vtkLabelPlacementMapper::OutputTraversedBounds
bool OutputTraversedBounds
Definition: vtkLabelPlacementMapper.h:242
vtkLabelPlacementMapper::SetShapeToNone
virtual void SetShapeToNone()
Definition: vtkLabelPlacementMapper.h:156
vtkLabelPlacementMapper::LabelStyle
LabelStyle
Definition: vtkLabelPlacementMapper.h:164
vtkLabelPlacementMapper::LabelShape
LabelShape
Definition: vtkLabelPlacementMapper.h:142
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkLabelPlacementMapper::NONE
Definition: vtkLabelPlacementMapper.h:143
vtkLabelPlacementMapper::BackgroundOpacity
double BackgroundOpacity
Definition: vtkLabelPlacementMapper.h:254
vtkX3D::port
Definition: vtkX3D.h:447
vtkLabelPlacementMapper::PlaceAllLabels
bool PlaceAllLabels
Definition: vtkLabelPlacementMapper.h:241
vtkLabelPlacementMapper::FILLED
Definition: vtkLabelPlacementMapper.h:165
vtkLabelPlacementMapper::UseUnicodeStrings
bool UseUnicodeStrings
Definition: vtkLabelPlacementMapper.h:240
vtkLabelPlacementMapper::Buckets
Internal * Buckets
Definition: vtkLabelPlacementMapper.h:230
vtkLabelPlacementMapper::MaximumLabelFraction
double MaximumLabelFraction
Definition: vtkLabelPlacementMapper.h:236
vtkLabelPlacementMapper::SetShapeToRoundedRect
virtual void SetShapeToRoundedRect()
Definition: vtkLabelPlacementMapper.h:160
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkLabelPlacementMapper::IteratorType
int IteratorType
Definition: vtkLabelPlacementMapper.h:249
vtkMapper2D.h
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:75
vtkLabelPlacementMapper::PositionsAsNormals
bool PositionsAsNormals
Definition: vtkLabelPlacementMapper.h:237
vtkLabelPlacementMapper::AnchorTransform
vtkCoordinate * AnchorTransform
Definition: vtkLabelPlacementMapper.h:234
vtkAbstractMapper::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this mapper.
Definition: vtkAbstractMapper.h:68
vtkLabelPlacementMapper::ROUNDED_RECT
Definition: vtkLabelPlacementMapper.h:145
vtkLabelPlacementMapper::VisiblePoints
vtkSelectVisiblePoints * VisiblePoints
Definition: vtkLabelPlacementMapper.h:235
vtkMapper2D
abstract class specifies interface for objects which render 2D actors
Definition: vtkMapper2D.h:35
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkLabelRenderStrategy
Superclass for label rendering implementations.
Definition: vtkLabelRenderStrategy.h:36
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:80
vtkX3D::info
Definition: vtkX3D.h:376
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkLabelPlacementMapper::UseDepthBuffer
bool UseDepthBuffer
Definition: vtkLabelPlacementMapper.h:239
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:39
vtkSelectVisiblePoints
extract points that are visible (based on z-buffer calculation)
Definition: vtkSelectVisiblePoints.h:54
vtkLabelPlacementMapper::SetStyleToOutline
virtual void SetStyleToOutline()
Definition: vtkLabelPlacementMapper.h:179
vtkLabelPlacementMapper::RECT
Definition: vtkLabelPlacementMapper.h:144
vtkLabelPlacementMapper::GeneratePerturbedLabelSpokes
bool GeneratePerturbedLabelSpokes
Definition: vtkLabelPlacementMapper.h:238