Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Parallel/vtkPStreamTracer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00039 #ifndef __vtkPStreamTracer_h
00040 #define __vtkPStreamTracer_h
00041
00042 #include "vtkStreamTracer.h"
00043
00044 class vtkInterpolatedVelocityField;
00045 class vtkMultiProcessController;
00046
00047 class VTK_PARALLEL_EXPORT vtkPStreamTracer : public vtkStreamTracer
00048 {
00049 public:
00050 vtkTypeRevisionMacro(vtkPStreamTracer,vtkStreamTracer);
00051 void PrintSelf(ostream& os, vtkIndent indent);
00052
00053 static vtkPStreamTracer *New();
00054
00056
00059 void SetController(vtkMultiProcessController* controller);
00060 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00062
00064
00067 vtkGetStringMacro(InputVectorsSelection);
00068 void SelectInputVectors(const char *fieldName)
00069 {this->SetInputVectorsSelection(fieldName);}
00071
00072 protected:
00073
00074 vtkPStreamTracer();
00075 ~vtkPStreamTracer();
00076
00077 void Execute();
00078 void ExecuteInformation();
00079 void ComputeInputUpdateExtents( vtkDataObject *output );
00080
00081 vtkMultiProcessController* Controller;
00082
00083 vtkInterpolatedVelocityField* Interpolator;
00084 void SetInterpolator(vtkInterpolatedVelocityField*);
00085
00086 void ForwardTask(float seed[3],
00087 int direction, int isNewSeed, int lastid, int currentLine);
00088 int ProcessTask(float seed[3],
00089 int direction, int isNewSeed, int lastid, int currentLine);
00090 int ReceiveAndProcessTask();
00091
00092 vtkDataArray* Seeds;
00093 vtkIdList* SeedIds;
00094 vtkIntArray* IntegrationDirections;
00095
00096 private:
00097 vtkPStreamTracer(const vtkPStreamTracer&);
00098 void operator=(const vtkPStreamTracer&);
00099 };
00100
00101
00102 #endif
00103
00104