VTK  9.3.1
vtkProjectSphereFilter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkProjectSphereFilter_h
15 #define vtkProjectSphereFilter_h
16 
17 #include "vtkFiltersGeometryModule.h" // For export macro
18 #include "vtkPointSetAlgorithm.h"
19 
20 VTK_ABI_NAMESPACE_BEGIN
21 class vtkCell;
22 class vtkCellArray;
24 class vtkIdList;
27 
28 class VTKFILTERSGEOMETRY_EXPORT vtkProjectSphereFilter : public vtkPointSetAlgorithm
29 {
30 public:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
34  static vtkProjectSphereFilter* New();
35 
37 
40  vtkSetVector3Macro(Center, double);
41  vtkGetVectorMacro(Center, double, 3);
43 
45 
49  vtkGetMacro(KeepPolePoints, bool);
50  vtkSetMacro(KeepPolePoints, bool);
51  vtkBooleanMacro(KeepPolePoints, bool);
53 
55 
60  vtkGetMacro(TranslateZ, bool);
61  vtkSetMacro(TranslateZ, bool);
62  vtkBooleanMacro(TranslateZ, bool);
64 
65 protected:
67  ~vtkProjectSphereFilter() override;
68 
70 
72 
73  void TransformPointInformation(vtkPointSet* input, vtkPointSet* output, vtkIdList*);
74  void TransformCellInformation(vtkPointSet* input, vtkPointSet* output, vtkIdList*);
75  void TransformTensors(vtkIdType id, double* coord, vtkDataSetAttributes* arrays);
76 
82  virtual void ComputePointsClosestToCenterLine(double, vtkIdList*) {}
83 
88  virtual double GetZTranslation(vtkPointSet* input);
89 
94  void SplitCell(vtkPointSet* input, vtkPointSet* output, vtkIdType inputCellId,
95  vtkIncrementalPointLocator* locator, vtkCellArray* connectivity, int splitSide);
96 
97  void SetCellInformation(vtkUnstructuredGrid* output, vtkCell* cell, vtkIdType numberOfNewCells);
98 
99 private:
101  void operator=(const vtkProjectSphereFilter&) = delete;
102 
103  double Center[3];
104  const double SplitLongitude;
105  bool KeepPolePoints;
106  bool TranslateZ;
107 };
108 
109 VTK_ABI_NAMESPACE_END
110 #endif // vtkProjectSphereFilter_h
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Store vtkAlgorithm input/output information.
Abstract class in support of both point location and point insertion.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
concrete class for storing a set of points
Definition: vtkPointSet.h:58
int vtkIdType
Definition: vtkType.h:315
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
abstract class to specify cell behavior
Definition: vtkCell.h:49
virtual void ComputePointsClosestToCenterLine(double, vtkIdList *)
Parallel part of the algorithm to figure out the closest point to the centerline (i.e.
a simple class to control print indentation
Definition: vtkIndent.h:28
list of point or cell ids
Definition: vtkIdList.h:22
dataset represents arbitrary combinations of all possible cell types
Superclass for algorithms that produce output of the same type as input.
represent and manipulate attribute data in a dataset
object to represent cell connectivity
Definition: vtkCellArray.h:175
static vtkPointSetAlgorithm * New()
Store zero or more vtkInformation instances.
A filter to 'unroll' a sphere.