vtkPStreamTracer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00029 #ifndef __vtkPStreamTracer_h
00030 #define __vtkPStreamTracer_h
00031
00032 #include "vtkStreamTracer.h"
00033
00034 class vtkInterpolatedVelocityField;
00035 class vtkMultiProcessController;
00036
00037 class VTK_PARALLEL_EXPORT vtkPStreamTracer : public vtkStreamTracer
00038 {
00039 public:
00040 vtkTypeRevisionMacro(vtkPStreamTracer,vtkStreamTracer);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00043 static vtkPStreamTracer *New();
00044
00046
00049 void SetController(vtkMultiProcessController* controller);
00050 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00052
00054
00057 vtkGetStringMacro(InputVectorsSelection);
00058 void SelectInputVectors(const char *fieldName)
00059 {this->SetInputVectorsSelection(fieldName);}
00061
00062 protected:
00063
00064 vtkPStreamTracer();
00065 ~vtkPStreamTracer();
00066
00067 void Execute();
00068 void ExecuteInformation();
00069 void ComputeInputUpdateExtents( vtkDataObject *output );
00070
00071 vtkMultiProcessController* Controller;
00072
00073 vtkInterpolatedVelocityField* Interpolator;
00074 void SetInterpolator(vtkInterpolatedVelocityField*);
00075
00076 void ForwardTask(float seed[3],
00077 int direction, int isNewSeed, int lastid, int currentLine);
00078 int ProcessTask(float seed[3],
00079 int direction, int isNewSeed, int lastid, int currentLine);
00080 int ReceiveAndProcessTask();
00081
00082 vtkDataArray* Seeds;
00083 vtkIdList* SeedIds;
00084 vtkIntArray* IntegrationDirections;
00085
00086 private:
00087 vtkPStreamTracer(const vtkPStreamTracer&);
00088 void operator=(const vtkPStreamTracer&);
00089 };
00090
00091
00092 #endif
00093
00094