dox/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
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