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

Rendering/vtkTextMapper.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkTextMapper.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00050 #ifndef __vtkTextMapper_h
00051 #define __vtkTextMapper_h
00052 
00053 #include "vtkMapper2D.h"
00054 
00055 class vtkActor2D;
00056 class vtkTextProperty;
00057 class vtkViewport;
00058 
00059 class VTK_RENDERING_EXPORT vtkTextMapper : public vtkMapper2D
00060 {
00061 public:
00062   vtkTypeRevisionMacro(vtkTextMapper,vtkMapper2D);
00063   void PrintSelf(ostream& os, vtkIndent indent);
00064 
00066   static vtkTextMapper *New();
00067 
00069 
00071   virtual void GetSize(vtkViewport*, int size[2]) {size[0]=size[0];};
00072   virtual int GetWidth(vtkViewport*v);
00073   virtual int GetHeight(vtkViewport*v);
00075   
00077 
00079   virtual void SetInput(const char *inputString);
00080   vtkGetStringMacro(Input);
00082 
00084 
00085   virtual void SetTextProperty(vtkTextProperty *p);
00086   vtkGetObjectMacro(TextProperty,vtkTextProperty);
00088   
00089 #ifndef VTK_REMOVE_LEGACY_CODE
00090 
00091 
00095   virtual void SetFontFamily(int val);
00096   virtual int GetFontFamily();
00097   void SetFontFamilyToArial()   { this->SetFontFamily(VTK_ARIAL);  };
00098   void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
00099   void SetFontFamilyToTimes()   { this->SetFontFamily(VTK_TIMES);  };
00101 #endif
00102 
00103 #ifndef VTK_REMOVE_LEGACY_CODE
00104 
00105 
00108   virtual void SetFontSize(int size);
00109   virtual int GetFontSize();
00111 #endif
00112 
00113 #ifndef VTK_REMOVE_LEGACY_CODE
00114 
00115 
00118   virtual void SetBold(int val);
00119   virtual int GetBold();
00120   vtkBooleanMacro(Bold, int);
00122 #endif
00123 
00124 #ifndef VTK_REMOVE_LEGACY_CODE
00125 
00126 
00129   virtual void SetItalic(int val);
00130   virtual int GetItalic();
00131   vtkBooleanMacro(Italic, int);
00133 #endif
00134 
00135 #ifndef VTK_REMOVE_LEGACY_CODE
00136 
00137 
00140   virtual void SetShadow(int val);
00141   virtual int GetShadow();
00142   vtkBooleanMacro(Shadow, int);
00144 #endif
00145   
00146 #ifndef VTK_REMOVE_LEGACY_CODE
00147 
00148 
00152   virtual void SetJustification(int val);
00153   virtual int GetJustification();
00154   void SetJustificationToLeft()     
00155     { this->SetJustification(VTK_TEXT_LEFT);};
00156   void SetJustificationToCentered() 
00157     { this->SetJustification(VTK_TEXT_CENTERED);};
00158   void SetJustificationToRight()    
00159     { this->SetJustification(VTK_TEXT_RIGHT);};
00161 #endif
00162     
00163 #ifndef VTK_REMOVE_LEGACY_CODE
00164 
00165 
00169   virtual void SetVerticalJustification(int val);
00170   virtual int GetVerticalJustification();
00171   void SetVerticalJustificationToBottom() 
00172     {this->SetVerticalJustification(VTK_TEXT_BOTTOM);};
00173   void SetVerticalJustificationToCentered() 
00174     {this->SetVerticalJustification(VTK_TEXT_CENTERED);};
00175   void SetVerticalJustificationToTop() 
00176     {this->SetVerticalJustification(VTK_TEXT_TOP);};
00178 #endif
00179     
00180 #ifndef VTK_REMOVE_LEGACY_CODE
00181 
00182 
00188   virtual void SetLineOffset(float val);
00189   virtual float GetLineOffset();
00190   virtual void SetLineSpacing(float val);
00191   virtual float GetLineSpacing();
00193 #endif
00194 
00195   vtkGetMacro(NumberOfLines,int);
00196   
00198   void ShallowCopy(vtkTextMapper *tm);
00199   
00202   int  GetNumberOfLines(const char *input);
00203 
00205 
00207   virtual int SetConstrainedFontSize(vtkViewport*, 
00208                                      int targetWidth, int targetHeight);
00210 
00212 
00217   static int SetMultipleConstrainedFontSize(vtkViewport*, 
00218                                             int targetWidth, int targetHeight,
00219                                             vtkTextMapper** mappers, 
00220                                             int nbOfMappers, 
00221                                             int* maxResultingSize);
00223 
00225 
00226   virtual int GetSystemFontSize(int size) 
00227     { return size; };
00229 
00230 protected:
00231   vtkTextMapper();
00232   ~vtkTextMapper();
00233 
00234   char* Input;
00235   vtkTextProperty *TextProperty;
00236 
00237   int  LineSize;
00238   int  NumberOfLines;
00239   int  NumberOfLinesAllocated;
00240 
00241   vtkTextMapper **TextLines;
00242 
00243   // These functions are used to parse, process, and render multiple lines 
00244 
00245   char *NextLine(const char *input, int lineNum);
00246   void GetMultiLineSize(vtkViewport* viewport, int size[2]);
00247   void RenderOverlayMultipleLines(vtkViewport *viewport, vtkActor2D *actor);
00248   
00249 private:
00250   vtkTextMapper(const vtkTextMapper&);  // Not implemented.
00251   void operator=(const vtkTextMapper&);  // Not implemented.
00252 };
00253 
00254 #endif
00255