57 vtkSetMacro(IntegrationStepUnit,
int);
58 vtkGetMacro(IntegrationStepUnit,
int);
65 vtkSetMacro(MaxNumSteps,
int);
66 vtkGetMacro(MaxNumSteps,
int);
74 vtkSetMacro(IntegrationStepSize,
double);
75 vtkGetMacro(IntegrationStepSize,
double);
83 vtkSetMacro(SeparatrixDistance,
double);
84 vtkGetMacro(SeparatrixDistance,
double);
91 vtkSetMacro(UseIterativeSeeding,
bool);
92 vtkGetMacro(UseIterativeSeeding,
bool);
99 vtkSetMacro(ComputeSurfaces,
bool);
100 vtkGetMacro(ComputeSurfaces,
bool);
107 vtkSetMacro(ExcludeBoundary,
bool);
108 vtkGetMacro(ExcludeBoundary,
bool);
115 vtkSetMacro(UseBoundarySwitchPoints,
bool);
116 vtkGetMacro(UseBoundarySwitchPoints,
bool);
129 vtkSetMacro(VectorAngleThreshold,
double);
130 vtkGetMacro(VectorAngleThreshold,
double);
137 vtkSetMacro(OffsetAwayFromBoundary,
double);
138 vtkGetMacro(OffsetAwayFromBoundary,
double);
145 vtkSetMacro(EpsilonCriticalPoint,
double);
146 vtkGetMacro(EpsilonCriticalPoint,
double);
215 int ComputeCriticalPoints2D(
225 int ComputeCriticalPoints3D(
238 static void InterpolateVector(
239 double x0,
double x1,
double x,
const double v0[3],
const double v1[3],
double v[3]);
247 int ComputeBoundarySwitchPoints(
265 int ComputeSeparatricesBoundarySwitchPoints(
vtkPolyData* boundarySwitchPoints,
267 int integrationStepUnit,
double dist,
int maxNumSteps);
286 int ComputeSeparatricesBoundarySwitchLines(
vtkPolyData* boundarySwitchLines,
288 int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
310 double dist,
double stepSize,
int maxNumSteps,
bool computeSurfaces,
bool useIterativeSeeding);
328 int ComputeSurface(
int numberOfSeparatingSurfaces,
bool isBackward,
double normal[3],
330 double dist,
double stepSize,
int maxNumSteps,
bool useIterativeSeeding);
349 enum CriticalTypeDetailed2D
352 ATTRACTING_NODE_2D = 0,
353 ATTRACTING_FOCUS_2D = 1,
355 REPELLING_NODE_2D = 3,
356 REPELLING_FOCUS_2D = 4,
357 CENTER_DETAILED_2D = 5
378 enum CriticalTypeDetailed3D
380 ATTRACTING_NODE_3D = 0,
381 ATTRACTING_FOCUS_3D = 1,
382 NODE_SADDLE_1_3D = 2,
383 FOCUS_SADDLE_1_3D = 3,
384 NODE_SADDLE_2_3D = 4,
385 FOCUS_SADDLE_2_3D = 5,
386 REPELLING_NODE_3D = 6,
387 REPELLING_FOCUS_3D = 7,
388 CENTER_DETAILED_3D = 8
398 static int Classify2D(
int countComplex,
int countPos,
int countNeg);
408 static int ClassifyDetailed2D(
int countComplex,
int countPos,
int countNeg);
418 static int Classify3D(
int countComplex,
int countPos,
int countNeg);
429 static int ClassifyDetailed3D(
int countComplex,
int countPos,
int countNeg);
434 int MaxNumSteps = 100;
439 double IntegrationStepSize = 1;
444 double SeparatrixDistance = 1;
449 bool UseIterativeSeeding =
false;
454 bool ComputeSurfaces =
false;
459 const char* NameOfVectorArray;
465 bool ExcludeBoundary =
false;
487 bool UseBoundarySwitchPoints =
false;
503 double VectorAngleThreshold = 1;
512 double OffsetAwayFromBoundary = 1e-3;
517 double EpsilonCriticalPoint = 1e-10;
519 vtkNew<vtkStreamSurface> StreamSurface;