48 #ifndef vtkHyperStreamline_h
49 #define vtkHyperStreamline_h
51 #include "vtkFiltersGeneralModule.h"
54 #define VTK_INTEGRATE_FORWARD 0
55 #define VTK_INTEGRATE_BACKWARD 1
56 #define VTK_INTEGRATE_BOTH_DIRECTIONS 2
58 #define VTK_INTEGRATE_MAJOR_EIGENVECTOR 0
59 #define VTK_INTEGRATE_MEDIUM_EIGENVECTOR 1
60 #define VTK_INTEGRATE_MINOR_EIGENVECTOR 2
83 void SetStartLocation(
vtkIdType cellId,
int subId,
double pcoords[3]);
89 void SetStartLocation(
vtkIdType cellId,
int subId,
double r,
double s,
96 vtkIdType GetStartLocation(
int& subId,
double pcoords[3]);
103 void SetStartPosition(
double x[3]);
110 void SetStartPosition(
double x,
double y,
double z);
115 double *GetStartPosition();
122 vtkSetClampMacro(MaximumPropagationDistance,
double,0.0,
VTK_DOUBLE_MAX);
123 vtkGetMacro(MaximumPropagationDistance,
double);
137 vtkSetClampMacro(IntegrationEigenvector,
int,
140 vtkGetMacro(IntegrationEigenvector,
int);
155 {this->SetIntegrationEigenvectorToMajor();};
164 {this->SetIntegrationEigenvectorToMedium();};
172 {this->SetIntegrationEigenvectorToMinor();};
179 vtkSetClampMacro(IntegrationStepLength,
double,0.001,0.5);
180 vtkGetMacro(IntegrationStepLength,
double);
189 vtkSetClampMacro(StepLength,
double,0.000001,1.0);
190 vtkGetMacro(StepLength,
double);
197 vtkSetClampMacro(IntegrationDirection,
int,
199 vtkGetMacro(IntegrationDirection,
int);
214 vtkGetMacro(TerminalEigenvalue,
double);
223 vtkGetMacro(NumberOfSides,
int);
234 vtkGetMacro(Radius,
double);
243 vtkGetMacro(LogScaling,
int);
255 int FillInputPortInformation(
int port, vtkInformation *
info) VTK_OVERRIDE;
263 double StartPCoords[3];
266 double StartPosition[3];
269 vtkHyperArray *Streamers;
270 int NumberOfStreamers;
273 double MaximumPropagationDistance;
276 int IntegrationDirection;
279 double IntegrationStepLength;
285 double TerminalEigenvalue;
297 int IntegrationEigenvector;
void IntegrateMinorEigenvector()
Use the minor eigenvector field as the vector field through which to integrate.
void SetIntegrationEigenvectorToMinor()
Set / get the eigenvector field through which to ingrate.
abstract class to specify dataset behavior
void SetIntegrationDirectionToForward()
Specify the direction in which to integrate the hyperstreamline.
void SetIntegrationDirectionToBackward()
Specify the direction in which to integrate the hyperstreamline.
concrete dataset represents vertices, lines, polygons, and triangle strips
#define VTK_INTEGRATE_MAJOR_EIGENVECTOR
#define VTK_INTEGRATE_MEDIUM_EIGENVECTOR
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
#define VTK_INTEGRATE_MINOR_EIGENVECTOR
a simple class to control print indentation
#define VTK_INTEGRATE_FORWARD
void SetIntegrationEigenvectorToMedium()
Set / get the eigenvector field through which to ingrate.
void SetIntegrationEigenvectorToMajor()
Set / get the eigenvector field through which to ingrate.
#define VTK_INTEGRATE_BACKWARD
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetIntegrationDirectionToIntegrateBothDirections()
Specify the direction in which to integrate the hyperstreamline.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void IntegrateMediumEigenvector()
Use the medium eigenvector field as the vector field through which to integrate.
void IntegrateMajorEigenvector()
Use the major eigenvector field as the vector field through which to integrate.
#define VTK_INTEGRATE_BOTH_DIRECTIONS
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
generate hyperstreamline in arbitrary dataset