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);
205 int ComputeCriticalPoints2D(
215 int ComputeCriticalPoints3D(
228 static void InterpolateVector(
229 double x0,
double x1,
double x,
const double v0[3],
const double v1[3],
double v[3]);
237 int ComputeBoundarySwitchPoints(
256 int ComputeSeparatricesBoundarySwitchPoints(
vtkPolyData* boundarySwitchPoints,
258 int integrationStepUnit,
double dist,
int maxNumSteps,
int& numberOfSeparatingLines);
277 int ComputeSeparatricesBoundarySwitchLines(
vtkPolyData* boundarySwitchLines,
279 double dist,
int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
304 int integrationStepUnit,
double dist,
double stepSize,
int maxNumSteps,
bool computeSurfaces,
305 bool useIterativeSeeding,
int& numberOfSeparatingLines,
int& numberOfSeparatingSurfaces);
324 int ComputeSurface(
int numberOfSeparatingSurfaces,
bool isBackward,
double normal[3],
326 int integrationStepUnit,
double dist,
double stepSize,
int maxNumSteps,
327 bool useIterativeSeeding);
346 enum CriticalTypeDetailed2D
349 ATTRACTING_NODE_2D = 0,
350 ATTRACTING_FOCUS_2D = 1,
352 REPELLING_NODE_2D = 3,
353 REPELLING_FOCUS_2D = 4,
354 CENTER_DETAILED_2D = 5
375 enum CriticalTypeDetailed3D
377 ATTRACTING_NODE_3D = 0,
378 ATTRACTING_FOCUS_3D = 1,
379 NODE_SADDLE_1_3D = 2,
380 FOCUS_SADDLE_1_3D = 3,
381 NODE_SADDLE_2_3D = 4,
382 FOCUS_SADDLE_2_3D = 5,
383 REPELLING_NODE_3D = 6,
384 REPELLING_FOCUS_3D = 7,
385 CENTER_DETAILED_3D = 8
395 static int Classify2D(
int countComplex,
int countPos,
int countNeg);
405 static int ClassifyDetailed2D(
int countComplex,
int countPos,
int countNeg);
415 static int Classify3D(
int countComplex,
int countPos,
int countNeg);
426 static int ClassifyDetailed3D(
int countComplex,
int countPos,
int countNeg);
441 int MaxNumSteps = 100;
446 double IntegrationStepSize = 1;
451 double SeparatrixDistance = 1;
456 bool UseIterativeSeeding =
false;
461 bool ComputeSurfaces =
false;
466 const char* NameOfVectorArray;
472 bool ExcludeBoundary =
false;
494 bool UseBoundarySwitchPoints =
false;
510 double VectorAngleThreshold = 1;
519 double OffsetAwayFromBoundary = 1e-3;
524 double EpsilonCriticalPoint = 1e-10;
general representation of visualization data
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 vtkInterpolatedVelocityField (IN...
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
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 *)