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   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkPStreamTracer.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    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&);  // Not implemented.
    00098   void operator=(const vtkPStreamTracer&);  // Not implemented.
    00099 };
    00100
    00101
    00102 #endif
    00103
    00104