00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00033 #ifndef __vtkDepthSortPolyData_h
00034 #define __vtkDepthSortPolyData_h
00035
00036 #include "vtkPolyDataAlgorithm.h"
00037
00038 #define VTK_DIRECTION_BACK_TO_FRONT 0
00039 #define VTK_DIRECTION_FRONT_TO_BACK 1
00040 #define VTK_DIRECTION_SPECIFIED_VECTOR 2
00041
00042 #define VTK_SORT_FIRST_POINT 0
00043 #define VTK_SORT_BOUNDS_CENTER 1
00044 #define VTK_SORT_PARAMETRIC_CENTER 2
00045
00046 class vtkCamera;
00047 class vtkProp3D;
00048 class vtkTransform;
00049
00050 class VTK_HYBRID_EXPORT vtkDepthSortPolyData : public vtkPolyDataAlgorithm
00051 {
00052 public:
00054 static vtkDepthSortPolyData *New();
00055
00056 vtkTypeRevisionMacro(vtkDepthSortPolyData,vtkPolyDataAlgorithm);
00057 void PrintSelf(ostream& os, vtkIndent indent);
00058
00060
00062 vtkSetMacro(Direction,int);
00063 vtkGetMacro(Direction,int);
00064 void SetDirectionToFrontToBack()
00065 {this->SetDirection(VTK_DIRECTION_FRONT_TO_BACK);}
00066 void SetDirectionToBackToFront()
00067 {this->SetDirection(VTK_DIRECTION_BACK_TO_FRONT);}
00068 void SetDirectionToSpecifiedVector()
00069 {this->SetDirection(VTK_DIRECTION_SPECIFIED_VECTOR);}
00071
00073
00077 vtkSetMacro(DepthSortMode,int);
00078 vtkGetMacro(DepthSortMode,int);
00079 void SetDepthSortModeToFirstPoint()
00080 {this->SetDepthSortMode(VTK_SORT_FIRST_POINT);}
00081 void SetDepthSortModeToBoundsCenter()
00082 {this->SetDepthSortMode(VTK_SORT_BOUNDS_CENTER);}
00083 void SetDepthSortModeToParametricCenter()
00084 {this->SetDepthSortMode(VTK_SORT_PARAMETRIC_CENTER);}
00086
00088
00091 virtual void SetCamera(vtkCamera*);
00092 vtkGetObjectMacro(Camera,vtkCamera);
00094
00096
00101 void SetProp3D(vtkProp3D *);
00102 vtkProp3D *GetProp3D();
00104
00106
00109 vtkSetVector3Macro(Vector,double);
00110 vtkGetVectorMacro(Vector,double,3);
00112
00114
00118 vtkSetVector3Macro(Origin,double);
00119 vtkGetVectorMacro(Origin,double,3);
00121
00123
00127 vtkSetMacro(SortScalars, int);
00128 vtkGetMacro(SortScalars, int);
00129 vtkBooleanMacro(SortScalars, int);
00131
00134 unsigned long GetMTime();
00135
00136 protected:
00137 vtkDepthSortPolyData();
00138 ~vtkDepthSortPolyData();
00139
00140 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00141 void ComputeProjectionVector(double vector[3], double origin[3]);
00142
00143 int Direction;
00144 int DepthSortMode;
00145 vtkCamera *Camera;
00146 vtkProp3D *Prop3D;
00147 vtkTransform *Transform;
00148 double Vector[3];
00149 double Origin[3];
00150 int SortScalars;
00151
00152 private:
00153 vtkDepthSortPolyData(const vtkDepthSortPolyData&);
00154 void operator=(const vtkDepthSortPolyData&);
00155 };
00156
00157 #endif