18#ifndef vtkVectorFieldTopology_h
19#define vtkVectorFieldTopology_h
21#include "vtkFiltersFlowPathsModule.h"
25VTK_ABI_NAMESPACE_BEGIN
46 vtkSetMacro(IntegrationStepUnit,
int);
47 vtkGetMacro(IntegrationStepUnit,
int);
54 vtkSetMacro(MaxNumSteps,
int);
55 vtkGetMacro(MaxNumSteps,
int);
63 vtkSetMacro(IntegrationStepSize,
double);
64 vtkGetMacro(IntegrationStepSize,
double);
72 vtkSetMacro(SeparatrixDistance,
double);
73 vtkGetMacro(SeparatrixDistance,
double);
80 vtkSetMacro(UseIterativeSeeding,
bool);
81 vtkGetMacro(UseIterativeSeeding,
bool);
88 vtkSetMacro(ComputeSurfaces,
bool);
89 vtkGetMacro(ComputeSurfaces,
bool);
96 vtkSetMacro(ExcludeBoundary,
bool);
97 vtkGetMacro(ExcludeBoundary,
bool);
104 vtkSetMacro(UseBoundarySwitchPoints,
bool);
105 vtkGetMacro(UseBoundarySwitchPoints,
bool);
118 vtkSetMacro(VectorAngleThreshold,
double);
119 vtkGetMacro(VectorAngleThreshold,
double);
126 vtkSetMacro(OffsetAwayFromBoundary,
double);
127 vtkGetMacro(OffsetAwayFromBoundary,
double);
134 vtkSetMacro(EpsilonCriticalPoint,
double);
135 vtkGetMacro(EpsilonCriticalPoint,
double);
204 int ComputeCriticalPoints2D(
214 int ComputeCriticalPoints3D(
227 static void InterpolateVector(
228 double x0,
double x1,
double x,
const double v0[3],
const double v1[3],
double v[3]);
236 int ComputeBoundarySwitchPoints(
254 int ComputeSeparatricesBoundarySwitchPoints(
vtkPolyData* boundarySwitchPoints,
256 int integrationStepUnit,
double dist,
int maxNumSteps);
275 int ComputeSeparatricesBoundarySwitchLines(
vtkPolyData* boundarySwitchLines,
277 int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
299 double dist,
double stepSize,
int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
317 int ComputeSurface(
int numberOfSeparatingSurfaces,
bool isBackward,
double normal[3],
319 double dist,
double stepSize,
int maxNumSteps,
bool useIterativeSeeding);
338 enum CriticalTypeDetailed2D
341 ATTRACTING_NODE_2D = 0,
342 ATTRACTING_FOCUS_2D = 1,
344 REPELLING_NODE_2D = 3,
345 REPELLING_FOCUS_2D = 4,
346 CENTER_DETAILED_2D = 5
367 enum CriticalTypeDetailed3D
369 ATTRACTING_NODE_3D = 0,
370 ATTRACTING_FOCUS_3D = 1,
371 NODE_SADDLE_1_3D = 2,
372 FOCUS_SADDLE_1_3D = 3,
373 NODE_SADDLE_2_3D = 4,
374 FOCUS_SADDLE_2_3D = 5,
375 REPELLING_NODE_3D = 6,
376 REPELLING_FOCUS_3D = 7,
377 CENTER_DETAILED_3D = 8
387 static int Classify2D(
int countComplex,
int countPos,
int countNeg);
397 static int ClassifyDetailed2D(
int countComplex,
int countPos,
int countNeg);
407 static int Classify3D(
int countComplex,
int countPos,
int countNeg);
418 static int ClassifyDetailed3D(
int countComplex,
int countPos,
int countNeg);
423 int MaxNumSteps = 100;
428 double IntegrationStepSize = 1;
433 double SeparatrixDistance = 1;
438 bool UseIterativeSeeding =
false;
443 bool ComputeSurfaces =
false;
448 const char* NameOfVectorArray;
454 bool ExcludeBoundary =
false;
476 bool UseBoundarySwitchPoints =
false;
492 double VectorAngleThreshold = 1;
501 double OffsetAwayFromBoundary = 1e-3;
506 double EpsilonCriticalPoint = 1e-10;
abstract class to specify dataset behavior
A general filter for gradient estimation.
topologically and geometrically regular array of data
a simple class to control print indentation
Allocate and hold a VTK object.
represent and manipulate 3D points
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Hold a reference to a vtkObjectBase instance.
Advect a stream surface in a vector field.
@ INTERPOLATOR_WITH_DATASET_POINT_LOCATOR
dataset represents arbitrary combinations of all possible cell types
Extract the topological skeleton as output datasets.
void SetInterpolatorTypeToCellLocator()
Set the velocity field interpolator type to the one involving a cell locator.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkVectorFieldTopology * New()
void SetInterpolatorTypeToDataSetPointLocator()
Set the velocity field interpolator type to the one involving a dataset point locator.
~vtkVectorFieldTopology() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetInterpolatorType(int interpType)
Set the type of the velocity field interpolator to determine whether INTERPOLATOR_WITH_DATASET_POINT_...
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.