VTK  9.0.1
vtkCornerAnnotation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCornerAnnotation.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 =========================================================================*/
36 #ifndef vtkCornerAnnotation_h
37 #define vtkCornerAnnotation_h
38 
39 #include "vtkActor2D.h"
40 #include "vtkRenderingAnnotationModule.h" // For export macro
41 
42 class vtkTextMapper;
44 class vtkImageActor;
45 class vtkTextProperty;
46 
47 class VTKRENDERINGANNOTATION_EXPORT vtkCornerAnnotation : public vtkActor2D
48 {
49 public:
51  void PrintSelf(ostream& os, vtkIndent indent) override;
52 
57  static vtkCornerAnnotation* New();
58 
60 
63  int RenderOpaqueGeometry(vtkViewport* viewport) override;
64  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
65  int RenderOverlay(vtkViewport* viewport) override;
67 
72 
74 
79  vtkSetMacro(MaximumLineHeight, double);
80  vtkGetMacro(MaximumLineHeight, double);
82 
84 
88  vtkSetMacro(MinimumFontSize, int);
89  vtkGetMacro(MinimumFontSize, int);
90  vtkSetMacro(MaximumFontSize, int);
91  vtkGetMacro(MaximumFontSize, int);
93 
95 
104  vtkSetMacro(LinearFontScaleFactor, double);
105  vtkGetMacro(LinearFontScaleFactor, double);
106  vtkSetMacro(NonlinearFontScaleFactor, double);
107  vtkGetMacro(NonlinearFontScaleFactor, double);
109 
115  void ReleaseGraphicsResources(vtkWindow*) override;
116 
118 
123  {
124  LowerLeft = 0,
131  UpperEdge
132  };
133  static const int NumTextPositions = 8;
135 
137 
141  void SetText(int i, const char* text);
142  const char* GetText(int i);
143  void ClearAllTexts();
144  void CopyAllTextsFrom(vtkCornerAnnotation* ca);
146 
148 
151  void SetImageActor(vtkImageActor*);
152  vtkGetObjectMacro(ImageActor, vtkImageActor);
154 
156 
160  void SetWindowLevel(vtkImageMapToWindowLevelColors*);
161  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
163 
165 
168  vtkSetMacro(LevelShift, double);
169  vtkGetMacro(LevelShift, double);
171 
173 
176  vtkSetMacro(LevelScale, double);
177  vtkGetMacro(LevelScale, double);
179 
181 
184  virtual void SetTextProperty(vtkTextProperty* p);
185  vtkGetObjectMacro(TextProperty, vtkTextProperty);
187 
189 
192  vtkBooleanMacro(ShowSliceAndImage, vtkTypeBool);
193  vtkSetMacro(ShowSliceAndImage, vtkTypeBool);
194  vtkGetMacro(ShowSliceAndImage, vtkTypeBool);
196 
197 protected:
199  ~vtkCornerAnnotation() override;
200 
202 
204 
206  double LevelShift;
207  double LevelScale;
210 
211  char* CornerText[NumTextPositions];
212 
213  int FontSize;
214  vtkActor2D* TextActor[NumTextPositions];
216  int LastSize[2];
217  vtkTextMapper* TextMapper[NumTextPositions];
218 
221 
224 
226 
230  virtual void TextReplace(vtkImageActor* ia, vtkImageMapToWindowLevelColors* wl);
231 
233 
236  virtual void SetTextActorsPosition(const int vsize[2]);
237  virtual void SetTextActorsJustification();
239 
240 private:
241  vtkCornerAnnotation(const vtkCornerAnnotation&) = delete;
242  void operator=(const vtkCornerAnnotation&) = delete;
243 };
244 
245 #endif
vtkCornerAnnotation::LeftEdge
@ LeftEdge
Uses the left edge center.
Definition: vtkCornerAnnotation.h:130
vtkActor2D::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
vtkCornerAnnotation::MinimumFontSize
int MinimumFontSize
Definition: vtkCornerAnnotation.h:219
vtkCornerAnnotation::MaximumFontSize
int MaximumFontSize
Definition: vtkCornerAnnotation.h:220
vtkCornerAnnotation::TextProperty
vtkTextProperty * TextProperty
Definition: vtkCornerAnnotation.h:203
vtkCornerAnnotation::LevelScale
double LevelScale
Definition: vtkCornerAnnotation.h:207
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:32
vtkActor2D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkCornerAnnotation::ImageActor
vtkImageActor * ImageActor
Definition: vtkCornerAnnotation.h:208
vtkCornerAnnotation::ShowSliceAndImage
vtkTypeBool ShowSliceAndImage
Definition: vtkCornerAnnotation.h:225
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
vtkCornerAnnotation::UpperRight
@ UpperRight
Uses the upper right corner.
Definition: vtkCornerAnnotation.h:127
vtkCornerAnnotation::BuildTime
vtkTimeStamp BuildTime
Definition: vtkCornerAnnotation.h:215
vtkActor2D::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkCornerAnnotation::LastImageActor
vtkImageActor * LastImageActor
Definition: vtkCornerAnnotation.h:209
vtkCornerAnnotation::LowerRight
@ LowerRight
Uses the lower right corner.
Definition: vtkCornerAnnotation.h:125
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:47
vtkCornerAnnotation::RightEdge
@ RightEdge
Uses the right edge center.
Definition: vtkCornerAnnotation.h:129
vtkCornerAnnotation::LowerEdge
@ LowerEdge
Uses the lower edge center.
Definition: vtkCornerAnnotation.h:128
vtkActor2D::RenderOverlay
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
vtkImageMapToWindowLevelColors
Map an image through a lookup table and/or a window/level.
Definition: vtkImageMapToWindowLevelColors.h:48
vtkCornerAnnotation
text annotation in four corners
Definition: vtkCornerAnnotation.h:47
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkCornerAnnotation::UpperLeft
@ UpperLeft
Uses the upper left corner.
Definition: vtkCornerAnnotation.h:126
vtkCornerAnnotation::MaximumLineHeight
double MaximumLineHeight
Definition: vtkCornerAnnotation.h:201
vtkCornerAnnotation::LevelShift
double LevelShift
Definition: vtkCornerAnnotation.h:206
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:33
vtkCornerAnnotation::NonlinearFontScaleFactor
double NonlinearFontScaleFactor
Definition: vtkCornerAnnotation.h:223
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:39
vtkActor2D.h
vtkActor2D::New
static vtkActor2D * New()
Creates an actor2D with the following defaults: position (0,0) (coordinate system is viewport); at la...
vtkCornerAnnotation::TextPosition
TextPosition
Position used to get or set the corner annotation text.
Definition: vtkCornerAnnotation.h:122
vtkCornerAnnotation::FontSize
int FontSize
Definition: vtkCornerAnnotation.h:213
vtkCornerAnnotation::WindowLevel
vtkImageMapToWindowLevelColors * WindowLevel
Definition: vtkCornerAnnotation.h:205
vtkImageActor
draw an image in a rendered 3D scene
Definition: vtkImageActor.h:42
vtkCornerAnnotation::LinearFontScaleFactor
double LinearFontScaleFactor
Definition: vtkCornerAnnotation.h:222
vtkActor2D::HasTranslucentPolygonalGeometry
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkCornerAnnotation::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Definition: vtkCornerAnnotation.h:64