VTK  9.1.0
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 =========================================================================*/
75 #ifndef vtkCornerAnnotation_h
76 #define vtkCornerAnnotation_h
77 
78 #include "vtkActor2D.h"
79 #include "vtkRenderingAnnotationModule.h" // For export macro
80 
81 class vtkTextMapper;
83 class vtkImageActor;
84 class vtkTextProperty;
85 
86 class VTKRENDERINGANNOTATION_EXPORT vtkCornerAnnotation : public vtkActor2D
87 {
88 public:
90  void PrintSelf(ostream& os, vtkIndent indent) override;
91 
97 
99 
102  int RenderOpaqueGeometry(vtkViewport* viewport) override;
103  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
104  int RenderOverlay(vtkViewport* viewport) override;
106 
111 
113 
118  vtkSetMacro(MaximumLineHeight, double);
119  vtkGetMacro(MaximumLineHeight, double);
121 
123 
127  vtkSetMacro(MinimumFontSize, int);
128  vtkGetMacro(MinimumFontSize, int);
129  vtkSetMacro(MaximumFontSize, int);
130  vtkGetMacro(MaximumFontSize, int);
132 
134 
143  vtkSetMacro(LinearFontScaleFactor, double);
144  vtkGetMacro(LinearFontScaleFactor, double);
145  vtkSetMacro(NonlinearFontScaleFactor, double);
146  vtkGetMacro(NonlinearFontScaleFactor, double);
148 
155 
157 
162  {
163  LowerLeft = 0,
170  UpperEdge
171  };
172  static const int NumTextPositions = 8;
174 
176 
180  void SetText(int i, const char* text);
181  const char* GetText(int i);
185 
187 
191  vtkGetObjectMacro(ImageActor, vtkImageActor);
193 
195 
200  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
202 
204 
207  vtkSetMacro(LevelShift, double);
208  vtkGetMacro(LevelShift, double);
210 
212 
215  vtkSetMacro(LevelScale, double);
216  vtkGetMacro(LevelScale, double);
218 
220 
224  vtkGetObjectMacro(TextProperty, vtkTextProperty);
226 
228 
231  vtkBooleanMacro(ShowSliceAndImage, vtkTypeBool);
232  vtkSetMacro(ShowSliceAndImage, vtkTypeBool);
233  vtkGetMacro(ShowSliceAndImage, vtkTypeBool);
235 
236 protected:
239 
241 
243 
245  double LevelShift;
246  double LevelScale;
249 
250  char* CornerText[NumTextPositions];
251 
252  int FontSize;
253  vtkActor2D* TextActor[NumTextPositions];
255  int LastSize[2];
256  vtkTextMapper* TextMapper[NumTextPositions];
257 
260 
263 
265 
270 
272 
275  virtual void SetTextActorsPosition(const int vsize[2]);
278 
279 private:
280  vtkCornerAnnotation(const vtkCornerAnnotation&) = delete;
281  void operator=(const vtkCornerAnnotation&) = delete;
282 };
283 
284 #endif
vtkCornerAnnotation::LeftEdge
@ LeftEdge
Uses the left edge center.
Definition: vtkCornerAnnotation.h:169
vtkCornerAnnotation::MinimumFontSize
int MinimumFontSize
Definition: vtkCornerAnnotation.h:258
vtkCornerAnnotation::MaximumFontSize
int MaximumFontSize
Definition: vtkCornerAnnotation.h:259
vtkCornerAnnotation::SetTextActorsPosition
virtual void SetTextActorsPosition(const int vsize[2])
Set text actor positions given a viewport size and justification.
vtkCornerAnnotation::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkCornerAnnotation::TextProperty
vtkTextProperty * TextProperty
Definition: vtkCornerAnnotation.h:242
vtkCornerAnnotation::ClearAllTexts
void ClearAllTexts()
Set/Get the text to be displayed for each corner.
vtkCornerAnnotation::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkCornerAnnotation::LevelScale
double LevelScale
Definition: vtkCornerAnnotation.h:246
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:52
vtkCornerAnnotation::SetTextProperty
virtual void SetTextProperty(vtkTextProperty *p)
Set/Get the text property of all corners.
vtkCornerAnnotation::ImageActor
vtkImageActor * ImageActor
Definition: vtkCornerAnnotation.h:247
vtkCornerAnnotation::ShowSliceAndImage
vtkTypeBool ShowSliceAndImage
Definition: vtkCornerAnnotation.h:264
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkCornerAnnotation::vtkCornerAnnotation
vtkCornerAnnotation()
vtkCornerAnnotation::UpperRight
@ UpperRight
Uses the upper right corner.
Definition: vtkCornerAnnotation.h:166
vtkCornerAnnotation::BuildTime
vtkTimeStamp BuildTime
Definition: vtkCornerAnnotation.h:254
vtkCornerAnnotation::LastImageActor
vtkImageActor * LastImageActor
Definition: vtkCornerAnnotation.h:248
vtkCornerAnnotation::LowerRight
@ LowerRight
Uses the lower right corner.
Definition: vtkCornerAnnotation.h:164
vtkCornerAnnotation::RenderOverlay
int RenderOverlay(vtkViewport *viewport) override
Draw the scalar bar and annotation text to the screen.
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:157
vtkCornerAnnotation::SetText
void SetText(int i, const char *text)
Set/Get the text to be displayed for each corner.
vtkCornerAnnotation::GetText
const char * GetText(int i)
Set/Get the text to be displayed for each corner.
vtkCornerAnnotation::RightEdge
@ RightEdge
Uses the right edge center.
Definition: vtkCornerAnnotation.h:168
vtkCornerAnnotation::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport) override
Draw the scalar bar and annotation text to the screen.
vtkCornerAnnotation::LowerEdge
@ LowerEdge
Uses the lower edge center.
Definition: vtkCornerAnnotation.h:167
vtkImageMapToWindowLevelColors
Map an image through a lookup table and/or a window/level.
Definition: vtkImageMapToWindowLevelColors.h:88
vtkCornerAnnotation
text annotation in four corners
Definition: vtkCornerAnnotation.h:87
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkCornerAnnotation::UpperLeft
@ UpperLeft
Uses the upper left corner.
Definition: vtkCornerAnnotation.h:165
vtkCornerAnnotation::SetTextActorsJustification
virtual void SetTextActorsJustification()
Set text actor positions given a viewport size and justification.
vtkCornerAnnotation::MaximumLineHeight
double MaximumLineHeight
Definition: vtkCornerAnnotation.h:240
vtkCornerAnnotation::LevelShift
double LevelShift
Definition: vtkCornerAnnotation.h:245
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:143
vtkCornerAnnotation::NonlinearFontScaleFactor
double NonlinearFontScaleFactor
Definition: vtkCornerAnnotation.h:262
vtkCornerAnnotation::TextReplace
virtual void TextReplace(vtkImageActor *ia, vtkImageMapToWindowLevelColors *wl)
Search for replaceable tokens and replace.
vtkCornerAnnotation::HasTranslucentPolygonalGeometry
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:149
vtkActor2D.h
vtkCornerAnnotation::TextPosition
TextPosition
Position used to get or set the corner annotation text.
Definition: vtkCornerAnnotation.h:162
vtkCornerAnnotation::New
static vtkCornerAnnotation * New()
Instantiate object with a rectangle in normaled view coordinates of (0.2,0.85, 0.8,...
vtkCornerAnnotation::FontSize
int FontSize
Definition: vtkCornerAnnotation.h:252
vtkCornerAnnotation::WindowLevel
vtkImageMapToWindowLevelColors * WindowLevel
Definition: vtkCornerAnnotation.h:244
vtkImageActor
draw an image in a rendered 3D scene
Definition: vtkImageActor.h:152
vtkCornerAnnotation::LinearFontScaleFactor
double LinearFontScaleFactor
Definition: vtkCornerAnnotation.h:261
vtkCornerAnnotation::CopyAllTextsFrom
void CopyAllTextsFrom(vtkCornerAnnotation *ca)
Set/Get the text to be displayed for each corner.
vtkCornerAnnotation::SetImageActor
void SetImageActor(vtkImageActor *)
Set an image actor to look at for slice information.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkCornerAnnotation::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the scalar bar and annotation text to the screen.
Definition: vtkCornerAnnotation.h:103
vtkCornerAnnotation::SetWindowLevel
void SetWindowLevel(vtkImageMapToWindowLevelColors *)
Set an instance of vtkImageMapToWindowLevelColors to use for looking at window level changes.
vtkCornerAnnotation::~vtkCornerAnnotation
~vtkCornerAnnotation() override