00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034 #ifndef __vtkTextMapper_h
00035 #define __vtkTextMapper_h
00036
00037 #include "vtkMapper2D.h"
00038
00039 class vtkActor2D;
00040 class vtkTextProperty;
00041 class vtkViewport;
00042
00043 class VTK_RENDERING_EXPORT vtkTextMapper : public vtkMapper2D
00044 {
00045 public:
00046 vtkTypeRevisionMacro(vtkTextMapper,vtkMapper2D);
00047 void PrintSelf(ostream& os, vtkIndent indent);
00048
00050 static vtkTextMapper *New();
00051
00053
00055 virtual void GetSize(vtkViewport*, int size[2]) {size[0]=size[0];};
00056 virtual int GetWidth(vtkViewport*v);
00057 virtual int GetHeight(vtkViewport*v);
00059
00061
00063 virtual void SetInput(const char *inputString);
00064 vtkGetStringMacro(Input);
00066
00068
00069 virtual void SetTextProperty(vtkTextProperty *p);
00070 vtkGetObjectMacro(TextProperty,vtkTextProperty);
00072
00073 vtkGetMacro(NumberOfLines,int);
00074
00076 void ShallowCopy(vtkTextMapper *tm);
00077
00080 int GetNumberOfLines(const char *input);
00081
00083
00085 virtual int SetConstrainedFontSize(vtkViewport*,
00086 int targetWidth, int targetHeight);
00088
00090
00095 static int SetMultipleConstrainedFontSize(vtkViewport*,
00096 int targetWidth, int targetHeight,
00097 vtkTextMapper** mappers,
00098 int nbOfMappers,
00099 int* maxResultingSize);
00101
00103
00104 virtual int GetSystemFontSize(int size)
00105 { return size; };
00107
00108 protected:
00109 vtkTextMapper();
00110 ~vtkTextMapper();
00111
00112 char* Input;
00113 vtkTextProperty *TextProperty;
00114
00115 int LineSize;
00116 int NumberOfLines;
00117 int NumberOfLinesAllocated;
00118
00119 vtkTextMapper **TextLines;
00120
00121
00122
00123 char *NextLine(const char *input, int lineNum);
00124 void GetMultiLineSize(vtkViewport* viewport, int size[2]);
00125 void RenderOverlayMultipleLines(vtkViewport *viewport, vtkActor2D *actor);
00126
00127 private:
00128 vtkTextMapper(const vtkTextMapper&);
00129 void operator=(const vtkTextMapper&);
00130 };
00131
00132 #endif
00133