18 #ifndef vtkVectorFieldTopology_h
19 #define vtkVectorFieldTopology_h
21 #include "vtkFiltersFlowPathsModule.h"
25 VTK_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);
145 void SetInterpolatorType(
int interpType);
151 void SetInterpolatorTypeToCellLocator();
157 void SetInterpolatorTypeToDataSetPointLocator();
166 virtual
void SetCellLocatorToStaticCellLocator();
167 virtual
void SetCellLocatorToJumpAndWalkCellLocator();
168 vtkGetObjectMacro(CellLocator, vtkAbstractCellLocator);
173 ~vtkVectorFieldTopology() override;
180 vtkVectorFieldTopology(const vtkVectorFieldTopology&) = delete;
181 void operator=(const vtkVectorFieldTopology&) = delete;
220 int ComputeCriticalPoints2D(
230 int ComputeCriticalPoints3D(
243 static
void InterpolateVector(
244 double x0,
double x1,
double x, const
double v0[3], const
double v1[3],
double v[3]);
252 int ComputeBoundarySwitchPoints(
271 int ComputeSeparatricesBoundarySwitchPoints(
vtkPolyData* boundarySwitchPoints,
273 int integrationStepUnit,
double dist,
int maxNumSteps,
int& numberOfSeparatingLines);
292 int ComputeSeparatricesBoundarySwitchLines(
vtkPolyData* boundarySwitchLines,
294 double dist,
int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
319 int integrationStepUnit,
double dist,
double stepSize,
int maxNumSteps,
bool computeSurfaces,
320 bool useIterativeSeeding,
int& numberOfSeparatingLines,
int& numberOfSeparatingSurfaces);
339 int ComputeSurface(
int numberOfSeparatingSurfaces,
bool isBackward,
double normal[3],
341 int integrationStepUnit,
double dist,
double stepSize,
int maxNumSteps,
342 bool useIterativeSeeding);
361 enum CriticalTypeDetailed2D
364 ATTRACTING_NODE_2D = 0,
365 ATTRACTING_FOCUS_2D = 1,
367 REPELLING_NODE_2D = 3,
368 REPELLING_FOCUS_2D = 4,
369 CENTER_DETAILED_2D = 5
390 enum CriticalTypeDetailed3D
392 ATTRACTING_NODE_3D = 0,
393 ATTRACTING_FOCUS_3D = 1,
394 NODE_SADDLE_1_3D = 2,
395 FOCUS_SADDLE_1_3D = 3,
396 NODE_SADDLE_2_3D = 4,
397 FOCUS_SADDLE_2_3D = 5,
398 REPELLING_NODE_3D = 6,
399 REPELLING_FOCUS_3D = 7,
400 CENTER_DETAILED_3D = 8
410 static int Classify2D(
int countComplex,
int countPos,
int countNeg);
420 static int ClassifyDetailed2D(
int countComplex,
int countPos,
int countNeg);
430 static int Classify3D(
int countComplex,
int countPos,
int countNeg);
441 static int ClassifyDetailed3D(
int countComplex,
int countPos,
int countNeg);
456 int MaxNumSteps = 100;
461 double IntegrationStepSize = 1;
466 double SeparatrixDistance = 1;
471 bool UseIterativeSeeding =
false;
476 bool ComputeSurfaces =
false;
481 const char* NameOfVectorArray;
487 bool ExcludeBoundary =
false;
509 bool UseBoundarySwitchPoints =
false;
521 double VectorAngleThreshold = 1;
530 double OffsetAwayFromBoundary = 1e-3;
535 double EpsilonCriticalPoint = 1e-10;
539 VTK_ABI_NAMESPACE_END
abstract class to specify dataset behavior
Extract the topological skeleton as output datasets.
an abstract base class for locators which find cells
Hold a reference to a vtkObjectBase instance.
concrete dataset represents vertices, lines, polygons, and triangle strips
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
topologically and geometrically regular array of data
dataset represents arbitrary combinations of all possible cell types
A general filter for gradient estimation.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
general representation of visualization data
Advect a stream surface in a vector field.
#define VTK_DEPRECATED_IN_9_7_0(reason)
represent and manipulate 3D points
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.