VTK  9.2.6
vtkDepthSortPolyData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDepthSortPolyData.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
63 #ifndef vtkDepthSortPolyData_h
64 #define vtkDepthSortPolyData_h
65 
66 #include "vtkFiltersHybridModule.h" // For export macro
67 #include "vtkPolyDataAlgorithm.h"
68 
69 class vtkCamera;
70 class vtkProp3D;
71 class vtkTransform;
72 
73 class VTKFILTERSHYBRID_EXPORT vtkDepthSortPolyData : public vtkPolyDataAlgorithm
74 {
75 public:
80 
82  void PrintSelf(ostream& os, vtkIndent indent) override;
83 
85  {
86  VTK_DIRECTION_BACK_TO_FRONT = 0,
87  VTK_DIRECTION_FRONT_TO_BACK = 1,
88  VTK_DIRECTION_SPECIFIED_VECTOR = 2
89  };
90 
92 
96  vtkSetMacro(Direction, int);
97  vtkGetMacro(Direction, int);
98  void SetDirectionToFrontToBack() { this->SetDirection(VTK_DIRECTION_FRONT_TO_BACK); }
99  void SetDirectionToBackToFront() { this->SetDirection(VTK_DIRECTION_BACK_TO_FRONT); }
100  void SetDirectionToSpecifiedVector() { this->SetDirection(VTK_DIRECTION_SPECIFIED_VECTOR); }
102 
103  enum SortMode
104  {
105  VTK_SORT_FIRST_POINT = 0,
106  VTK_SORT_BOUNDS_CENTER = 1,
107  VTK_SORT_PARAMETRIC_CENTER = 2
108  };
109 
111 
117  vtkSetMacro(DepthSortMode, int);
118  vtkGetMacro(DepthSortMode, int);
119  void SetDepthSortModeToFirstPoint() { this->SetDepthSortMode(VTK_SORT_FIRST_POINT); }
120  void SetDepthSortModeToBoundsCenter() { this->SetDepthSortMode(VTK_SORT_BOUNDS_CENTER); }
121  void SetDepthSortModeToParametricCenter() { this->SetDepthSortMode(VTK_SORT_PARAMETRIC_CENTER); }
123 
125 
130  virtual void SetCamera(vtkCamera*);
131  vtkGetObjectMacro(Camera, vtkCamera);
133 
141  vtkProp3D* GetProp3D() { return this->Prop3D; }
142 
144 
149  vtkSetVector3Macro(Vector, double);
150  vtkGetVectorMacro(Vector, double, 3);
152 
154 
160  vtkSetVector3Macro(Origin, double);
161  vtkGetVectorMacro(Origin, double, 3);
163 
165 
171  vtkSetMacro(SortScalars, vtkTypeBool);
172  vtkGetMacro(SortScalars, vtkTypeBool);
173  vtkBooleanMacro(SortScalars, vtkTypeBool);
175 
180  vtkMTimeType GetMTime() override;
181 
182 protected:
185 
187  void ComputeProjectionVector(double direction[3], double origin[3]);
188 
194  double Vector[3];
195  double Origin[3];
197 
198 private:
200  void operator=(const vtkDepthSortPolyData&) = delete;
201 };
202 
203 #endif
a virtual camera for 3D rendering
Definition: vtkCamera.h:161
sort poly data along camera view direction
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetDirectionToBackToFront()
Specify the sort method for the polygonal primitives.
virtual void SetCamera(vtkCamera *)
Specify a camera that is used to define a view direction along which the cells are sorted.
void SetDirectionToFrontToBack()
Specify the sort method for the polygonal primitives.
void SetDepthSortModeToParametricCenter()
Specify the point to use when sorting.
vtkMTimeType GetMTime() override
Return MTime also considering the dependent objects: the camera and/or the prop3D.
void SetDepthSortModeToBoundsCenter()
Specify the point to use when sorting.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetDepthSortModeToFirstPoint()
Specify the point to use when sorting.
~vtkDepthSortPolyData() override
void ComputeProjectionVector(double direction[3], double origin[3])
void SetDirectionToSpecifiedVector()
Specify the sort method for the polygonal primitives.
static vtkDepthSortPolyData * New()
Instantiate object.
void SetProp3D(vtkProp3D *)
Specify a transformation matrix (via the vtkProp3D::GetMatrix() method) that is used to include the e...
a simple class to control print indentation
Definition: vtkIndent.h:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:99
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:170
@ direction
Definition: vtkX3D.h:266
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287