VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkScalarBarActor.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00058 #ifndef __vtkScalarBarActor_h 00059 #define __vtkScalarBarActor_h 00060 00061 #include "vtkActor2D.h" 00062 00063 class vtkPolyData; 00064 class vtkPolyDataMapper2D; 00065 class vtkScalarsToColors; 00066 class vtkTextMapper; 00067 class vtkTextProperty; 00068 class vtkTexture; 00069 00070 #define VTK_ORIENT_HORIZONTAL 0 00071 #define VTK_ORIENT_VERTICAL 1 00072 00073 class VTK_RENDERING_EXPORT vtkScalarBarActor : public vtkActor2D 00074 { 00075 public: 00076 vtkTypeRevisionMacro(vtkScalarBarActor,vtkActor2D); 00077 void PrintSelf(ostream& os, vtkIndent indent); 00078 00082 static vtkScalarBarActor *New(); 00083 00085 00086 int RenderOpaqueGeometry(vtkViewport* viewport); 00087 virtual int RenderTranslucentPolygonalGeometry(vtkViewport*) { return 0; }; 00088 int RenderOverlay(vtkViewport* viewport); 00090 00092 virtual int HasTranslucentPolygonalGeometry(); 00093 00097 virtual void ReleaseGraphicsResources(vtkWindow *); 00098 00100 00103 virtual void SetLookupTable(vtkScalarsToColors*); 00104 vtkGetObjectMacro(LookupTable,vtkScalarsToColors); 00106 00108 00113 vtkSetMacro( UseOpacity, int ); 00114 vtkGetMacro( UseOpacity, int ); 00115 vtkBooleanMacro( UseOpacity, int ); 00117 00119 00122 vtkSetClampMacro(MaximumNumberOfColors, int, 2, VTK_LARGE_INTEGER); 00123 vtkGetMacro(MaximumNumberOfColors, int); 00125 00127 00128 vtkSetClampMacro(NumberOfLabels, int, 0, 64); 00129 vtkGetMacro(NumberOfLabels, int); 00131 00133 00134 vtkSetClampMacro(Orientation,int,VTK_ORIENT_HORIZONTAL, VTK_ORIENT_VERTICAL); 00135 vtkGetMacro(Orientation, int); 00136 void SetOrientationToHorizontal() 00137 {this->SetOrientation(VTK_ORIENT_HORIZONTAL);}; 00138 void SetOrientationToVertical() {this->SetOrientation(VTK_ORIENT_VERTICAL);}; 00140 00142 00143 virtual void SetTitleTextProperty(vtkTextProperty *p); 00144 vtkGetObjectMacro(TitleTextProperty,vtkTextProperty); 00146 00148 00149 virtual void SetLabelTextProperty(vtkTextProperty *p); 00150 vtkGetObjectMacro(LabelTextProperty,vtkTextProperty); 00152 00154 00155 vtkSetStringMacro(LabelFormat); 00156 vtkGetStringMacro(LabelFormat); 00158 00160 00161 vtkSetStringMacro(Title); 00162 vtkGetStringMacro(Title); 00164 00167 void ShallowCopy(vtkProp *prop); 00168 00170 00171 vtkSetMacro( TextureGridWidth, double ); 00172 vtkGetMacro( TextureGridWidth, double ); 00174 00176 00177 vtkGetObjectMacro( TextureActor, vtkActor2D ); 00179 00180 //BTX 00181 enum { PrecedeScalarBar = 0, SucceedScalarBar }; 00182 //ETX 00183 00185 00189 vtkSetClampMacro( TextPosition, int, PrecedeScalarBar, SucceedScalarBar); 00190 vtkGetMacro( TextPosition, int ); 00191 virtual void SetTextPositionToPrecedeScalarBar() 00192 { this->SetTextPosition( vtkScalarBarActor::PrecedeScalarBar ); } 00193 virtual void SetTextPositionToSucceedScalarBar() 00194 { this->SetTextPosition( vtkScalarBarActor::SucceedScalarBar ); } 00196 00197 protected: 00198 vtkScalarBarActor(); 00199 ~vtkScalarBarActor(); 00200 00201 vtkScalarsToColors *LookupTable; 00202 vtkTextProperty *TitleTextProperty; 00203 vtkTextProperty *LabelTextProperty; 00204 00205 int MaximumNumberOfColors; 00206 int NumberOfLabels; 00207 int NumberOfLabelsBuilt; 00208 int Orientation; 00209 char *Title; 00210 char *LabelFormat; 00211 int UseOpacity; // off by default 00212 double TextureGridWidth; 00213 int TextPosition; 00214 00215 vtkTextMapper **TextMappers; 00216 vtkActor2D **TextActors; 00217 virtual void AllocateAndSizeLabels(int *labelSize, int *size, 00218 vtkViewport *viewport, double *range); 00219 00220 vtkTextMapper *TitleMapper; 00221 vtkActor2D *TitleActor; 00222 virtual void SizeTitle(int *titleSize, int *size, vtkViewport *viewport); 00223 00224 vtkPolyData *ScalarBar; 00225 vtkPolyDataMapper2D *ScalarBarMapper; 00226 vtkActor2D *ScalarBarActor; 00227 00228 vtkPolyData *TexturePolyData; 00229 vtkTexture *Texture; 00230 vtkActor2D *TextureActor; 00231 00232 vtkTimeStamp BuildTime; 00233 int LastSize[2]; 00234 int LastOrigin[2]; 00235 00236 00237 private: 00238 vtkScalarBarActor(const vtkScalarBarActor&); // Not implemented. 00239 void operator=(const vtkScalarBarActor&); // Not implemented. 00240 }; 00241 00242 00243 #endif 00244