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 
87  TmpOutputsType TmpOutputs;
88 
89 private:
90  vtkPStreamTracer(const vtkPStreamTracer&); // Not implemented.
91  void operator=(const vtkPStreamTracer&); // Not implemented.
92 };
93 
94 
95 #endif
96 
97 
Abstract superclass for parallel streamline generators.
void PrintSelf(ostream &os, vtkIndent indent)
vtkIntArray * IntegrationDirections
vtkMultiProcessController * Controller
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkstd::vector< vtkSmartPointer< vtkPolyData > > TmpOutputsType
An abstract class for obtaining the interpolated velocity values at a point.
int vtkIdType
Definition: vtkType.h:255
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:81
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:42
vtkDataArray * Seeds
a simple class to control print indentation
Definition: vtkIndent.h:37
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
list of point or cell ids
Definition: vtkIdList.h:34
vtkAbstractInterpolatedVelocityField * Interpolator
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
TmpOutputsType TmpOutputs
#define VTK_PARALLEL_EXPORT
Streamline generator.
Store zero or more vtkInformation instances.
vtkIdList * SeedIds
Multiprocessing communication superclass.