Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Rendering/vtkTextProperty.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkTextProperty.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 =========================================================================*/
00033 #ifndef __vtkTextProperty_h
00034 #define __vtkTextProperty_h
00035 
00036 #include "vtkObject.h"
00037 
00038 class VTK_RENDERING_EXPORT vtkTextProperty : public vtkObject
00039 {
00040 public:
00041   vtkTypeRevisionMacro(vtkTextProperty,vtkObject);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00046   static vtkTextProperty *New();
00047 
00049 
00050   vtkSetVector3Macro(Color,double);
00051   vtkGetVectorMacro(Color,double,3);
00053 
00055 
00057   vtkSetMacro(Opacity,double);
00058   vtkGetMacro(Opacity,double);
00060 
00062 
00064   vtkSetClampMacro(FontFamily,int,VTK_ARIAL,VTK_TIMES);
00065   vtkGetMacro(FontFamily, int);
00066   void SetFontFamilyToArial()   { this->SetFontFamily(VTK_ARIAL);  };
00067   void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
00068   void SetFontFamilyToTimes()   { this->SetFontFamily(VTK_TIMES);  };
00069   char *GetFontFamilyAsString();
00071 
00073 
00074   vtkSetClampMacro(FontSize,int,0,VTK_LARGE_INTEGER);
00075   vtkGetMacro(FontSize, int);
00077 
00079 
00080   vtkSetMacro(Bold, int);
00081   vtkGetMacro(Bold, int);
00082   vtkBooleanMacro(Bold, int);
00084 
00086 
00087   vtkSetMacro(Italic, int);
00088   vtkGetMacro(Italic, int);
00089   vtkBooleanMacro(Italic, int);
00091 
00093 
00094   vtkSetMacro(Shadow, int);
00095   vtkGetMacro(Shadow, int);
00096   vtkBooleanMacro(Shadow, int);
00098   
00100 
00101   vtkSetMacro(AntiAliasing, int);
00102   vtkGetMacro(AntiAliasing, int);
00103   vtkBooleanMacro(AntiAliasing, int);
00105 
00107 
00111   static int GetGlobalAntiAliasing();
00112   static void SetGlobalAntiAliasing(int val);
00113   static void SetGlobalAntiAliasingToSome() 
00114     { vtkTextProperty::SetGlobalAntiAliasing(VTK_TEXT_GLOBAL_ANTIALIASING_SOME); };
00115   static void SetGlobalAntiAliasingToNone() 
00116     { vtkTextProperty::SetGlobalAntiAliasing(VTK_TEXT_GLOBAL_ANTIALIASING_NONE); };
00117   static void SetGlobalAntiAliasingToAll()  
00118     { vtkTextProperty::SetGlobalAntiAliasing(VTK_TEXT_GLOBAL_ANTIALIASING_ALL); };
00120     
00122 
00124   vtkSetClampMacro(Justification,int,VTK_TEXT_LEFT,VTK_TEXT_RIGHT);
00125   vtkGetMacro(Justification,int);
00126   void SetJustificationToLeft()     
00127     { this->SetJustification(VTK_TEXT_LEFT);};
00128   void SetJustificationToCentered() 
00129     { this->SetJustification(VTK_TEXT_CENTERED);};
00130   void SetJustificationToRight()    
00131     { this->SetJustification(VTK_TEXT_RIGHT);};
00132   char *GetJustificationAsString();
00134     
00136 
00138   vtkSetClampMacro(VerticalJustification,int,VTK_TEXT_BOTTOM,VTK_TEXT_TOP);
00139   vtkGetMacro(VerticalJustification,int);
00140   void SetVerticalJustificationToBottom() 
00141     {this->SetVerticalJustification(VTK_TEXT_BOTTOM);};
00142   void SetVerticalJustificationToCentered() 
00143     {this->SetVerticalJustification(VTK_TEXT_CENTERED);};
00144   void SetVerticalJustificationToTop() 
00145     {this->SetVerticalJustification(VTK_TEXT_TOP);};
00146   char *GetVerticalJustificationAsString();
00148     
00150 
00154   vtkSetMacro(LineOffset, double);
00155   vtkGetMacro(LineOffset, double);
00156   vtkSetMacro(LineSpacing, double);
00157   vtkGetMacro(LineSpacing, double);
00159   
00161   void ShallowCopy(vtkTextProperty *tprop);
00162   
00164 
00166   void SetFaceFileName(const char *);
00167   vtkGetStringMacro(FaceFileName);
00169 
00170 protected:
00171   vtkTextProperty();
00172   ~vtkTextProperty();
00173 
00174   double Color[3];
00175   double Opacity;
00176   int   FontFamily;
00177   int   FontSize;
00178   int   Bold;
00179   int   Italic;
00180   int   Shadow;
00181   int   AntiAliasing;
00182   int   Justification;
00183   int   VerticalJustification;
00184   double LineOffset;
00185   double LineSpacing;
00186   char  *FaceFileName;
00187   
00188 private:
00189   vtkTextProperty(const vtkTextProperty&);  // Not implemented.
00190   void operator=(const vtkTextProperty&);  // Not implemented.
00191 };
00192 
00193 inline char *vtkTextProperty::GetFontFamilyAsString(void)
00194 {
00195   if (this->FontFamily == VTK_ARIAL)
00196     {
00197     return (char *)"Arial";
00198     }
00199   else if (this->FontFamily == VTK_COURIER) 
00200     {
00201     return (char *)"Courier";
00202     }
00203   else if (this->FontFamily == VTK_TIMES) 
00204     {
00205     return (char *)"Times";
00206     }
00207   return (char *)"Unknown";
00208 }
00209 
00210 inline char *vtkTextProperty::GetJustificationAsString(void)
00211 {
00212   if (this->Justification == VTK_TEXT_LEFT)
00213     {
00214     return (char *)"Left";
00215     }
00216   else if (this->Justification == VTK_TEXT_CENTERED) 
00217     {
00218     return (char *)"Centered";
00219     }
00220   else if (this->Justification == VTK_TEXT_RIGHT) 
00221     {
00222     return (char *)"Right";
00223     }
00224   return (char *)"Unknown";
00225 }
00226 
00227 inline char *vtkTextProperty::GetVerticalJustificationAsString(void)
00228 {
00229   if (this->VerticalJustification == VTK_TEXT_BOTTOM)
00230     {
00231     return (char *)"Bottom";
00232     }
00233   else if (this->VerticalJustification == VTK_TEXT_CENTERED) 
00234     {
00235     return (char *)"Centered";
00236     }
00237   else if (this->VerticalJustification == VTK_TEXT_TOP) 
00238     {
00239     return (char *)"Top";
00240     }
00241   return (char *)"Unknown";
00242 }
00243 
00244 #endif