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

# Hybrid/vtkCubeAxesActor2D.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkCubeAxesActor2D.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 =========================================================================*/
    00067 #ifndef __vtkCubeAxesActor2D_h
    00068 #define __vtkCubeAxesActor2D_h
    00069
    00070 #include "vtkActor2D.h"
    00071
    00072 #define VTK_FLY_OUTER_EDGES 0
    00073 #define VTK_FLY_CLOSEST_TRIAD 1
    00074
    00075 class vtkAxisActor2D;
    00076 class vtkCamera;
    00077 class vtkDataSet;
    00078 class vtkTextProperty;
    00079
    00080 class VTK_HYBRID_EXPORT vtkCubeAxesActor2D : public vtkActor2D
    00081 {
    00082 public:
    00083   vtkTypeRevisionMacro(vtkCubeAxesActor2D,vtkActor2D);
    00084   void PrintSelf(ostream& os, vtkIndent indent);
    00085
    00089   static vtkCubeAxesActor2D *New();
    00090
    00092
    00093   int RenderOverlay(vtkViewport*);
    00094   int RenderOpaqueGeometry(vtkViewport*);
    00095   int RenderTranslucentGeometry(vtkViewport *) {return 0;}
    00097
    00099
    00102   virtual void SetInput(vtkDataSet*);
    00103   vtkGetObjectMacro(Input, vtkDataSet);
    00105
    00107
    00109   virtual void SetProp(vtkProp*);
    00110   vtkGetObjectMacro(Prop, vtkProp);
    00112
    00114
    00118   vtkSetVector6Macro(Bounds,float);
    00119   float *GetBounds();
    00120   void GetBounds(float& xmin, float& xmax, float& ymin, float& ymax,
    00121                  float& zmin, float& zmax);
    00122   void GetBounds(float bounds[6]);
    00124
    00126
    00129   vtkSetVector6Macro(Ranges,float);
    00130   float *GetRanges();
    00131   void GetRanges(float& xmin, float& xmax, float& ymin, float& ymax,
    00132                  float& zmin, float& zmax);
    00133   void GetRanges(float ranges[6]);
    00135
    00137
    00139   vtkSetMacro(UseRanges,int);
    00140   vtkGetMacro(UseRanges,int);
    00141   vtkBooleanMacro(UseRanges,int);
    00143
    00145
    00147   virtual void SetCamera(vtkCamera*);
    00148   vtkGetObjectMacro(Camera,vtkCamera);
    00150
    00152
    00154   vtkSetClampMacro(FlyMode, int, VTK_FLY_OUTER_EDGES, VTK_FLY_CLOSEST_TRIAD);
    00155   vtkGetMacro(FlyMode, int);
    00156   void SetFlyModeToOuterEdges()
    00157     {this->SetFlyMode(VTK_FLY_OUTER_EDGES);};
    00158   void SetFlyModeToClosestTriad()
    00159     {this->SetFlyMode(VTK_FLY_CLOSEST_TRIAD);};
    00161
    00163
    00167   vtkSetMacro(Scaling,int);
    00168   vtkGetMacro(Scaling,int);
    00169   vtkBooleanMacro(Scaling,int);
    00171
    00173
    00176   vtkSetClampMacro(NumberOfLabels, int, 0, 50);
    00177   vtkGetMacro(NumberOfLabels, int);
    00179
    00181
    00183   vtkSetStringMacro(XLabel);
    00184   vtkGetStringMacro(XLabel);
    00185   vtkSetStringMacro(YLabel);
    00186   vtkGetStringMacro(YLabel);
    00187   vtkSetStringMacro(ZLabel);
    00188   vtkGetStringMacro(ZLabel);
    00190
    00192
    00194   vtkAxisActor2D *GetXAxisActor2D()
    00195     {return this->XAxis;}
    00196   vtkAxisActor2D *GetYAxisActor2D()
    00197     {return this->YAxis;}
    00198   vtkAxisActor2D *GetZAxisActor2D()
    00199     {return this->ZAxis;}
    00201
    00203
    00205   virtual void SetAxisTitleTextProperty(vtkTextProperty *p);
    00206   vtkGetObjectMacro(AxisTitleTextProperty,vtkTextProperty);
    00208
    00210
    00212   virtual void SetAxisLabelTextProperty(vtkTextProperty *p);
    00213   vtkGetObjectMacro(AxisLabelTextProperty,vtkTextProperty);
    00215
    00216 #ifndef VTK_REMOVE_LEGACY_CODE
    00217
    00218
    00223   virtual void SetFontFamily(int val);
    00224   virtual int GetFontFamily();
    00225   void SetFontFamilyToArial()   { this->SetFontFamily(VTK_ARIAL);  };
    00226   void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
    00227   void SetFontFamilyToTimes()   { this->SetFontFamily(VTK_TIMES);  };
    00229 #endif
    00230
    00231 #ifndef VTK_REMOVE_LEGACY_CODE
    00232
    00233
    00236   virtual void SetBold(int val);
    00237   virtual int GetBold();
    00238   vtkBooleanMacro(Bold, int);
    00240 #endif
    00241
    00242 #ifndef VTK_REMOVE_LEGACY_CODE
    00243
    00244
    00247   virtual void SetItalic(int val);
    00248   virtual int GetItalic();
    00249   vtkBooleanMacro(Italic, int);
    00251 #endif
    00252
    00253 #ifndef VTK_REMOVE_LEGACY_CODE
    00254
    00255
    00258   virtual void SetShadow(int val);
    00259   virtual int GetShadow();
    00260   vtkBooleanMacro(Shadow, int);
    00262 #endif
    00263
    00265
    00267   vtkSetStringMacro(LabelFormat);
    00268   vtkGetStringMacro(LabelFormat);
    00270
    00272
    00274   vtkSetClampMacro(FontFactor, float, 0.1, 2.0);
    00275   vtkGetMacro(FontFactor, float);
    00277
    00279
    00282   vtkSetClampMacro(Inertia, int, 1, VTK_LARGE_INTEGER);
    00283   vtkGetMacro(Inertia, float);
    00285
    00287
    00290   vtkSetMacro(CornerOffset, float);
    00291   vtkGetMacro(CornerOffset, float);
    00293
    00297   void ReleaseGraphicsResources(vtkWindow *);
    00298
    00300
    00301   vtkSetMacro(XAxisVisibility,int);
    00302   vtkGetMacro(XAxisVisibility,int);
    00303   vtkBooleanMacro(XAxisVisibility,int);
    00304   vtkSetMacro(YAxisVisibility,int);
    00305   vtkGetMacro(YAxisVisibility,int);
    00306   vtkBooleanMacro(YAxisVisibility,int);
    00307   vtkSetMacro(ZAxisVisibility,int);
    00308   vtkGetMacro(ZAxisVisibility,int);
    00309   vtkBooleanMacro(ZAxisVisibility,int);
    00311
    00313   void ShallowCopy(vtkCubeAxesActor2D *actor);
    00314
    00315 protected:
    00316   vtkCubeAxesActor2D();
    00317   ~vtkCubeAxesActor2D();
    00318
    00319   vtkDataSet *Input;    //Define bounds from input data, or
    00320   vtkProp    *Prop;     //Define bounds from actor/assembly, or
    00321   float      Bounds[6]; //Define bounds explicitly
    00322   float      Ranges[6]; //Define ranges explicitly
    00323   int        UseRanges; //Flag to use ranges or not
    00324
    00325   vtkCamera *Camera;
    00326   int FlyMode;
    00327   int Scaling;
    00328
    00329   vtkAxisActor2D *XAxis;
    00330   vtkAxisActor2D *YAxis;
    00331   vtkAxisActor2D *ZAxis;
    00332
    00333   vtkTextProperty *AxisTitleTextProperty;
    00334   vtkTextProperty *AxisLabelTextProperty;
    00335
    00336   vtkTimeStamp  BuildTime;
    00337
    00338   int   NumberOfLabels;
    00339   char *XLabel;
    00340   char *YLabel;
    00341   char *ZLabel;
    00342   char *Labels[3];
    00343
    00344   int XAxisVisibility;
    00345   int YAxisVisibility;
    00346   int ZAxisVisibility;
    00347
    00348   char  *LabelFormat;
    00349   float FontFactor;
    00350   float CornerOffset;
    00351   int   Inertia;
    00352   int   RenderCount;
    00353   int   InertiaAxes[8];
    00354
    00355   int RenderSomething;
    00356
    00357   // various helper methods
    00358   void TransformBounds(vtkViewport *viewport, float bounds[6],
    00359                        float pts[8][3]);
    00360   int ClipBounds(vtkViewport *viewport, float pts[8][3], float bounds[6]);
    00361   float EvaluatePoint(float planes[24], float x[3]);
    00362   float EvaluateBounds(float planes[24], float bounds[6]);
    00363   void AdjustAxes(float pts[8][3], float bounds[6],
    00364                   int idx, int xIdx, int yIdx, int zIdx, int zIdx2,
    00365                   int xAxes, int yAxes, int zAxes,
    00366                   float xCoords[4], float yCoords[4], float zCoords[4],
    00367                   float xRange[2], float yRange[2], float zRange[2]);
    00368
    00369 private:
    00370   // hide the superclass' ShallowCopy() from the user and the compiler.
    00371   void ShallowCopy(vtkProp *prop) { this->vtkProp::ShallowCopy( prop ); };
    00372 private:
    00373   vtkCubeAxesActor2D(const vtkCubeAxesActor2D&);  // Not implemented.
    00374   void operator=(const vtkCubeAxesActor2D&);  // Not implemented.
    00375 };
    00376
    00377
    00378 #endif