41#ifndef vtkAngularPeriodicFilter_h
42#define vtkAngularPeriodicFilter_h
44#include "vtkFiltersParallelModule.h"
51#define VTK_ROTATION_MODE_DIRECT_ANGLE 0
52#define VTK_ROTATION_MODE_ARRAY_VALUE 1
67 vtkSetMacro(ComputeRotationsOnTheFly,
bool);
68 vtkGetMacro(ComputeRotationsOnTheFly,
bool);
69 vtkBooleanMacro(ComputeRotationsOnTheFly,
bool);
80 vtkGetMacro(RotationMode,
int);
91 vtkSetMacro(RotationAngle,
double);
92 vtkGetMacro(RotationAngle,
double);
100 vtkSetStringMacro(RotationArrayName);
101 vtkGetStringMacro(RotationArrayName);
108 vtkSetClampMacro(RotationAxis,
int, 0, 2);
109 vtkGetMacro(RotationAxis,
int);
119 vtkSetVector3Macro(Center,
double);
120 vtkGetVector3Macro(Center,
double);
133 vtkDataArray* inputArray,
double angle,
bool useCenter =
true,
bool normalize =
false);
174 bool ComputeRotationsOnTheFly;
181 double RotationAngle;
virtual void GeneratePieceName(vtkCompositeDataSet *input, vtkCompositeDataIterator *inputLoc, vtkMultiPieceDataSet *output, vtkIdType outputId)
Generate a name for a piece in the periodic dataset from the input dataset.
static vtkAngularPeriodicFilter * New()
void SetPeriodNumber(vtkCompositeDataIterator *loc, vtkCompositeDataSet *output, int nbPeriod) override
Manually set the number of period on a specific leaf.
void ComputePeriodicMesh(vtkPointSet *dataset, vtkPointSet *rotatedDataset, double angle)
Compute periodic pointset, rotating point, using provided angle.
void SetRotationAxisToY()
Set/Get Rotation Axis, 0 for X, 1 for Y, 2 for Z.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
~vtkAngularPeriodicFilter() override
vtkDataArray * TransformDataArray(vtkDataArray *inputArray, double angle, bool useCenter=true, bool normalize=false)
Create a transform copy of the provided data array.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetRotationModeToArrayValue()
Set/Get The rotation mode.
virtual void SetRotationMode(int)
Set/Get The rotation mode.
void SetRotationModeToDirectAngle()
Set/Get The rotation mode.
void ComputeAngularPeriodicData(vtkDataSetAttributes *data, vtkDataSetAttributes *rotatedData, double angle)
Compute periodic point/cell data, using provided angle.
vtkAngularPeriodicFilter()
void SetRotationAxisToX()
Set/Get Rotation Axis, 0 for X, 1 for Y, 2 for Z.
void AppendPeriodicPiece(double angle, vtkIdType iPiece, vtkDataObject *inputNode, vtkMultiPieceDataSet *multiPiece)
Append a periodic piece to dataset, by computing rotated mesh and data.
void SetRotationAxisToZ()
Set/Get Rotation Axis, 0 for X, 1 for Y, 2 for Z.
void CreatePeriodicDataSet(vtkCompositeDataIterator *loc, vtkCompositeDataSet *output, vtkCompositeDataSet *input) override
Create a periodic data, leaf of the tree.
superclass for composite data iterators
abstract superclass for composite (multi-block or AMR) datasets
general representation of visualization data
represent and manipulate attribute data in a dataset
a simple class to control print indentation
composite dataset to encapsulates pieces of dataset.
concrete class for storing a set of points
#define VTK_ROTATION_MODE_ARRAY_VALUE
#define VTK_ROTATION_MODE_DIRECT_ANGLE