VTK
vtkScalarBarActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkScalarBarActor.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 =========================================================================*/
56 #ifndef vtkScalarBarActor_h
57 #define vtkScalarBarActor_h
58 
59 #include "vtkRenderingAnnotationModule.h" // For export macro
60 #include "vtkActor2D.h"
61 
62 class vtkColor3ub;
63 class vtkPolyData;
65 class vtkProperty2D;
66 class vtkScalarsToColors;
68 class vtkTextActor;
69 class vtkTextMapper;
70 class vtkTextProperty;
71 class vtkTexture;
72 class vtkTexturedActor2D;
73 
74 #define VTK_ORIENT_HORIZONTAL 0
75 #define VTK_ORIENT_VERTICAL 1
76 
77 class VTKRENDERINGANNOTATION_EXPORT vtkScalarBarActor : public vtkActor2D
78 {
79 public:
80  vtkTypeMacro(vtkScalarBarActor, vtkActor2D);
81  void PrintSelf(ostream& os, vtkIndent indent) override;
82 
88  static vtkScalarBarActor* New();
89 
91 
94  int RenderOpaqueGeometry(vtkViewport* viewport) override;
95  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; };
96  int RenderOverlay(vtkViewport* viewport) override;
98 
102  int HasTranslucentPolygonalGeometry() override;
103 
109  void ReleaseGraphicsResources(vtkWindow*) override;
110 
116  virtual void GetScalarBarRect(int rect[4], vtkViewport* viewport);
117 
119 
125  virtual void SetLookupTable(vtkScalarsToColors*);
126  vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
128 
130 
137  vtkSetMacro(UseOpacity, vtkTypeBool);
138  vtkGetMacro(UseOpacity, vtkTypeBool);
139  vtkBooleanMacro(UseOpacity, vtkTypeBool);
141 
143 
148  vtkSetClampMacro(MaximumNumberOfColors, int, 2, VTK_INT_MAX);
149  vtkGetMacro(MaximumNumberOfColors, int);
151 
153 
156  vtkSetClampMacro(NumberOfLabels, int, 0, 64);
157  vtkGetMacro(NumberOfLabels, int);
159 
161 
164  vtkSetClampMacro(Orientation, int, VTK_ORIENT_HORIZONTAL, VTK_ORIENT_VERTICAL);
165  vtkGetMacro(Orientation, int);
167  {this->SetOrientation(VTK_ORIENT_HORIZONTAL);}
168  void SetOrientationToVertical() {this->SetOrientation(VTK_ORIENT_VERTICAL);}
170 
172 
175  virtual void SetTitleTextProperty(vtkTextProperty* p);
176  vtkGetObjectMacro(TitleTextProperty, vtkTextProperty);
178 
180 
183  virtual void SetLabelTextProperty(vtkTextProperty* p);
184  vtkGetObjectMacro(LabelTextProperty, vtkTextProperty);
186 
188 
191  virtual void SetAnnotationTextProperty(vtkTextProperty* p);
192  vtkGetObjectMacro(AnnotationTextProperty, vtkTextProperty);
194 
196 
200  vtkSetStringMacro(LabelFormat);
201  vtkGetStringMacro(LabelFormat);
203 
205 
208  vtkSetStringMacro(Title);
209  vtkGetStringMacro(Title);
211 
213 
216  vtkSetStringMacro(ComponentTitle);
217  vtkGetStringMacro(ComponentTitle);
219 
223  void ShallowCopy(vtkProp* prop) override;
224 
226 
229  vtkSetMacro(TextureGridWidth, double);
230  vtkGetMacro(TextureGridWidth, double);
232 
234 
237  vtkGetObjectMacro(TextureActor, vtkTexturedActor2D);
239 
240  enum { PrecedeScalarBar = 0, SucceedScalarBar };
241 
243 
251  vtkSetClampMacro(TextPosition, int, PrecedeScalarBar, SucceedScalarBar);
252  vtkGetMacro(TextPosition, int);
254  { this->SetTextPosition(vtkScalarBarActor::PrecedeScalarBar); }
256  { this->SetTextPosition(vtkScalarBarActor::SucceedScalarBar); }
258 
260 
267  vtkSetMacro(MaximumWidthInPixels, int);
268  vtkGetMacro(MaximumWidthInPixels, int);
269  vtkSetMacro(MaximumHeightInPixels, int);
270  vtkGetMacro(MaximumHeightInPixels, int);
272 
274 
279  vtkSetMacro(AnnotationLeaderPadding, double);
280  vtkGetMacro(AnnotationLeaderPadding, double);
282 
284 
289  vtkSetMacro(DrawAnnotations, vtkTypeBool);
290  vtkGetMacro(DrawAnnotations, vtkTypeBool);
291  vtkBooleanMacro(DrawAnnotations, vtkTypeBool);
293 
295 
300  vtkSetMacro(DrawNanAnnotation, vtkTypeBool);
301  vtkGetMacro(DrawNanAnnotation, vtkTypeBool);
302  vtkBooleanMacro(DrawNanAnnotation, vtkTypeBool);
304 
306 
311  vtkSetMacro(DrawBelowRangeSwatch, bool);
312  vtkGetMacro(DrawBelowRangeSwatch, bool);
313  vtkBooleanMacro(DrawBelowRangeSwatch, bool);
315 
317 
320  vtkSetStringMacro(BelowRangeAnnotation);
321  vtkGetStringMacro(BelowRangeAnnotation);
323 
325 
330  vtkSetMacro(DrawAboveRangeSwatch, bool);
331  vtkGetMacro(DrawAboveRangeSwatch, bool);
332  vtkBooleanMacro(DrawAboveRangeSwatch, bool);
334 
336 
339  vtkSetStringMacro(AboveRangeAnnotation);
340  vtkGetStringMacro(AboveRangeAnnotation);
342 
343 
351  vtkSetMacro(FixedAnnotationLeaderLineColor, vtkTypeBool);
352  vtkGetMacro(FixedAnnotationLeaderLineColor, vtkTypeBool);
353  vtkBooleanMacro(FixedAnnotationLeaderLineColor, vtkTypeBool);
355 
357 
360  vtkSetStringMacro(NanAnnotation);
361  vtkGetStringMacro(NanAnnotation);
363 
365 
373  vtkSetMacro(AnnotationTextScaling, vtkTypeBool);
374  vtkGetMacro(AnnotationTextScaling, vtkTypeBool);
375  vtkBooleanMacro(AnnotationTextScaling, vtkTypeBool);
377 
379 
383  vtkSetMacro(DrawBackground, vtkTypeBool);
384  vtkGetMacro(DrawBackground, vtkTypeBool);
385  vtkBooleanMacro(DrawBackground, vtkTypeBool);
387 
389 
393  vtkSetMacro(DrawFrame, vtkTypeBool);
394  vtkGetMacro(DrawFrame, vtkTypeBool);
395  vtkBooleanMacro(DrawFrame, vtkTypeBool);
397 
399 
403  vtkSetMacro(DrawColorBar, vtkTypeBool);
404  vtkGetMacro(DrawColorBar, vtkTypeBool);
405  vtkBooleanMacro(DrawColorBar, vtkTypeBool);
407 
409 
412  vtkSetMacro(DrawTickLabels, vtkTypeBool);
413  vtkGetMacro(DrawTickLabels, vtkTypeBool);
414  vtkBooleanMacro(DrawTickLabels, vtkTypeBool);
416 
418 
421  virtual void SetBackgroundProperty(vtkProperty2D* p);
422  vtkGetObjectMacro(BackgroundProperty, vtkProperty2D);
424 
426 
429  virtual void SetFrameProperty(vtkProperty2D* p);
430  vtkGetObjectMacro(FrameProperty, vtkProperty2D);
432 
434 
438  vtkGetMacro(TextPad, int);
439  vtkSetMacro(TextPad, int);
441 
443 
448  vtkGetMacro(VerticalTitleSeparation, int);
449  vtkSetMacro(VerticalTitleSeparation, int);
451 
453 
457  vtkGetMacro(BarRatio, double);
458  vtkSetClampMacro(BarRatio, double, 0., 1.);
460 
462 
468  vtkGetMacro(TitleRatio, double);
469  vtkSetClampMacro(TitleRatio, double, 0., 1.);
471 
473 
478  vtkSetMacro(UnconstrainedFontSize, bool);
479  vtkGetMacro(UnconstrainedFontSize, bool);
480  vtkBooleanMacro(UnconstrainedFontSize, bool);
482 
483 protected:
485  ~vtkScalarBarActor() override;
486 
511  virtual void RebuildLayout(vtkViewport* viewport);
512 
518  virtual int RebuildLayoutIfNeeded(vtkViewport* viewport);
519 
520 
524  virtual void FreeLayoutStorage();
525 
534  virtual void ComputeFrame();
535 
545  virtual void ComputeScalarBarThickness();
546 
550  virtual void ComputeSwatchPad();
551 
552  // This method must set this->P->NanSwatchSize and this->P->NanBox.
553  // It may depend on layout performed by ComputeScalarBarThickness.
554  virtual void LayoutNanSwatch();
555 
562  virtual void LayoutBelowRangeSwatch();
563 
570  virtual void LayoutAboveRangeSwatch();
571 
578  virtual void LayoutAboveRangeSwatchPosn();
579 
583  virtual void PrepareTitleText();
584 
595  virtual void LayoutTitle();
596 
601  virtual void LayoutForUnconstrainedFont();
602 
611  virtual void ComputeScalarBarLength();
612 
622  virtual void LayoutTicks();
623 
631  virtual void LayoutAnnotations();
632 
636  virtual void ConfigureAnnotations();
637 
641  virtual void ConfigureFrame();
642 
646  virtual void DrawBoxes();
647 
651  virtual void ConfigureScalarBar();
652 
656  virtual void ConfigureTitle();
657 
661  virtual void ConfigureTicks();
662 
669  virtual void ConfigureNanSwatch();
670 
675  virtual void ConfigureAboveBelowRangeSwatch(bool above);
676 
685  virtual void EditAnnotations() { }
686 
692  virtual void SizeTitle(double* titleSize, int* size, vtkViewport* viewport);
693 
697  int MapAnnotationLabels(
698  vtkScalarsToColors* lkup, double start, double delta, const double* range);
699 
703  int PlaceAnnotationsVertically(
704  double barX, double barY, double barWidth, double barHeight,
705  double delta, double pad);
709  int PlaceAnnotationsHorizontally(
710  double barX, double barY, double barWidth, double barHeight,
711  double delta, double pad);
712 
714 
719  vtkTypeBool DrawBackground; // off by default
720  vtkTypeBool DrawFrame; // off by default
721  vtkTypeBool DrawColorBar; // on by default
722  vtkTypeBool DrawTickLabels; // on by default
729  char* Title;
731  char* LabelFormat;
732  vtkTypeBool UseOpacity; // off by default
741  int TextPad;
743  double BarRatio;
744  double TitleRatio;
745  bool UnconstrainedFontSize; // off by default
746 
750 
752 
754  int LastSize[2];
755  int LastOrigin[2];
756 
758 
760 
765 
772 
776 
780 
781 
782 private:
783  vtkScalarBarActor(const vtkScalarBarActor&) = delete;
784  void operator=(const vtkScalarBarActor&) = delete;
785 };
786 
787 #endif
788 
vtkScalarBarActor::TexturePolyData
vtkPolyData * TexturePolyData
Polygon colored when UseOpacity is true.
Definition: vtkScalarBarActor.h:769
vtkActor2D::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
vtkScalarBarActor::FixedAnnotationLeaderLineColor
vtkTypeBool FixedAnnotationLeaderLineColor
Definition: vtkScalarBarActor.h:726
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:159
vtkPolyDataMapper2D
draw vtkPolyData onto the image plane
Definition: vtkPolyDataMapper2D.h:45
vtkScalarBarActor::TextPad
int TextPad
Definition: vtkScalarBarActor.h:741
vtkScalarBarActor::MaximumWidthInPixels
int MaximumWidthInPixels
Definition: vtkScalarBarActor.h:739
vtkScalarBarActor::TitleRatio
double TitleRatio
Definition: vtkScalarBarActor.h:744
vtkScalarBarActorInternal
Internal state for the scalar bar actor shared with subclasses.
Definition: vtkScalarBarActorInternal.h:53
vtkScalarBarActor::SetTextPositionToPrecedeScalarBar
virtual void SetTextPositionToPrecedeScalarBar()
Definition: vtkScalarBarActor.h:253
vtkTexturedActor2D
actor that draws 2D data with texture support
Definition: vtkTexturedActor2D.h:38
vtkScalarBarActor::LookupTable
vtkScalarsToColors * LookupTable
The object this actor illustrates.
Definition: vtkScalarBarActor.h:759
vtkScalarBarActor::BackgroundMapper
vtkPolyDataMapper2D * BackgroundMapper
Mapper for Background.
Definition: vtkScalarBarActor.h:774
vtkActor2D::ShallowCopy
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
VTK_ORIENT_HORIZONTAL
#define VTK_ORIENT_HORIZONTAL
Definition: vtkScalarBarActor.h:74
vtkScalarBarActor::ScalarBarMapper
vtkPolyDataMapper2D * ScalarBarMapper
Mapper for ScalarBar.
Definition: vtkScalarBarActor.h:767
vtkScalarBarActor::FrameActor
vtkActor2D * FrameActor
Actor for Frame.
Definition: vtkScalarBarActor.h:779
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.
vtkX3D::range
Definition: vtkX3D.h:238
vtkScalarBarActor::AboveRangeAnnotation
char * AboveRangeAnnotation
Definition: vtkScalarBarActor.h:737
vtkScalarBarActor::TextureGridWidth
double TextureGridWidth
Definition: vtkScalarBarActor.h:733
vtkScalarBarActor::NumberOfLabelsBuilt
int NumberOfLabelsBuilt
Definition: vtkScalarBarActor.h:717
vtkScalarBarActor::AnnotationTextScaling
vtkTypeBool AnnotationTextScaling
Definition: vtkScalarBarActor.h:725
vtkScalarBarActor::VerticalTitleSeparation
int VerticalTitleSeparation
Definition: vtkScalarBarActor.h:742
vtkScalarBarActor::BelowRangeAnnotation
char * BelowRangeAnnotation
Definition: vtkScalarBarActor.h:736
vtkScalarBarActor::ComponentTitle
char * ComponentTitle
Definition: vtkScalarBarActor.h:730
vtkScalarBarActor::MaximumHeightInPixels
int MaximumHeightInPixels
Definition: vtkScalarBarActor.h:740
vtkScalarBarActor::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Definition: vtkScalarBarActor.h:95
vtkScalarBarActor::Title
char * Title
Definition: vtkScalarBarActor.h:729
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkScalarBarActor::BackgroundActor
vtkActor2D * BackgroundActor
Actor for Background.
Definition: vtkScalarBarActor.h:775
vtkScalarBarActor::Texture
vtkTexture * Texture
Color data for TexturePolyData.
Definition: vtkScalarBarActor.h:770
vtkScalarBarActor::DrawAnnotations
vtkTypeBool DrawAnnotations
Definition: vtkScalarBarActor.h:723
vtkActor2D::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkTexture
handles properties associated with a texture map
Definition: vtkTexture.h:65
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:47
vtkScalarBarActor::LabelFormat
char * LabelFormat
Definition: vtkScalarBarActor.h:731
vtkScalarBarActor::NumberOfLabels
int NumberOfLabels
Definition: vtkScalarBarActor.h:716
vtkActor2D::RenderOverlay
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
vtkTextActor
An actor that displays text. Scaled or unscaled.
Definition: vtkTextActor.h:50
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkScalarBarActor::UseOpacity
vtkTypeBool UseOpacity
Definition: vtkScalarBarActor.h:732
vtkScalarBarActor::SucceedScalarBar
Definition: vtkScalarBarActor.h:240
vtkScalarBarActor::P
vtkScalarBarActorInternal * P
Containers shared with subclasses.
Definition: vtkScalarBarActor.h:757
vtkScalarBarActor::PrecedeScalarBar
Definition: vtkScalarBarActor.h:240
vtkActor2D::HasTranslucentPolygonalGeometry
int HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkScalarBarActor::ScalarBarActor
vtkActor2D * ScalarBarActor
Actor for ScalarBar.
Definition: vtkScalarBarActor.h:768
vtkScalarBarActor::AnnotationLeaderPadding
double AnnotationLeaderPadding
Definition: vtkScalarBarActor.h:738
vtkX3D::size
Definition: vtkX3D.h:253
vtkScalarBarActor::LabelTextProperty
vtkTextProperty * LabelTextProperty
Font for tick labels.
Definition: vtkScalarBarActor.h:762
vtkScalarsToColors
Superclass for mapping scalar values to colors.
Definition: vtkScalarsToColors.h:60
vtkScalarBarActor::TextPosition
int TextPosition
Definition: vtkScalarBarActor.h:734
vtkScalarBarActor::Orientation
int Orientation
Definition: vtkScalarBarActor.h:718
vtkScalarBarActor::ScalarBar
vtkPolyData * ScalarBar
Polygon(s) colored by LookupTable.
Definition: vtkScalarBarActor.h:766
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkScalarBarActor::DrawBelowRangeSwatch
bool DrawBelowRangeSwatch
Definition: vtkScalarBarActor.h:747
vtkScalarBarActor::BackgroundProperty
vtkProperty2D * BackgroundProperty
Definition: vtkScalarBarActor.h:727
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:33
vtkScalarBarActor::DrawBackground
vtkTypeBool DrawBackground
Definition: vtkScalarBarActor.h:719
vtkScalarBarActor::Background
vtkPolyData * Background
Polygon used to fill the background.
Definition: vtkScalarBarActor.h:773
vtkScalarBarActor::DrawColorBar
vtkTypeBool DrawColorBar
Definition: vtkScalarBarActor.h:721
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:46
vtkScalarBarActor::BuildTime
vtkTimeStamp BuildTime
Internal state used for rendering.
Definition: vtkScalarBarActor.h:753
vtkProperty2D
represent surface properties of a 2D image
Definition: vtkProperty2D.h:37
vtkScalarBarActor::TitleTextProperty
vtkTextProperty * TitleTextProperty
Font for the legend title.
Definition: vtkScalarBarActor.h:761
vtkScalarBarActor::MaximumNumberOfColors
int MaximumNumberOfColors
User-changeable settings.
Definition: vtkScalarBarActor.h:715
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...
vtkScalarBarActor::TitleActor
vtkTextActor * TitleActor
The legend title text renderer.
Definition: vtkScalarBarActor.h:764
vtkScalarBarActor::FrameMapper
vtkPolyDataMapper2D * FrameMapper
Mapper for Frame.
Definition: vtkScalarBarActor.h:778
vtkScalarBarActor::NanAnnotation
char * NanAnnotation
Definition: vtkScalarBarActor.h:735
vtkScalarBarActor::SetTextPositionToSucceedScalarBar
virtual void SetTextPositionToSucceedScalarBar()
Definition: vtkScalarBarActor.h:255
vtkScalarBarActor::SetOrientationToVertical
void SetOrientationToVertical()
Definition: vtkScalarBarActor.h:168
vtkColor3ub
Some derived classes for the different colors commonly used.
Definition: vtkColor.h:194
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkScalarBarActor::UnconstrainedFontSize
bool UnconstrainedFontSize
Definition: vtkScalarBarActor.h:745
vtkScalarBarActor::BarRatio
double BarRatio
Definition: vtkScalarBarActor.h:743
vtkScalarBarActor::DrawFrame
vtkTypeBool DrawFrame
Definition: vtkScalarBarActor.h:720
VTK_ORIENT_VERTICAL
#define VTK_ORIENT_VERTICAL
Definition: vtkScalarBarActor.h:75
vtkScalarBarActor::AnnotationTextProperty
vtkTextProperty * AnnotationTextProperty
Font for annotation labels.
Definition: vtkScalarBarActor.h:763
vtkScalarBarActor::Frame
vtkPolyData * Frame
Polyline used to highlight frame.
Definition: vtkScalarBarActor.h:777
vtkScalarBarActor::DrawTickLabels
vtkTypeBool DrawTickLabels
Definition: vtkScalarBarActor.h:722
vtkScalarBarActor::DrawAboveRangeSwatch
bool DrawAboveRangeSwatch
Definition: vtkScalarBarActor.h:748
vtkScalarBarActor::DrawNanAnnotation
vtkTypeBool DrawNanAnnotation
Definition: vtkScalarBarActor.h:724
vtkScalarBarActor::SetOrientationToHorizontal
void SetOrientationToHorizontal()
Definition: vtkScalarBarActor.h:166
vtkScalarBarActor::FrameProperty
vtkProperty2D * FrameProperty
Definition: vtkScalarBarActor.h:728
vtkScalarBarActor
Create a scalar bar with labels.
Definition: vtkScalarBarActor.h:77
vtkScalarBarActor::TextureActor
vtkTexturedActor2D * TextureActor
Actor for TexturePolyData.
Definition: vtkScalarBarActor.h:771
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkScalarBarActor::EditAnnotations
virtual void EditAnnotations()
Subclasses may override this method to alter this->P->Labels, allowing the addition and removal of an...
Definition: vtkScalarBarActor.h:685