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);
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);
451 static void CopyBoundarySwitchLinesArray(vtkDataSet*
source, vtkPolyData*
target);
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;
511 vtkAbstractCellLocator* CellLocator =
nullptr;
521 double VectorAngleThreshold = 1;
530 double OffsetAwayFromBoundary = 1e-3;
535 double EpsilonCriticalPoint = 1e-10;
537 vtkNew<vtkStreamSurface> StreamSurface;
an abstract base class for locators which find cells
general representation of visualization data
abstract class to specify dataset behavior
topologically and geometrically regular array of data
a simple class to control print indentation
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
Hold a reference to a vtkObjectBase instance.
Advect a stream surface in a vector field.
dataset represents arbitrary combinations of all possible cell types
virtual void SetCellLocator(vtkAbstractCellLocator *)
Set / get the cell locator used to perform the FindCell() operation for vtkPointSet.
void SetInterpolatorTypeToCellLocator()
Set the velocity field interpolator type to the one involving a cell locator.
int FillInputPortInformation(int port, vtkInformation *info) override
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.
virtual void SetCellLocatorToStaticCellLocator()
Set / get the cell locator used to perform the FindCell() operation for vtkPointSet.
virtual void SetCellLocatorToJumpAndWalkCellLocator()
Set / get the cell locator used to perform the FindCell() operation for vtkPointSet.
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 vtkInterpolatedVelocityField (IN...
int FillOutputPortInformation(int port, vtkInformation *info) override
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_DEPRECATED_IN_9_7_0(reason)
#define vtkGradientFilter