00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00035 #ifndef _vtkTemporalPathLineFilter_h
00036 #define _vtkTemporalPathLineFilter_h
00037
00038 #include "vtkPolyDataAlgorithm.h"
00039
00040 class vtkPoints;
00041 class vtkCellArray;
00042 class vtkMergePoints;
00043 class vtkFloatArray;
00044
00045
00046 #include "vtkSmartPointer.h"
00047 #include <vtkstd/set>
00048 class ParticleTrail;
00049 class vtkTemporalPathLineFilterInternals;
00050 typedef vtkSmartPointer<ParticleTrail> TrailPointer;
00051
00052
00053 class VTK_GRAPHICS_EXPORT vtkTemporalPathLineFilter : public vtkPolyDataAlgorithm {
00054 public:
00056
00057 static vtkTemporalPathLineFilter *New();
00058 vtkTypeMacro(vtkTemporalPathLineFilter,vtkPolyDataAlgorithm);
00059 void PrintSelf(ostream& os, vtkIndent indent);
00061
00063
00065 vtkSetMacro(MaskPoints,int);
00066 vtkGetMacro(MaskPoints,int);
00068
00070
00076 vtkSetMacro(MaxTrackLength,unsigned int);
00077 vtkGetMacro(MaxTrackLength,unsigned int);
00079
00081
00087 vtkSetStringMacro(IdChannelArray);
00088 vtkGetStringMacro(IdChannelArray);
00090
00091
00092 VTK_LEGACY(void SetScalarArray(const char *));
00093 VTK_LEGACY(const char *GetScalarArray());
00094
00096
00102 vtkSetVector3Macro(MaxStepDistance,double);
00103 vtkGetVector3Macro(MaxStepDistance,double);
00105
00107
00111 vtkSetMacro(KeepDeadTrails,int);
00112 vtkGetMacro(KeepDeadTrails,int);
00114
00117 void Flush();
00118
00123 void SetSelectionConnection(vtkAlgorithmOutput *algOutput);
00124
00129 void SetSelection(vtkDataSet *input);
00130
00131 protected:
00132 vtkTemporalPathLineFilter();
00133 ~vtkTemporalPathLineFilter();
00134
00135
00136
00137
00138 virtual int FillInputPortInformation (int port, vtkInformation* info);
00139 virtual int FillOutputPortInformation(int port, vtkInformation* info);
00140
00142
00143 virtual int RequestInformation (vtkInformation *,
00144 vtkInformationVector **,
00145 vtkInformationVector *);
00146
00147 virtual int RequestData(vtkInformation *request,
00148 vtkInformationVector** inputVector,
00149 vtkInformationVector* outputVector);
00151
00152
00153 TrailPointer GetTrail(vtkIdType i);
00154 void IncrementTrail(
00155 TrailPointer trail, vtkDataSet *input, vtkIdType i);
00156
00157
00158 int NumberOfTimeSteps;
00159 int MaskPoints;
00160 unsigned int MaxTrackLength;
00161 unsigned int LastTrackLength;
00162 int FirstTime;
00163 char *IdChannelArray;
00164 double MaxStepDistance[3];
00165 double LatestTime;
00166 int KeepDeadTrails;
00167 int UsingSelection;
00168
00169
00170 vtkSmartPointer<vtkCellArray> PolyLines;
00171 vtkSmartPointer<vtkCellArray> Vertices;
00172 vtkSmartPointer<vtkPoints> LineCoordinates;
00173 vtkSmartPointer<vtkPoints> VertexCoordinates;
00174 vtkSmartPointer<vtkFloatArray> TrailId;
00175 vtkSmartPointer<vtkTemporalPathLineFilterInternals> Internals;
00176 vtkstd::set<vtkIdType> SelectionIds;
00177
00178
00179 private:
00180 vtkTemporalPathLineFilter(const vtkTemporalPathLineFilter&);
00181 void operator=(const vtkTemporalPathLineFilter&);
00182 };
00183
00184 #endif