VTK
vtkPStreamTracer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPStreamTracer.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef __vtkPStreamTracer_h
27 #define __vtkPStreamTracer_h
28 
29 #include "vtkStreamTracer.h"
30 
31 #include "vtkSmartPointer.h" // This is a leaf node. No need to use PIMPL to avoid compile time penalty.
32 #include <vtkstd/vector> // STL Header; Required for vector
33 
36 
38 {
39 public:
41  virtual void PrintSelf(ostream& os, vtkIndent indent);
42 
44 
47  virtual void SetController(vtkMultiProcessController* controller);
48  vtkGetObjectMacro(Controller, vtkMultiProcessController);
50 
51 protected:
52 
55 
59 
61 
63  void SetInterpolator(vtkAbstractInterpolatedVelocityField*);
64 
65  // See the implementation for comments
66  void SendCellPoint(vtkPolyData* data,
67  vtkIdType streamId,
68  vtkIdType idx,
69  int sendToId);
70  void ReceiveCellPoint(vtkPolyData* tomod, int streamId, vtkIdType idx);
71  void SendFirstPoints(vtkPolyData *output);
72  void ReceiveLastPoints(vtkPolyData *output);
73  void MoveToNextSend(vtkPolyData *output);
74 
75  virtual void ParallelIntegrate() = 0;
76 
80 
81  int EmptyData;
82 
83 //BTX
84  typedef vtkstd::vector< vtkSmartPointer<vtkPolyData> > TmpOutputsType;
85 //ETX
86 
88 
89 private:
90  vtkPStreamTracer(const vtkPStreamTracer&); // Not implemented.
91  void operator=(const vtkPStreamTracer&); // Not implemented.
92 };
93 
94 
95 #endif
96 
97