VTK
vtkReflectionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkReflectionFilter.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 =========================================================================*/
28 #ifndef vtkReflectionFilter_h
29 #define vtkReflectionFilter_h
30 
31 #include "vtkDataObjectAlgorithm.h"
32 #include "vtkFiltersGeneralModule.h" // For export macro
33 
35 class vtkDataSet;
36 
37 class VTKFILTERSGENERAL_EXPORT vtkReflectionFilter : public vtkDataObjectAlgorithm
38 {
39 public:
40  static vtkReflectionFilter *New();
41 
43  void PrintSelf(ostream &os, vtkIndent indent) override;
44 
46  {
47  USE_X_MIN = 0,
48  USE_Y_MIN = 1,
49  USE_Z_MIN = 2,
50  USE_X_MAX = 3,
51  USE_Y_MAX = 4,
52  USE_Z_MAX = 5,
53  USE_X = 6,
54  USE_Y = 7,
55  USE_Z = 8
56  };
57 
59 
62  vtkSetClampMacro(Plane, int, 0, 8);
63  vtkGetMacro(Plane, int);
64  void SetPlaneToX() { this->SetPlane(USE_X); };
65  void SetPlaneToY() { this->SetPlane(USE_Y); };
66  void SetPlaneToZ() { this->SetPlane(USE_Z); };
67  void SetPlaneToXMin() { this->SetPlane(USE_X_MIN); };
68  void SetPlaneToYMin() { this->SetPlane(USE_Y_MIN); };
69  void SetPlaneToZMin() { this->SetPlane(USE_Z_MIN); };
70  void SetPlaneToXMax() { this->SetPlane(USE_X_MAX); };
71  void SetPlaneToYMax() { this->SetPlane(USE_Y_MAX); };
72  void SetPlaneToZMax() { this->SetPlane(USE_Z_MAX); };
74 
76 
80  vtkSetMacro(Center, double);
81  vtkGetMacro(Center, double);
83 
85 
89  vtkSetMacro(CopyInput, vtkTypeBool);
90  vtkGetMacro(CopyInput, vtkTypeBool);
91  vtkBooleanMacro(CopyInput, vtkTypeBool);
93 
95 
102  vtkSetMacro(FlipAllInputArrays, bool);
103  vtkGetMacro(FlipAllInputArrays, bool);
104  vtkBooleanMacro(FlipAllInputArrays, bool);
106 
107 protected:
109  ~vtkReflectionFilter() override;
110 
118  vtkInformationVector*) override;
119 
123  virtual int RequestDataInternal(vtkDataSet* input, vtkUnstructuredGrid* output,
124  double bounds[6]);
125 
129  virtual int ComputeBounds(vtkDataObject* input, double bounds[6]);
130 
134  virtual vtkIdType ReflectNon3DCell(vtkDataSet* input, vtkUnstructuredGrid* output,
135  vtkIdType cellId, vtkIdType numInputPoints);
136 
138  int FillInputPortInformation(int port, vtkInformation *info) override;
139 
140  void FlipTuple(double* tuple, int* mirrorDir, int nComp);
141 
142  int Plane;
143  double Center;
146 
147 private:
148  vtkReflectionFilter(const vtkReflectionFilter&) = delete;
149  void operator=(const vtkReflectionFilter&) = delete;
150 };
151 
152 #endif
vtkReflectionFilter::SetPlaneToZ
void SetPlaneToZ()
Definition: vtkReflectionFilter.h:66
vtkDataObjectAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkReflectionFilter::Center
double Center
Definition: vtkReflectionFilter.h:143
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkReflectionFilter::SetPlaneToZMin
void SetPlaneToZMin()
Definition: vtkReflectionFilter.h:69
vtkReflectionFilter::SetPlaneToYMax
void SetPlaneToYMax()
Definition: vtkReflectionFilter.h:71
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkDataObjectAlgorithm
Superclass for algorithms that produce only data object as output.
Definition: vtkDataObjectAlgorithm.h:43
vtkX3D::port
Definition: vtkX3D.h:447
vtkReflectionFilter::CopyInput
vtkTypeBool CopyInput
Definition: vtkReflectionFilter.h:144
vtkReflectionFilter::SetPlaneToY
void SetPlaneToY()
Definition: vtkReflectionFilter.h:65
vtkReflectionFilter::SetPlaneToYMin
void SetPlaneToYMin()
Definition: vtkReflectionFilter.h:68
vtkReflectionFilter
reflects a data set across a plane
Definition: vtkReflectionFilter.h:37
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkReflectionFilter::SetPlaneToX
void SetPlaneToX()
Definition: vtkReflectionFilter.h:64
vtkReflectionFilter::SetPlaneToXMin
void SetPlaneToXMin()
Definition: vtkReflectionFilter.h:67
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkReflectionFilter::SetPlaneToZMax
void SetPlaneToZMax()
Definition: vtkReflectionFilter.h:72
vtkX3D::info
Definition: vtkX3D.h:376
vtkReflectionFilter::Plane
int Plane
Definition: vtkReflectionFilter.h:142
vtkReflectionFilter::FlipAllInputArrays
bool FlipAllInputArrays
Definition: vtkReflectionFilter.h:145
vtkDataObjectAlgorithm::New
static vtkDataObjectAlgorithm * New()
vtkDataObjectAlgorithm::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Definition: vtkDataObjectAlgorithm.h:122
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:87
vtkDataObjectAlgorithm.h
vtkDataObjectAlgorithm::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkReflectionFilter::ReflectionPlane
ReflectionPlane
Definition: vtkReflectionFilter.h:45
vtkDataObjectAlgorithm::RequestDataObject
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Definition: vtkDataObjectAlgorithm.h:104
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:64
vtkReflectionFilter::SetPlaneToXMax
void SetPlaneToXMax()
Definition: vtkReflectionFilter.h:70
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69