00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00029 #ifndef __vtkTextProperty_h
00030 #define __vtkTextProperty_h
00031
00032 #include "vtkObject.h"
00033
00034 class VTK_RENDERING_EXPORT vtkTextProperty : public vtkObject
00035 {
00036 public:
00037 vtkTypeRevisionMacro(vtkTextProperty,vtkObject);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00042 static vtkTextProperty *New();
00043
00045
00046 vtkSetVector3Macro(Color,double);
00047 vtkGetVector3Macro(Color,double);
00049
00051
00053 vtkSetMacro(Opacity,double);
00054 vtkGetMacro(Opacity,double);
00056
00058
00060 vtkSetClampMacro(FontFamily,int,VTK_ARIAL,VTK_TIMES);
00061 vtkGetMacro(FontFamily, int);
00062 void SetFontFamilyToArial() { this->SetFontFamily(VTK_ARIAL); };
00063 void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
00064 void SetFontFamilyToTimes() { this->SetFontFamily(VTK_TIMES); };
00065 static int GetFontFamilyFromString( const char *f );
00066 const char *GetFontFamilyAsString();
00067 static const char *GetFontFamilyAsString( int f );
00069
00071
00072 vtkSetClampMacro(FontSize,int,0,VTK_LARGE_INTEGER);
00073 vtkGetMacro(FontSize, int);
00075
00077
00078 vtkSetMacro(Bold, int);
00079 vtkGetMacro(Bold, int);
00080 vtkBooleanMacro(Bold, int);
00082
00084
00085 vtkSetMacro(Italic, int);
00086 vtkGetMacro(Italic, int);
00087 vtkBooleanMacro(Italic, int);
00089
00091
00092 vtkSetMacro(Shadow, int);
00093 vtkGetMacro(Shadow, int);
00094 vtkBooleanMacro(Shadow, int);
00096
00098
00100 vtkSetVector2Macro(ShadowOffset,int);
00101 vtkGetVectorMacro(ShadowOffset,int,2);
00103
00105 void GetShadowColor(double color[3]);
00106
00108
00110 vtkSetClampMacro(Justification,int,VTK_TEXT_LEFT,VTK_TEXT_RIGHT);
00111 vtkGetMacro(Justification,int);
00112 void SetJustificationToLeft()
00113 { this->SetJustification(VTK_TEXT_LEFT);};
00114 void SetJustificationToCentered()
00115 { this->SetJustification(VTK_TEXT_CENTERED);};
00116 void SetJustificationToRight()
00117 { this->SetJustification(VTK_TEXT_RIGHT);};
00118 const char *GetJustificationAsString();
00120
00122
00124 vtkSetClampMacro(VerticalJustification,int,VTK_TEXT_BOTTOM,VTK_TEXT_TOP);
00125 vtkGetMacro(VerticalJustification,int);
00126 void SetVerticalJustificationToBottom()
00127 {this->SetVerticalJustification(VTK_TEXT_BOTTOM);};
00128 void SetVerticalJustificationToCentered()
00129 {this->SetVerticalJustification(VTK_TEXT_CENTERED);};
00130 void SetVerticalJustificationToTop()
00131 {this->SetVerticalJustification(VTK_TEXT_TOP);};
00132 const char *GetVerticalJustificationAsString();
00134
00136
00137 vtkSetMacro(Orientation,double);
00138 vtkGetMacro(Orientation,double);
00140
00142
00144 vtkSetMacro(LineSpacing, double);
00145 vtkGetMacro(LineSpacing, double);
00147
00149
00150 vtkSetMacro(LineOffset, double);
00151 vtkGetMacro(LineOffset, double);
00153
00155 void ShallowCopy(vtkTextProperty *tprop);
00156
00157 protected:
00158 vtkTextProperty();
00159 ~vtkTextProperty() {};
00160
00161 double Color[3];
00162 double Opacity;
00163 int FontFamily;
00164 int FontSize;
00165 int Bold;
00166 int Italic;
00167 int Shadow;
00168 int ShadowOffset[2];
00169 int Justification;
00170 int VerticalJustification;
00171 double Orientation;
00172 double LineOffset;
00173 double LineSpacing;
00174
00175 private:
00176 vtkTextProperty(const vtkTextProperty&);
00177 void operator=(const vtkTextProperty&);
00178 };
00179
00180 inline const char *vtkTextProperty::GetFontFamilyAsString( int f )
00181 {
00182 if ( f == VTK_ARIAL )
00183 {
00184 return "Arial";
00185 }
00186 else if ( f == VTK_COURIER )
00187 {
00188 return "Courier";
00189 }
00190 else if ( f == VTK_TIMES )
00191 {
00192 return "Times";
00193 }
00194 return "Unknown";
00195 }
00196
00197 inline int vtkTextProperty::GetFontFamilyFromString( const char *f )
00198 {
00199 if ( strcmp( f, GetFontFamilyAsString( VTK_ARIAL ) ) == 0 )
00200 {
00201 return VTK_ARIAL;
00202 }
00203 else if ( strcmp( f, GetFontFamilyAsString( VTK_COURIER ) ) == 0 )
00204 {
00205 return VTK_COURIER;
00206 }
00207 else if ( strcmp( f, GetFontFamilyAsString( VTK_TIMES ) ) == 0 )
00208 {
00209 return VTK_TIMES;
00210 }
00211 return VTK_UNKNOWN_FONT;
00212 }
00213
00214 inline const char *vtkTextProperty::GetFontFamilyAsString(void)
00215 {
00216 return vtkTextProperty::GetFontFamilyAsString( this->GetFontFamily() );
00217 }
00218
00219 inline const char *vtkTextProperty::GetJustificationAsString(void)
00220 {
00221 if (this->Justification == VTK_TEXT_LEFT)
00222 {
00223 return "Left";
00224 }
00225 else if (this->Justification == VTK_TEXT_CENTERED)
00226 {
00227 return "Centered";
00228 }
00229 else if (this->Justification == VTK_TEXT_RIGHT)
00230 {
00231 return "Right";
00232 }
00233 return "Unknown";
00234 }
00235
00236 inline const char *vtkTextProperty::GetVerticalJustificationAsString(void)
00237 {
00238 if (this->VerticalJustification == VTK_TEXT_BOTTOM)
00239 {
00240 return "Bottom";
00241 }
00242 else if (this->VerticalJustification == VTK_TEXT_CENTERED)
00243 {
00244 return "Centered";
00245 }
00246 else if (this->VerticalJustification == VTK_TEXT_TOP)
00247 {
00248 return "Top";
00249 }
00250 return "Unknown";
00251 }
00252
00253 #endif