VTK: Filters/ParallelFlowPaths/vtkPStreamTracer.h Source File

| VTK 9.3.1

vtkPStreamTracer.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
19 #ifndef vtkPStreamTracer_h
20 #define vtkPStreamTracer_h
21
22 #include "vtkSmartPointer.h" // This is a leaf node. No need to use PIMPL to avoid compile time penalty.
23 #include "vtkStreamTracer.h"
24
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkAbstractInterpolatedVelocityField;
27 class vtkMultiProcessController;
28
29 class PStreamTracerPoint;
30 class vtkOverlappingAMR;
31 class AbstractPStreamTracerUtils;
32
33 VTK_ABI_NAMESPACE_END
34 #include "vtkFiltersParallelFlowPathsModule.h" // For export macro
35
36 VTK_ABI_NAMESPACE_BEGIN
37 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPStreamTracer : public vtkStreamTracer
38 {
39 public:
41
45 static vtkPStreamTracer* New();
46 vtkTypeMacro(vtkPStreamTracer, vtkStreamTracer);
47 void PrintSelf(ostream& os, vtkIndent indent) override;
49
51
56 virtual void SetController(vtkMultiProcessController* controller);
57 vtkGetObjectMacro(Controller, vtkMultiProcessController);
59
60 protected:
61 vtkPStreamTracer();
62 ~vtkPStreamTracer() override;
63
64 int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
65 int RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
66
67 vtkMultiProcessController* Controller;
68
69 vtkAbstractInterpolatedVelocityField* Interpolator;
70 void SetInterpolator(vtkAbstractInterpolatedVelocityField*);
71
72 int EmptyData;
73
74 private:
75 vtkPStreamTracer(const vtkPStreamTracer&) = delete;
76 void operator=(const vtkPStreamTracer&) = delete;
77
78 void Trace(vtkDataSet* input, int vecType, const char* vecName, PStreamTracerPoint* pt,
79 vtkSmartPointer<vtkPolyData>& output, vtkAbstractInterpolatedVelocityField* func,
80 int maxCellSize);
81
82 bool TraceOneStep(
83 vtkPolyData* traceOut, vtkAbstractInterpolatedVelocityField*, PStreamTracerPoint* pt);
84
85 void Prepend(vtkPolyData* path, vtkPolyData* headh);
86 int Rank;
87 int NumProcs;
88
89 friend class AbstractPStreamTracerUtils;
90 vtkSmartPointer<AbstractPStreamTracerUtils> Utils;
91 };
92 VTK_ABI_NAMESPACE_END
93 #endif
vtkAbstractInterpolatedVelocityField
An abstract class for obtaining the interpolated velocity values at a point.
Definition: vtkAbstractInterpolatedVelocityField.h:89
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:38
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:40
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:72
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:72
vtkOverlappingAMR
hierarchical dataset of vtkUniformGrids
Definition: vtkOverlappingAMR.h:45
vtkPStreamTracer
parallel streamline generators
Definition: vtkPStreamTracer.h:38
vtkPStreamTracer::Controller
vtkMultiProcessController * Controller
Definition: vtkPStreamTracer.h:67
vtkPStreamTracer::Interpolator
vtkAbstractInterpolatedVelocityField * Interpolator
Definition: vtkPStreamTracer.h:69
vtkPStreamTracer::SetController
virtual void SetController(vtkMultiProcessController *controller)
Set/Get the controller use in compositing (set to the global controller by default) If not using the ...
vtkPStreamTracer::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkPStreamTracer::SetInterpolator
void SetInterpolator(vtkAbstractInterpolatedVelocityField *)
vtkPStreamTracer::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods to instantiate the class, obtain type information and print object state.
vtkPStreamTracer::RequestUpdateExtent
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkPStreamTracer::New
static vtkPStreamTracer * New()
Standard methods to instantiate the class, obtain type information and print object state.
vtkPStreamTracer::~vtkPStreamTracer
~vtkPStreamTracer() override
vtkPStreamTracer::vtkPStreamTracer
vtkPStreamTracer()
vtkPStreamTracer::EmptyData
int EmptyData
Definition: vtkPStreamTracer.h:72
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:89
vtkSmartPointer< vtkPolyData >
vtkStreamTracer
Streamline generator.
Definition: vtkStreamTracer.h:140
vtkSmartPointer.h
vtkStreamTracer.h