VTK  9.3.1
vtkCornerAnnotation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
27 #ifndef vtkCornerAnnotation_h
28 #define vtkCornerAnnotation_h
29 
30 #include "vtkActor2D.h"
31 #include "vtkRenderingAnnotationModule.h" // For export macro
32 
33 VTK_ABI_NAMESPACE_BEGIN
34 class vtkTextMapper;
36 class vtkImageActor;
37 class vtkTextProperty;
38 
39 class VTKRENDERINGANNOTATION_EXPORT vtkCornerAnnotation : public vtkActor2D
40 {
41 public:
43  void PrintSelf(ostream& os, vtkIndent indent) override;
44 
49  static vtkCornerAnnotation* New();
50 
52 
55  int RenderOpaqueGeometry(vtkViewport* viewport) override;
56  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
57  int RenderOverlay(vtkViewport* viewport) override;
59 
64 
66 
71  vtkSetMacro(MaximumLineHeight, double);
72  vtkGetMacro(MaximumLineHeight, double);
74 
76 
80  vtkSetMacro(MinimumFontSize, int);
81  vtkGetMacro(MinimumFontSize, int);
82  vtkSetMacro(MaximumFontSize, int);
83  vtkGetMacro(MaximumFontSize, int);
85 
87 
96  vtkSetMacro(LinearFontScaleFactor, double);
97  vtkGetMacro(LinearFontScaleFactor, double);
98  vtkSetMacro(NonlinearFontScaleFactor, double);
99  vtkGetMacro(NonlinearFontScaleFactor, double);
101 
107  void ReleaseGraphicsResources(vtkWindow*) override;
108 
110 
115  {
116  LowerLeft = 0,
123  UpperEdge
124  };
125  static const int NumTextPositions = 8;
127 
129 
133  void SetText(int i, const char* text);
134  const char* GetText(int i);
135  void ClearAllTexts();
136  void CopyAllTextsFrom(vtkCornerAnnotation* ca);
138 
140 
143  void SetImageActor(vtkImageActor*);
144  vtkGetObjectMacro(ImageActor, vtkImageActor);
146 
148 
152  void SetWindowLevel(vtkImageMapToWindowLevelColors*);
153  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
155 
157 
160  vtkSetMacro(LevelShift, double);
161  vtkGetMacro(LevelShift, double);
163 
165 
168  vtkSetMacro(LevelScale, double);
169  vtkGetMacro(LevelScale, double);
171 
173 
176  virtual void SetTextProperty(vtkTextProperty* p);
177  vtkGetObjectMacro(TextProperty, vtkTextProperty);
179 
181 
184  vtkBooleanMacro(ShowSliceAndImage, vtkTypeBool);
185  vtkSetMacro(ShowSliceAndImage, vtkTypeBool);
186  vtkGetMacro(ShowSliceAndImage, vtkTypeBool);
188 
189 protected:
191  ~vtkCornerAnnotation() override;
192 
194 
196 
198  double LevelShift;
199  double LevelScale;
202 
203  char* CornerText[NumTextPositions];
204 
205  int FontSize;
206  vtkActor2D* TextActor[NumTextPositions];
208  int LastSize[2];
209  vtkTextMapper* TextMapper[NumTextPositions];
210 
213 
216 
218 
222  virtual void TextReplace(vtkImageActor* ia, vtkImageMapToWindowLevelColors* wl);
223 
225 
228  virtual void SetTextActorsPosition(const int vsize[2]);
229  virtual void SetTextActorsJustification();
231 
232 private:
233  vtkCornerAnnotation(const vtkCornerAnnotation&) = delete;
234  void operator=(const vtkCornerAnnotation&) = delete;
235 };
236 
237 VTK_ABI_NAMESPACE_END
238 #endif
text annotation in four corners
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the scalar bar and annotation text to the screen.
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
Uses the left edge center.
vtkTextProperty * TextProperty
Uses the lower edge center.
abstract specification for Viewports
Definition: vtkViewport.h:44
Uses the upper left corner.
Map an image through a lookup table and/or a window/level.
a actor that draws 2D data
Definition: vtkActor2D.h:34
record modification and/or execution time
Definition: vtkTimeStamp.h:24
vtkImageMapToWindowLevelColors * WindowLevel
2D text annotation
Definition: vtkTextMapper.h:39
int vtkTypeBool
Definition: vtkABI.h:64
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
TextPosition
Position used to get or set the corner annotation text.
draw an image in a rendered 3D scene
Definition: vtkImageActor.h:37
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkImageActor * ImageActor
a simple class to control print indentation
Definition: vtkIndent.h:28
static vtkActor2D * New()
Creates an actor2D with the following defaults: position (0,0) (coordinate system is viewport); at la...
Uses the upper right corner.
represent text properties.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
Uses the right edge center.
Uses the lower right corner.
vtkImageActor * LastImageActor
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.