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 -------------------------------------------------------------------------*/
41 #ifndef vtkLabelPlacementMapper_h
42 #define vtkLabelPlacementMapper_h
43 
44 #include "vtkRenderingLabelModule.h" // For export macro
45 #include "vtkMapper2D.h"
46 
47 class vtkCoordinate;
50 
51 class VTKRENDERINGLABEL_EXPORT vtkLabelPlacementMapper : public vtkMapper2D
52 {
53 public:
56  void PrintSelf(ostream& os, vtkIndent indent);
57 
61  void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor);
62 
64 
68  vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
70 
72 
76  vtkSetClampMacro(MaximumLabelFraction,double,0.,1.);
77  vtkGetMacro(MaximumLabelFraction,double);
79 
81 
85  vtkSetMacro(IteratorType,int);
86  vtkGetMacro(IteratorType,int);
88 
90 
93  vtkSetMacro(UseUnicodeStrings,bool);
94  vtkGetMacro(UseUnicodeStrings,bool);
95  vtkBooleanMacro(UseUnicodeStrings,bool);
97 
99 
104  vtkGetMacro(PositionsAsNormals,bool);
105  vtkSetMacro(PositionsAsNormals,bool);
106  vtkBooleanMacro(PositionsAsNormals,bool);
108 
110 
114  vtkGetMacro(GeneratePerturbedLabelSpokes,bool);
115  vtkSetMacro(GeneratePerturbedLabelSpokes,bool);
116  vtkBooleanMacro(GeneratePerturbedLabelSpokes,bool);
118 
120 
124  vtkGetMacro(UseDepthBuffer,bool);
125  vtkSetMacro(UseDepthBuffer,bool);
126  vtkBooleanMacro(UseDepthBuffer,bool);
128 
130 
134  vtkSetMacro(PlaceAllLabels, bool);
135  vtkGetMacro(PlaceAllLabels, bool);
136  vtkBooleanMacro(PlaceAllLabels, bool);
138 
140 
143  vtkSetMacro(OutputTraversedBounds, bool);
144  vtkGetMacro(OutputTraversedBounds, bool);
145  vtkBooleanMacro(OutputTraversedBounds, bool);
147 
148  enum LabelShape {
152  NUMBER_OF_LABEL_SHAPES
153  };
154 
156 
160  vtkSetClampMacro(Shape, int, 0, NUMBER_OF_LABEL_SHAPES-1);
161  vtkGetMacro(Shape, int);
162  virtual void SetShapeToNone()
163  { this->SetShape(NONE); }
164  virtual void SetShapeToRect()
165  { this->SetShape(RECT); }
166  virtual void SetShapeToRoundedRect()
167  { this->SetShape(ROUNDED_RECT); }
169 
170  enum LabelStyle {
173  NUMBER_OF_LABEL_STYLES
174  };
175 
177 
181  vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES-1);
182  vtkGetMacro(Style, int);
183  virtual void SetStyleToFilled()
184  { this->SetStyle(FILLED); }
185  virtual void SetStyleToOutline()
186  { this->SetStyle(OUTLINE); }
188 
190 
194  vtkSetMacro(Margin, double);
195  vtkGetMacro(Margin, double);
197 
199 
202  vtkSetVector3Macro(BackgroundColor, double);
203  vtkGetVector3Macro(BackgroundColor, double);
205 
207 
210  vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
211  vtkGetMacro(BackgroundOpacity, double);
213 
215 
218  vtkGetObjectMacro(AnchorTransform,vtkCoordinate);
220 
227 
228 protected:
231 
233 
235 
236  class Internal;
237  Internal* Buckets;
238 
249 
250  int LastRendererSize[2];
251  double LastCameraPosition[3];
252  double LastCameraFocalPoint[3];
253  double LastCameraViewUp[3];
256 
257  int Style;
258  int Shape;
259  double Margin;
261  double BackgroundColor[3];
262 
263 private:
264  vtkLabelPlacementMapper(const vtkLabelPlacementMapper&) VTK_DELETE_FUNCTION;
265  void operator=(const vtkLabelPlacementMapper&) VTK_DELETE_FUNCTION;
266 };
267 
268 #endif
269 
a actor that draws 2D data
Definition: vtkActor2D.h:46
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:71
a simple class to control print indentation
Definition: vtkIndent.h:40
Store vtkAlgorithm input/output information.
Places and renders non-overlapping labels.
virtual void SetAnchorTransform(vtkCoordinate *)
virtual void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this mapper.
vtkLabelRenderStrategy * RenderStrategy
virtual void SetRenderStrategy(vtkLabelRenderStrategy *s)
Set the label rendering strategy.
static vtkLabelPlacementMapper * New()
void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor)
Draw non-overlapping labels to the screen.
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkSelectVisiblePoints * VisiblePoints
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
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:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ Shape
Definition: vtkX3D.h:36
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.