VTK  9.3.1
vtkHyperTreeGridAxisClip.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
25 #ifndef vtkHyperTreeGridAxisClip_h
26 #define vtkHyperTreeGridAxisClip_h
27 
28 #include "vtkFiltersHyperTreeModule.h" // For export macro
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class vtkBitArray;
33 class vtkHyperTreeGrid;
34 class vtkQuadric;
37 
38 class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridAxisClip : public vtkHyperTreeGridAlgorithm
39 {
40 public:
41  static vtkHyperTreeGridAxisClip* New();
43  void PrintSelf(ostream& os, vtkIndent indent) override;
44 
51  enum ClipType
52  {
53  PLANE = 0,
54  BOX,
56  };
57 
59 
63  vtkSetClampMacro(ClipType, int, 0, 2);
64  vtkGetMacro(ClipType, int);
65  void SetClipTypeToPlane() { this->SetClipType(vtkHyperTreeGridAxisClip::PLANE); }
66  void SetClipTypeToBox() { this->SetClipType(vtkHyperTreeGridAxisClip::BOX); }
69 
71 
75  vtkSetClampMacro(PlaneNormalAxis, int, 0, 2);
76  vtkGetMacro(PlaneNormalAxis, int);
78 
80 
84  vtkSetMacro(PlanePosition, double);
85  vtkGetMacro(PlanePosition, double);
87 
89 
92  vtkSetVector6Macro(Bounds, double);
93  vtkGetVectorMacro(Bounds, double, 6);
94  void GetMinimumBounds(double[3]);
95  void GetMaximumBounds(double[3]);
97 
99 
106  vtkSetMacro(InsideOut, bool);
107  vtkGetMacro(InsideOut, bool);
108  vtkBooleanMacro(InsideOut, bool);
110 
112 
115  virtual void SetQuadric(vtkQuadric*);
116  vtkGetObjectMacro(Quadric, vtkQuadric);
118 
120 
123  void SetQuadricCoefficients(double a, double b, double c, double d, double e, double f, double g,
124  double h, double i, double j)
125  {
126  double array[10] = { a, b, c, d, e, f, g, h, i, j };
127  this->SetQuadricCoefficients(array);
128  }
129  void SetQuadricCoefficients(double[10]);
130  void GetQuadricCoefficients(double[10]);
131  double* GetQuadricCoefficients();
133 
137  vtkMTimeType GetMTime() override;
138 
139 protected:
141  ~vtkHyperTreeGridAxisClip() override;
142 
143  // For this algorithm the output is a vtkHyperTreeGrid instance
144  int FillOutputPortInformation(int, vtkInformation*) override;
145 
150 
155 
159  void RecursivelyProcessTree(vtkHyperTreeGridNonOrientedGeometryCursor* inCursor,
161 
165  int ClipType;
166 
171 
177 
181  double Bounds[6];
182 
187 
191  bool InsideOut;
192 
198 
203 
204 private:
206  void operator=(const vtkHyperTreeGridAxisClip&) = delete;
207 };
208 
209 VTK_ABI_NAMESPACE_END
210 #endif // vtkHyperTreeGridAxisClip_h
void SetClipTypeToQuadric()
Set/get type of clip.
int FillOutputPortInformation(int, vtkInformation *) override
Define default input and output port types.
Store vtkAlgorithm input/output information.
int ClipType
Type of clip to be performed.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
void SetQuadricCoefficients(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j)
Helpers to set/get the 10 coefficients of the quadric function.
int vtkIdType
Definition: vtkType.h:315
bool InsideOut
Decide what is inside versus what is out.
Objects for traversal a HyperTreeGrid.
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkBitArray * InMask
Output material mask constructed by this filter.
evaluate implicit quadric function
Definition: vtkQuadric.h:22
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Axis aligned hyper tree grid clip.
virtual vtkMTimeType GetMTime()
Return this object's modified time.
double PlanePosition
Intercept of clipping plane along normal.
int PlaneNormalAxis
Direction of clipping plane normal.
vtkQuadric * Quadric
Coefficients of axis-aligned quadric.
ClipType
Methods by which the hyper tree grid input may be clipped: PLANE: Clip with an axis-aligned plane def...
void SetClipTypeToBox()
Set/get type of clip.
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:28
Superclass for algorithms that produce a hyper tree grid as output.
vtkIdType CurrentId
Keep track of current index in output hyper tree grid.
static vtkAlgorithm * New()
void SetClipTypeToPlane()
Set/get type of clip.
general representation of visualization data
Definition: vtkDataObject.h:54
virtual int ProcessTrees(vtkHyperTreeGrid *, vtkDataObject *)=0
Main routine to process individual trees in the grid This is pure virtual method to be implemented by...