00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkTextActor_h
00041 #define __vtkTextActor_h
00042
00043 #include "vtkActor2D.h"
00044
00045 class vtkTextProperty;
00046 class vtkPolyDataMapper2D;
00047 class vtkImageData;
00048 class vtkFreeTypeUtilities;
00049 class vtkTransform;
00050 class vtkPolyData;
00051 class vtkPoints;
00052 class vtkTexture;
00053
00054 class VTK_RENDERING_EXPORT vtkTextActor : public vtkActor2D
00055 {
00056 public:
00057 vtkTypeMacro(vtkTextActor,vtkActor2D);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00062 static vtkTextActor *New();
00063
00066 void ShallowCopy(vtkProp *prop);
00067
00070 void SetMapper(vtkPolyDataMapper2D *mapper);
00071
00073
00076 void SetInput(const char *inputString);
00077 char *GetInput();
00079
00081
00083 vtkSetVector2Macro(MinimumSize,int);
00084 vtkGetVector2Macro(MinimumSize,int);
00086
00088
00091 vtkSetMacro(MaximumLineHeight,float);
00092 vtkGetMacro(MaximumLineHeight,float);
00094
00096
00103 vtkSetClampMacro(TextScaleMode, int,
00104 TEXT_SCALE_MODE_NONE, TEXT_SCALE_MODE_VIEWPORT);
00105 vtkGetMacro(TextScaleMode, int);
00106 void SetTextScaleModeToNone()
00107 { this->SetTextScaleMode(TEXT_SCALE_MODE_NONE); }
00108 void SetTextScaleModeToProp()
00109 { this->SetTextScaleMode(TEXT_SCALE_MODE_PROP); }
00110 void SetTextScaleModeToViewport()
00111 { this->SetTextScaleMode(TEXT_SCALE_MODE_VIEWPORT); }
00113
00114
00115 enum {
00116 TEXT_SCALE_MODE_NONE = 0,
00117 TEXT_SCALE_MODE_PROP,
00118 TEXT_SCALE_MODE_VIEWPORT
00119 };
00120
00121
00123
00125 VTK_LEGACY(void SetScaledText(int));
00126 VTK_LEGACY(int GetScaledText());
00127 VTK_LEGACY(void ScaledTextOn());
00128 VTK_LEGACY(void ScaledTextOff());
00130
00132
00135 vtkSetMacro(UseBorderAlign,int);
00136 vtkGetMacro(UseBorderAlign,int);
00137 vtkBooleanMacro(UseBorderAlign,int);
00139
00141
00149 void SetAlignmentPoint(int point);
00150 int GetAlignmentPoint();
00152
00154
00158 void SetOrientation(float orientation);
00159 vtkGetMacro(Orientation,float);
00161
00163
00164 virtual void SetTextProperty(vtkTextProperty *p);
00165 vtkGetObjectMacro(TextProperty,vtkTextProperty);
00167
00175 virtual void SetNonLinearFontScale(double exponent, int target);
00176
00179 void SpecifiedToDisplay(double *pos, vtkViewport *vport, int specified);
00180
00183 void DisplayToSpecified(double *pos, vtkViewport *vport, int specified);
00184
00187 virtual void ComputeScaledFont(vtkViewport *viewport);
00188
00190
00192 vtkGetObjectMacro(ScaledTextProperty, vtkTextProperty);
00194
00201 static float GetFontScale(vtkViewport *viewport);
00202
00203
00208 virtual void ReleaseGraphicsResources(vtkWindow *);
00209
00211
00214 virtual int RenderOpaqueGeometry(vtkViewport* viewport);
00215 virtual int RenderTranslucentPolygonalGeometry(vtkViewport* ) {return 0;};
00216 virtual int RenderOverlay(vtkViewport* viewport);
00218
00220
00221 virtual int HasTranslucentPolygonalGeometry();
00222
00224
00225 protected:
00228 void SetMapper(vtkMapper2D *mapper);
00229
00230 vtkTextActor();
00231 ~vtkTextActor();
00232
00233 int MinimumSize[2];
00234 float MaximumLineHeight;
00235 double FontScaleExponent;
00236 int TextScaleMode;
00237 float Orientation;
00238 int UseBorderAlign;
00239
00240 vtkTextProperty *TextProperty;
00241 vtkImageData *ImageData;
00242
00243
00244 vtkPolyDataMapper2D *PDMapper;
00245 vtkFreeTypeUtilities *FreeTypeUtilities;
00246 vtkTimeStamp BuildTime;
00247 vtkTransform *Transform;
00248 int LastSize[2];
00249 int LastOrigin[2];
00250 char *Input;
00251 bool InputRendered;
00252 double FormerOrientation;
00253
00254 vtkTextProperty *ScaledTextProperty;
00255
00256
00257 vtkPolyData* Rectangle;
00258 vtkPoints* RectanglePoints;
00259 vtkTexture *Texture;
00260
00261 virtual void ComputeRectangle(vtkViewport *viewport);
00262
00263
00264
00265
00266
00267
00268 virtual void SetTexture(vtkTexture*);
00269 vtkGetObjectMacro(Texture,vtkTexture);
00270
00271 private:
00272 vtkTextActor(const vtkTextActor&);
00273 void operator=(const vtkTextActor&);
00274 };
00275
00276
00277 #endif
00278