VMTK
vtkvmtkStaticTemporalStreamTracer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkvmtkStaticTemporalStreamTracer.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 =========================================================================*/
15 /*=========================================================================
16 
17 Program: VMTK
18 Language: C++
19 
20  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
21  See LICENSE file for details.
22 
23  Portions of this code are covered under the VTK copyright.
24  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
25  for details.
26 
27  This software is distributed WITHOUT ANY WARRANTY; without even
28  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
29  PURPOSE. See the above copyright notices for more information.
30 
31 =========================================================================*/
32 
39 #ifndef __vtkvmtkStaticTemporalStreamTracer_h
40 #define __vtkvmtkStaticTemporalStreamTracer_h
41 
42 #include "vtkStreamTracer.h"
43 #include "vtkvmtkWin32Header.h"
44 
45 class vtkTable;
46 
47 class VTK_VMTK_MISC_EXPORT vtkvmtkStaticTemporalStreamTracer : public vtkStreamTracer
48 {
49 public:
50  vtkTypeMacro(vtkvmtkStaticTemporalStreamTracer,vtkStreamTracer);
51  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
52 
54 
55  vtkSetMacro(SeedTime, double);
56  vtkGetMacro(SeedTime, double);
57 
58  vtkSetStringMacro(SeedTimesArrayName);
59  vtkGetStringMacro(SeedTimesArrayName);
60 
61  vtkSetMacro(Periodic, int);
62  vtkGetMacro(Periodic, int);
63  vtkBooleanMacro(Periodic, int);
64 
65  vtkSetMacro(VelocityScale, double);
66  vtkGetMacro(VelocityScale, double);
67 
68  vtkGetObjectMacro(TimeStepsTable,vtkTable);
69  virtual void SetTimeStepsTable(vtkTable*);
70 
71  vtkSetMacro(UseVectorComponents, int);
72  vtkGetMacro(UseVectorComponents, int);
73  vtkBooleanMacro(UseVectorComponents, int);
74 
75  vtkSetStringMacro(VectorPrefix);
76  vtkGetStringMacro(VectorPrefix);
77 
78  vtkSetStringMacro(Component0Prefix);
79  vtkGetStringMacro(Component0Prefix);
80 
81  vtkSetStringMacro(Component1Prefix);
82  vtkGetStringMacro(Component1Prefix);
83 
84  vtkSetStringMacro(Component2Prefix);
85  vtkGetStringMacro(Component2Prefix);
86 
87 protected:
88 
91 
92  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
93 
94  void InitializeDefaultInterpolatorPrototype();
95 
96  int CheckInputs(vtkAbstractInterpolatedVelocityField*& func, int* maxCellSize);
97 
98  void InitializeSeeds(vtkDataArray*& seeds,
99  vtkIdList*& seedIds,
100  vtkDoubleArray*& startTimes,
101  vtkIntArray*& integrationDirections,
102  vtkDataSet *source);
103 
104  void Integrate(vtkDataSet *input,
105  vtkPolyData* output,
106  vtkDataArray* seedSource,
107  vtkIdList* seedIds,
108  vtkDoubleArray* startTimes,
109  vtkIntArray* integrationDirections,
110  double lastPoint[3],
111  vtkAbstractInterpolatedVelocityField* func,
112  int maxCellSize,
113  double& propagation,
114  vtkIdType& numSteps);
115 
116  double SeedTime;
118  int Periodic;
119 
121 
126 
127  vtkTable* TimeStepsTable;
128 
130 
131 private:
133  void operator=(const vtkvmtkStaticTemporalStreamTracer&); // Not implemented.
134 };
135 
136 
137 #endif
138 
139