VTK  9.7.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 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkTextMapper;
37 class vtkImageActor;
38 class vtkTextProperty;
39 
40 class VTKRENDERINGANNOTATION_EXPORT VTK_MARSHALAUTO vtkCornerAnnotation : public vtkActor2D
41 {
42 public:
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
50  static vtkCornerAnnotation* New();
51 
53 
56  int RenderOpaqueGeometry(vtkViewport* viewport) override;
57  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
58  int RenderOverlay(vtkViewport* viewport) override;
60 
65 
67 
72  vtkSetMacro(MaximumLineHeight, double);
73  vtkGetMacro(MaximumLineHeight, double);
75 
77 
81  vtkSetMacro(MinimumFontSize, int);
82  vtkGetMacro(MinimumFontSize, int);
83  vtkSetMacro(MaximumFontSize, int);
84  vtkGetMacro(MaximumFontSize, int);
86 
88 
97  vtkSetMacro(LinearFontScaleFactor, double);
98  vtkGetMacro(LinearFontScaleFactor, double);
99  vtkSetMacro(NonlinearFontScaleFactor, double);
100  vtkGetMacro(NonlinearFontScaleFactor, double);
102 
108  void ReleaseGraphicsResources(vtkWindow*) override;
109 
111 
116  {
117  LowerLeft = 0,
124  UpperEdge
125  };
126  static const int NumTextPositions = 8;
128 
130 
134  void SetText(int i, const char* text);
135  const char* GetText(int i);
136  void ClearAllTexts();
137  void CopyAllTextsFrom(vtkCornerAnnotation* ca);
138  std::vector<std::string> GetAllTexts() const;
139  void SetAllTexts(const std::vector<std::string>& values);
141 
143 
146  void SetImageActor(vtkImageActor*);
147  vtkGetObjectMacro(ImageActor, vtkImageActor);
149 
151 
155  void SetWindowLevel(vtkImageMapToWindowLevelColors*);
156  vtkGetObjectMacro(WindowLevel, vtkImageMapToWindowLevelColors);
158 
160 
163  vtkSetMacro(LevelShift, double);
164  vtkGetMacro(LevelShift, double);
166 
168 
171  vtkSetMacro(LevelScale, double);
172  vtkGetMacro(LevelScale, double);
174 
176 
179  virtual void SetTextProperty(vtkTextProperty* p);
180  vtkGetObjectMacro(TextProperty, vtkTextProperty);
182 
184 
187  vtkBooleanMacro(ShowSliceAndImage, vtkTypeBool);
188  vtkSetMacro(ShowSliceAndImage, vtkTypeBool);
189  vtkGetMacro(ShowSliceAndImage, vtkTypeBool);
191 
192 protected:
194  ~vtkCornerAnnotation() override;
195 
197 
199 
201  double LevelShift;
202  double LevelScale;
205 
206  char* CornerText[NumTextPositions];
207 
208  int FontSize;
209  vtkActor2D* TextActor[NumTextPositions];
211  int LastSize[2];
212  vtkTextMapper* TextMapper[NumTextPositions];
213 
216 
219 
221 
225  virtual void TextReplace(vtkImageActor* ia, vtkImageMapToWindowLevelColors* wl);
226 
228 
231  virtual void SetTextActorsPosition(const int vsize[2]);
232  virtual void SetTextActorsJustification();
234 
235 private:
236  vtkCornerAnnotation(const vtkCornerAnnotation&) = delete;
237  void operator=(const vtkCornerAnnotation&) = delete;
238 };
239 
240 VTK_ABI_NAMESPACE_END
241 #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:46
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:35
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:41
TextPosition
Position used to get or set the corner annotation text.
draw an image in a rendered 3D scene
Definition: vtkImageActor.h:38
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.
#define VTK_MARSHALAUTO
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.