VTK
dox/Rendering/vtkScalarBarActor.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkScalarBarActor.h
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   vtkTypeMacro(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 
00198 
00203   vtkSetMacro( MaximumWidthInPixels, int );
00204   vtkGetMacro( MaximumWidthInPixels, int );
00205   vtkSetMacro( MaximumHeightInPixels, int );
00206   vtkGetMacro( MaximumHeightInPixels, int );
00208 
00209 protected:
00210   vtkScalarBarActor();
00211   ~vtkScalarBarActor();
00212 
00213   vtkScalarsToColors *LookupTable;
00214   vtkTextProperty *TitleTextProperty;
00215   vtkTextProperty *LabelTextProperty;
00216 
00217   int   MaximumNumberOfColors;
00218   int   NumberOfLabels;
00219   int   NumberOfLabelsBuilt;
00220   int   Orientation;
00221   char  *Title;
00222   char  *LabelFormat;
00223   int   UseOpacity; // off by default
00224   double TextureGridWidth;
00225   int TextPosition;
00226 
00227   vtkTextMapper **TextMappers;
00228   vtkActor2D    **TextActors;
00229   virtual void AllocateAndSizeLabels(int *labelSize, int *size,
00230                                      vtkViewport *viewport, double *range);
00231 
00232   vtkTextMapper *TitleMapper;
00233   vtkActor2D    *TitleActor;
00234   virtual void SizeTitle(int *titleSize, int *size, vtkViewport *viewport);
00235 
00236   vtkPolyData         *ScalarBar;
00237   vtkPolyDataMapper2D *ScalarBarMapper;
00238   vtkActor2D          *ScalarBarActor;
00239 
00240   vtkPolyData         *TexturePolyData;
00241   vtkTexture          *Texture;
00242   vtkActor2D          *TextureActor;
00243 
00244   vtkTimeStamp  BuildTime;
00245   int LastSize[2];
00246   int LastOrigin[2];
00247 
00248   int MaximumWidthInPixels;
00249   int MaximumHeightInPixels;
00250 
00251 private:
00252   vtkScalarBarActor(const vtkScalarBarActor&);  // Not implemented.
00253   void operator=(const vtkScalarBarActor&);  // Not implemented.
00254 };
00255 
00256 
00257 #endif
00258