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

GUI/Client/vtkPVAxesActor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVAxesActor.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
00024 #ifndef __vtkPVAxesActor_h
00025 #define __vtkPVAxesActor_h
00026 
00027 #include "vtkProp3D.h"
00028 
00029 class vtkRenderer;
00030 class vtkPropCollection;
00031 class vtkMapper;
00032 class vtkProperty;
00033 class vtkActor;
00034 class vtkFollower;
00035 class vtkCylinderSource;
00036 class vtkLineSource;
00037 class vtkConeSource;
00038 class vtkSphereSource;
00039 class vtkPolyData;
00040 class vtkVectorText;
00041 
00042 class VTK_EXPORT vtkPVAxesActor : public vtkProp3D
00043 {
00044 public:
00045   static vtkPVAxesActor *New();
00046   vtkTypeRevisionMacro(vtkPVAxesActor,vtkProp3D);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00049 
00053   virtual void GetActors(vtkPropCollection *);
00054 
00056 
00057   virtual int RenderOpaqueGeometry(vtkViewport *viewport);
00058   virtual int RenderTranslucentGeometry(vtkViewport *viewport);
00060 
00062   void ShallowCopy(vtkProp *prop);
00063 
00067   void ReleaseGraphicsResources(vtkWindow *);
00068 
00070 
00073   void GetBounds(double bounds[6]);
00074   double *GetBounds();
00076 
00078   unsigned long int GetMTime();
00079   
00084   virtual unsigned long GetRedrawMTime();
00085 
00087 
00088   void SetTotalLength( float v[3] ) 
00089     { this->SetTotalLength( v[0], v[1], v[2] ); }
00090   void SetTotalLength( float x, float y, float z );
00091   vtkGetVectorMacro( TotalLength, float, 3 );
00093   
00095 
00096   void SetNormalizedShaftLength( float v[3] ) 
00097     { this->SetNormalizedShaftLength( v[0], v[1], v[2] ); }
00098   void SetNormalizedShaftLength( float x, float y, float z );
00099   vtkGetVectorMacro( NormalizedShaftLength, float, 3 );
00101   
00103 
00104   void SetNormalizedTipLength( float v[3] ) 
00105     { this->SetNormalizedTipLength( v[0], v[1], v[2] ); }
00106   void SetNormalizedTipLength( float x, float y, float z );
00107   vtkGetVectorMacro( NormalizedTipLength, float, 3 );
00109 
00111 
00112   vtkSetClampMacro(ConeResolution, int, 3, 128);
00113   vtkGetMacro(ConeResolution, int);
00114   vtkSetClampMacro(SphereResolution, int, 3, 128);
00115   vtkGetMacro(SphereResolution, int);
00116   vtkSetClampMacro(CylinderResolution, int, 3, 128);
00117   vtkGetMacro(CylinderResolution, int);
00119   
00121 
00122   vtkSetClampMacro(ConeRadius, float, 0, VTK_LARGE_FLOAT);
00123   vtkGetMacro(ConeRadius, float);
00124   vtkSetClampMacro(SphereRadius, float, 0, VTK_LARGE_FLOAT);
00125   vtkGetMacro(SphereRadius, float);
00126   vtkSetClampMacro(CylinderRadius, float, 0, VTK_LARGE_FLOAT);
00127   vtkGetMacro(CylinderRadius, float);
00129   
00131 
00132   vtkSetClampMacro(XAxisLabelPosition, float, 0, 1);
00133   vtkGetMacro(XAxisLabelPosition, float);
00134   vtkSetClampMacro(YAxisLabelPosition, float, 0, 1);
00135   vtkGetMacro(YAxisLabelPosition, float);
00136   vtkSetClampMacro(ZAxisLabelPosition, float, 0, 1);
00137   vtkGetMacro(ZAxisLabelPosition, float);
00139   
00141 
00143   void SetShaftType( int type );
00144   void SetShaftTypeToCylinder()
00145     { this->SetShaftType( vtkPVAxesActor::CYLINDER_SHAFT ); }
00146   void SetShaftTypeToLine()
00147     { this->SetShaftType( vtkPVAxesActor::LINE_SHAFT ); }
00148   void SetShaftTypeToUserDefined()
00149     { this->SetShaftType( vtkPVAxesActor::USER_DEFINED_SHAFT ); }
00151 
00153 
00154   void SetTipType( int type );
00155   void SetTipTypeToCone()
00156     { this->SetTipType( vtkPVAxesActor::CONE_TIP ); }
00157   void SetTipTypeToSphere()
00158     { this->SetTipType( vtkPVAxesActor::SPHERE_TIP ); }
00159   void SetTipTypeToUserDefined()
00160     { this->SetTipType( vtkPVAxesActor::USER_DEFINED_TIP ); }
00162 
00163   //BTX
00165 
00166   void SetUserDefinedTip( vtkPolyData * );
00167   vtkGetObjectMacro( UserDefinedTip, vtkPolyData );
00169   
00171 
00172   void SetUserDefinedShaft( vtkPolyData * );
00173   vtkGetObjectMacro( UserDefinedShaft, vtkPolyData );
00175 
00177 
00178   vtkProperty *GetXAxisTipProperty();
00179   vtkProperty *GetYAxisTipProperty();
00180   vtkProperty *GetZAxisTipProperty();
00182   
00184 
00185   vtkProperty *GetXAxisShaftProperty();
00186   vtkProperty *GetYAxisShaftProperty();
00187   vtkProperty *GetZAxisShaftProperty();
00189 
00191 
00192   vtkProperty *GetXAxisLabelProperty();
00193   vtkProperty *GetYAxisLabelProperty();
00194   vtkProperty *GetZAxisLabelProperty();
00195   //ETX
00196   //
00197   // Description:
00198   // Set the label text.
00199   vtkSetStringMacro( XAxisLabelText );
00200   vtkSetStringMacro( YAxisLabelText );
00201   vtkSetStringMacro( ZAxisLabelText );
00203   
00204 //BTX
00205   enum
00206   {
00207     CYLINDER_SHAFT,
00208     LINE_SHAFT,
00209     USER_DEFINED_SHAFT
00210   };
00211   
00212   
00213   enum
00214   {
00215     CONE_TIP,
00216     SPHERE_TIP,
00217     USER_DEFINED_TIP
00218   };
00219   
00220 //ETX
00221   
00222 protected:
00223   vtkPVAxesActor();
00224   ~vtkPVAxesActor();
00225 
00226   vtkCylinderSource *CylinderSource;
00227   vtkLineSource     *LineSource;
00228   vtkConeSource     *ConeSource;
00229   vtkSphereSource   *SphereSource;
00230   
00231   vtkActor          *XAxisShaft;
00232   vtkActor          *YAxisShaft;
00233   vtkActor          *ZAxisShaft;
00234 
00235   vtkActor          *XAxisTip;
00236   vtkActor          *YAxisTip;
00237   vtkActor          *ZAxisTip;
00238 
00239   void              UpdateProps();
00240 
00241   float             TotalLength[3];
00242   float             NormalizedShaftLength[3];
00243   float             NormalizedTipLength[3];
00244   
00245   int               ShaftType;
00246   int               TipType;
00247   
00248   vtkPolyData      *UserDefinedTip;
00249   vtkPolyData      *UserDefinedShaft;
00250   
00251   char             *XAxisLabelText;
00252   char             *YAxisLabelText;
00253   char             *ZAxisLabelText;
00254   
00255   vtkVectorText    *XAxisVectorText;
00256   vtkVectorText    *YAxisVectorText;
00257   vtkVectorText    *ZAxisVectorText;
00258   
00259   vtkFollower      *XAxisLabel;
00260   vtkFollower      *YAxisLabel;
00261   vtkFollower      *ZAxisLabel;
00262   
00263   int              ConeResolution;
00264   int              SphereResolution;
00265   int              CylinderResolution;
00266   
00267   float            ConeRadius;
00268   float            SphereRadius;
00269   float            CylinderRadius;
00270 
00271   float            XAxisLabelPosition;
00272   float            YAxisLabelPosition;
00273   float            ZAxisLabelPosition;
00274   
00275 private:
00276   vtkPVAxesActor(const vtkPVAxesActor&);  // Not implemented.
00277   void operator=(const vtkPVAxesActor&);  // Not implemented.
00278 };
00279 
00280 #endif
00281 

Generated on Tue May 30 12:31:38 2006 for ParaView by doxygen 1.3.5