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

vtkDepthSortPolyData.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkDepthSortPolyData.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 =========================================================================*/
00048 #ifndef __vtkDepthSortPolyData_h
00049 #define __vtkDepthSortPolyData_h
00050 
00051 #include "vtkPolyDataToPolyDataFilter.h"
00052 
00053 #define VTK_DIRECTION_BACK_TO_FRONT 0
00054 #define VTK_DIRECTION_FRONT_TO_BACK 1
00055 #define VTK_DIRECTION_SPECIFIED_VECTOR 2
00056 
00057 #define VTK_SORT_FIRST_POINT 0
00058 #define VTK_SORT_BOUNDS_CENTER 1
00059 #define VTK_SORT_PARAMETRIC_CENTER 2
00060 
00061 class vtkCamera;
00062 class vtkProp3D;
00063 class vtkTransform;
00064 
00065 class VTK_HYBRID_EXPORT vtkDepthSortPolyData : public vtkPolyDataToPolyDataFilter 
00066 {
00067 public:
00069   static vtkDepthSortPolyData *New();
00070 
00071   vtkTypeRevisionMacro(vtkDepthSortPolyData,vtkPolyDataToPolyDataFilter);
00072   void PrintSelf(ostream& os, vtkIndent indent);
00073 
00075 
00077   vtkSetMacro(Direction,int);
00078   vtkGetMacro(Direction,int);
00079   void SetDirectionToFrontToBack() 
00080     {this->SetDirection(VTK_DIRECTION_FRONT_TO_BACK);}
00081   void SetDirectionToBackToFront() 
00082     {this->SetDirection(VTK_DIRECTION_BACK_TO_FRONT);}
00083   void SetDirectionToSpecifiedVector() 
00084     {this->SetDirection(VTK_DIRECTION_SPECIFIED_VECTOR);}
00086 
00088 
00092   vtkSetMacro(DepthSortMode,int);
00093   vtkGetMacro(DepthSortMode,int);
00094   void SetDepthSortModeToFirstPoint() 
00095     {this->SetDepthSortMode(VTK_SORT_FIRST_POINT);}
00096   void SetDepthSortModeToBoundsCenter() 
00097     {this->SetDepthSortMode(VTK_SORT_BOUNDS_CENTER);}
00098   void SetDepthSortModeToParametricCenter() 
00099     {this->SetDepthSortMode(VTK_SORT_PARAMETRIC_CENTER);}
00101 
00103 
00106   virtual void SetCamera(vtkCamera*);
00107   vtkGetObjectMacro(Camera,vtkCamera);
00109 
00111 
00116   void SetProp3D(vtkProp3D *);
00117   vtkProp3D *GetProp3D();
00119 
00121 
00124   vtkSetVector3Macro(Vector,double);
00125   vtkGetVectorMacro(Vector,double,3);
00127 
00129 
00133   vtkSetVector3Macro(Origin,double);
00134   vtkGetVectorMacro(Origin,double,3);
00136 
00138 
00142   vtkSetMacro(SortScalars, int);
00143   vtkGetMacro(SortScalars, int);
00144   vtkBooleanMacro(SortScalars, int);
00146 
00149   unsigned long GetMTime();
00150 
00151 protected:
00152   vtkDepthSortPolyData();
00153   ~vtkDepthSortPolyData();
00154 
00155   void Execute();
00156   void ComputeProjectionVector(double vector[3], double origin[3]);
00157 
00158   int Direction;
00159   int DepthSortMode;
00160   vtkCamera *Camera;
00161   vtkProp3D *Prop3D;
00162   vtkTransform *Transform;
00163   double Vector[3];
00164   double Origin[3];
00165   int SortScalars;
00166   
00167 private:
00168   vtkDepthSortPolyData(const vtkDepthSortPolyData&);  // Not implemented.
00169   void operator=(const vtkDepthSortPolyData&);  // Not implemented.
00170 };
00171 
00172 #endif