VTK  9.1.0
vtkHyperTreeGridAxisClip.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkHyperTreeGridAxisClip.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=========================================================================*/
34#ifndef vtkHyperTreeGridAxisClip_h
35#define vtkHyperTreeGridAxisClip_h
36
37#include "vtkFiltersHyperTreeModule.h" // For export macro
39
40class vtkBitArray;
42class vtkQuadric;
45
46class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridAxisClip : public vtkHyperTreeGridAlgorithm
47{
48public:
51 void PrintSelf(ostream& os, vtkIndent indent) override;
52
60 {
61 PLANE = 0,
64 };
65
67
71 vtkSetClampMacro(ClipType, int, 0, 2);
72 vtkGetMacro(ClipType, int);
74 void SetClipTypeToBox() { this->SetClipType(vtkHyperTreeGridAxisClip::BOX); }
77
79
83 vtkSetClampMacro(PlaneNormalAxis, int, 0, 2);
84 vtkGetMacro(PlaneNormalAxis, int);
86
88
92 vtkSetMacro(PlanePosition, double);
93 vtkGetMacro(PlanePosition, double);
95
97
100 vtkSetVector6Macro(Bounds, double);
101 vtkGetVectorMacro(Bounds, double, 6);
102 void GetMinimumBounds(double[3]);
103 void GetMaximumBounds(double[3]);
105
107
114 vtkSetMacro(InsideOut, bool);
115 vtkGetMacro(InsideOut, bool);
116 vtkBooleanMacro(InsideOut, bool);
118
120
123 virtual void SetQuadric(vtkQuadric*);
124 vtkGetObjectMacro(Quadric, vtkQuadric);
126
128
131 void SetQuadricCoefficients(double a, double b, double c, double d, double e, double f, double g,
132 double h, double i, double j)
133 {
134 double array[10] = { a, b, c, d, e, f, g, h, i, j };
135 this->SetQuadricCoefficients(array);
136 }
137 void SetQuadricCoefficients(double[10]);
138 void GetQuadricCoefficients(double[10]);
141
146
147protected:
150
151 // For this algorithm the output is a vtkHyperTreeGrid instance
153
158
163
169
174
179
185
189 double Bounds[6];
190
195
200
206
211
212private:
214 void operator=(const vtkHyperTreeGridAxisClip&) = delete;
215};
216
217#endif // vtkHyperTreeGridAxisClip_h
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:34
general representation of visualization data
vtkFrustumSelector is a vtkSelector that selects elements based on whether they are inside or interse...
Superclass for algorithms that produce a hyper tree grid as output.
Axis aligned hyper tree grid clip.
void RecursivelyProcessTree(vtkHyperTreeGridNonOrientedGeometryCursor *inCursor, vtkHyperTreeGridNonOrientedCursor *outCursor)
Recursively descend into tree down to leaves.
void GetMinimumBounds(double[3])
Set/get bounds of clipping box.
vtkMTimeType GetMTime() override
Override GetMTime because we delegate to a vtkQuadric.
int PlaneNormalAxis
Direction of clipping plane normal.
double PlanePosition
Intercept of clipping plane along normal.
vtkIdType CurrentId
Keep track of current index in output hyper tree grid.
~vtkHyperTreeGridAxisClip() override
int ClipType
Type of clip to be performed.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetQuadricCoefficients(double[10])
Helpers to set/get the 10 coefficients of the quadric function.
int ProcessTrees(vtkHyperTreeGrid *, vtkDataObject *) override
Main routine to generate hyper tree grid clip.
ClipType
Methods by which the hyper tree grid input may be clipped: PLANE: Clip with an axis-aligned plane def...
virtual void SetQuadric(vtkQuadric *)
Set/Get the clipping quadric function.
vtkBitArray * InMask
Output material mask constructed by this filter.
static vtkHyperTreeGridAxisClip * New()
bool InsideOut
Decide what is inside versus what is out.
bool IsClipped(vtkHyperTreeGridNonOrientedGeometryCursor *)
Decide whether the cell is clipped out.
void SetClipTypeToQuadric()
Set/get type of clip.
void GetMaximumBounds(double[3])
Set/get bounds of clipping box.
double * GetQuadricCoefficients()
Helpers to set/get the 10 coefficients of the quadric function.
void SetClipTypeToPlane()
Set/get type of clip.
void GetQuadricCoefficients(double[10])
Helpers to set/get the 10 coefficients of the quadric function.
int FillOutputPortInformation(int, vtkInformation *) override
Define default input and output port types.
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.
vtkQuadric * Quadric
Coefficients of axis-aligned quadric.
void SetClipTypeToBox()
Set/get type of clip.
Objects for traversal a HyperTreeGrid.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
a simple class to control print indentation
Definition: vtkIndent.h:113
Store vtkAlgorithm input/output information.
evaluate implicit quadric function
Definition: vtkQuadric.h:120
int vtkIdType
Definition: vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287