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

Hybrid/vtkCaptionActor2D.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCaptionActor2D.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 =========================================================================*/
00057 #ifndef __vtkCaptionActor2D_h
00058 #define __vtkCaptionActor2D_h
00059 
00060 #include "vtkActor2D.h"
00061 
00062 class vtkActor;
00063 class vtkAppendPolyData;
00064 class vtkGlyph2D;
00065 class vtkGlyph3D;
00066 class vtkPolyData;
00067 class vtkPolyDataMapper2D;
00068 class vtkPolyDataMapper;
00069 class vtkTextActor;
00070 class vtkTextMapper;
00071 class vtkTextProperty;
00072 
00073 class VTK_HYBRID_EXPORT vtkCaptionActor2D : public vtkActor2D
00074 {
00075 public:
00076   vtkTypeRevisionMacro(vtkCaptionActor2D,vtkActor2D);
00077   void PrintSelf(ostream& os, vtkIndent indent);
00078 
00079   static vtkCaptionActor2D *New();
00080 
00082 
00084   vtkSetStringMacro(Caption);
00085   vtkGetStringMacro(Caption);
00087 
00089 
00092   vtkWorldCoordinateMacro(AttachmentPoint);
00094 
00096 
00097   vtkSetMacro(Border,int);
00098   vtkGetMacro(Border,int);
00099   vtkBooleanMacro(Border,int);
00101 
00103 
00105   vtkSetMacro(Leader,int);
00106   vtkGetMacro(Leader,int);
00107   vtkBooleanMacro(Leader,int);
00109 
00111 
00113   vtkSetMacro(ThreeDimensionalLeader,int);
00114   vtkGetMacro(ThreeDimensionalLeader,int);
00115   vtkBooleanMacro(ThreeDimensionalLeader,int);
00117 
00119 
00122   virtual void SetLeaderGlyph(vtkPolyData*);
00123   vtkGetObjectMacro(LeaderGlyph,vtkPolyData);
00125 
00127 
00132   vtkSetClampMacro(LeaderGlyphSize,double,0.0,0.1);
00133   vtkGetMacro(LeaderGlyphSize,double);
00135 
00137 
00140   vtkSetClampMacro(MaximumLeaderGlyphSize,int,1,1000);
00141   vtkGetMacro(MaximumLeaderGlyphSize,int);
00143 
00145 
00147   vtkSetClampMacro(Padding, int, 0, 50);
00148   vtkGetMacro(Padding, int);
00150 
00152 
00153   virtual void SetCaptionTextProperty(vtkTextProperty *p);
00154   vtkGetObjectMacro(CaptionTextProperty,vtkTextProperty);
00156     
00159   void ShallowCopy(vtkProp *prop);
00160 
00161 //BTX
00166   virtual void ReleaseGraphicsResources(vtkWindow *);
00167 
00169 
00172   int RenderOpaqueGeometry(vtkViewport* viewport);
00173   int RenderTranslucentGeometry(vtkViewport* ) {return 0;}
00174   int RenderOverlay(vtkViewport* viewport);
00176 //ETX
00177 
00178 protected:
00179   vtkCaptionActor2D();
00180   ~vtkCaptionActor2D();
00181 
00182   vtkCoordinate *AttachmentPointCoordinate;
00183 
00184   char  *Caption;
00185   int   Border;
00186   int   Leader;
00187   int   ThreeDimensionalLeader;
00188   double LeaderGlyphSize;
00189   int   MaximumLeaderGlyphSize;
00190 
00191   vtkPolyData *LeaderGlyph; //what to put on the end of the leader
00192   
00193   int   Padding;
00194 
00195 private:
00196   vtkTextActor        *CaptionActor;
00197   vtkTextProperty     *CaptionTextProperty;
00198 
00199   vtkPolyData         *BorderPolyData;
00200   vtkPolyDataMapper2D *BorderMapper;
00201   vtkActor2D          *BorderActor;
00202 
00203   vtkPolyData         *HeadPolyData;    // single attachment point for glyphing
00204   vtkGlyph3D          *HeadGlyph;       // for 3D leader
00205   vtkPolyData         *LeaderPolyData;  // line represents the leader
00206   vtkAppendPolyData   *AppendLeader;    // append head and leader
00207   
00208   // for 2D leader
00209   vtkCoordinate       *MapperCoordinate2D;
00210   vtkPolyDataMapper2D *LeaderMapper2D;
00211   vtkActor2D          *LeaderActor2D;
00212 
00213   // for 3D leader
00214   vtkPolyDataMapper   *LeaderMapper3D;
00215   vtkActor            *LeaderActor3D;
00216 
00217 private:
00218   vtkCaptionActor2D(const vtkCaptionActor2D&);  // Not implemented.
00219   void operator=(const vtkCaptionActor2D&);  // Not implemented.
00220 };
00221 
00222 
00223 #endif
00224 
00225 
00226