1 #ifndef _VTK_REEBSPACE_H
11 #define _VTK_REEBSPACE_H
23 #include <vtkCellArray.h>
24 #include <vtkCellData.h>
25 #include <vtkCharArray.h>
26 #include <vtkDataArray.h>
27 #include <vtkDoubleArray.h>
28 #include <vtkFiltersCoreModule.h>
29 #include <vtkFloatArray.h>
30 #include <vtkInformation.h>
31 #include <vtkInformationVector.h>
32 #include <vtkObjectFactory.h>
33 #include <vtkPointData.h>
34 #include <vtkSmartPointer.h>
35 #include <vtkUnstructuredGrid.h>
36 #include <vtkUnstructuredGridAlgorithm.h>
43 :
public vtkUnstructuredGridAlgorithm,
public Wrapper{
49 vtkTypeMacro(
vtkReebSpace, vtkUnstructuredGridAlgorithm);
52 vtkSetMacro(debugLevel_,
int);
56 threadNumber_ = ThreadNumber;
64 ThreadNumber = threadNumber;
74 vtkSetMacro(Ucomponent,
string);
75 vtkGetMacro(Ucomponent,
string);
77 vtkSetMacro(Vcomponent,
string);
78 vtkGetMacro(Vcomponent,
string);
80 vtkGetMacro(VaryingConnectivity,
bool);
81 vtkSetMacro(VaryingConnectivity,
bool);
83 vtkGetMacro(VaryingValues,
bool);
84 vtkSetMacro(VaryingValues,
bool);
87 vtkGetMacro(ZeroSheetId,
bool);
88 vtkSetMacro(ZeroSheetId,
bool);
90 vtkGetMacro(ZeroSheetType,
bool);
91 vtkSetMacro(ZeroSheetType,
bool);
93 vtkGetMacro(ZeroSheetValue,
bool);
94 vtkSetMacro(ZeroSheetValue,
bool);
96 vtkGetMacro(ZeroSheetVertexId,
bool);
97 vtkSetMacro(ZeroSheetVertexId,
bool);
101 vtkGetMacro(OneSheetId,
bool);
102 vtkSetMacro(OneSheetId,
bool);
104 vtkGetMacro(OneSheetType,
bool);
105 vtkSetMacro(OneSheetType,
bool);
107 vtkGetMacro(OneSheetValue,
bool);
108 vtkSetMacro(OneSheetValue,
bool);
110 vtkGetMacro(OneSheetVertexId,
bool);
111 vtkSetMacro(OneSheetVertexId,
bool);
113 vtkGetMacro(OneSheetEdgeId,
bool);
114 vtkSetMacro(OneSheetEdgeId,
bool);
117 vtkGetMacro(TwoSheets,
bool);
118 vtkSetMacro(TwoSheets,
bool);
120 vtkGetMacro(TwoSheetCaseId,
bool);
121 vtkSetMacro(TwoSheetCaseId,
bool);
123 vtkGetMacro(TwoSheetValue,
bool);
124 vtkSetMacro(TwoSheetValue,
bool);
126 vtkGetMacro(TwoSheetParameterization,
bool);
127 vtkSetMacro(TwoSheetParameterization,
bool);
129 vtkGetMacro(TwoSheetId,
bool);
130 vtkSetMacro(TwoSheetId,
bool);
132 vtkGetMacro(TwoSheetEdgeId,
bool);
133 vtkSetMacro(TwoSheetEdgeId,
bool);
135 vtkGetMacro(TwoSheetTetId,
bool);
136 vtkSetMacro(TwoSheetTetId,
bool);
138 vtkGetMacro(TwoSheetEdgeType,
bool);
139 vtkSetMacro(TwoSheetEdgeType,
bool);
141 vtkGetMacro(ThreeSheetTetNumber,
bool);
142 vtkSetMacro(ThreeSheetTetNumber,
bool);
144 vtkGetMacro(ThreeSheetVertexNumber,
bool);
145 vtkSetMacro(ThreeSheetVertexNumber,
bool);
147 vtkGetMacro(ThreeSheetExpansion,
bool);
148 vtkSetMacro(ThreeSheetExpansion,
bool);
150 vtkGetMacro(ThreeSheetDomainVolume,
bool);
151 vtkSetMacro(ThreeSheetDomainVolume,
bool);
153 vtkGetMacro(ThreeSheetRangeArea,
bool);
154 vtkSetMacro(ThreeSheetRangeArea,
bool);
156 vtkGetMacro(ThreeSheetHyperVolume,
bool);
157 vtkSetMacro(ThreeSheetHyperVolume,
bool);
159 vtkGetMacro(SimplificationThreshold,
double);
160 vtkSetMacro(SimplificationThreshold,
double);
162 vtkGetMacro(SimplificationCriterion,
int);
163 vtkSetMacro(SimplificationCriterion,
int);
175 info->Set(vtkDataObject::DATA_TYPE_NAME(),
"vtkUnstructuredGrid");
179 info->Set(vtkDataObject::DATA_TYPE_NAME(),
"vtkUnstructuredGrid");
183 info->Set(vtkDataObject::DATA_TYPE_NAME(),
"vtkUnstructuredGrid");
187 info->Set(vtkDataObject::DATA_TYPE_NAME(),
"vtkUnstructuredGrid");
193 int RequestData(vtkInformation *request,
194 vtkInformationVector **inputVector, vtkInformationVector *outputVector);
201 bool VaryingConnectivity, VaryingValues;
203 bool ZeroSheetValue, ZeroSheetVertexId, ZeroSheetType,
205 bool OneSheetValue, OneSheetVertexId, OneSheetType,
206 OneSheetId, OneSheetEdgeId;
208 TwoSheetCaseId, TwoSheetValue,
209 TwoSheetParameterization,
210 TwoSheetId, TwoSheetEdgeId, TwoSheetTetId,
212 bool ThreeSheetVertexNumber, ThreeSheetTetNumber,
214 ThreeSheetDomainVolume, ThreeSheetRangeArea,
215 ThreeSheetHyperVolume;
218 int SimplificationCriterion;
219 double SimplificationThreshold;
220 string Ucomponent, Vcomponent;
224 vector<pair<int, int> >
226 vector<vector<int> > edgeStars_;
227 vector<vector<pair<int, int> > >
228 edgeFanLinkEdgeList_;
229 vector<vector<long long int> >
231 vector<vector<int> > tetNeighbors_;
232 vector<vector<int> > vertexStars_;
234 vector<int> sosOffsets_;
236 vector<vector<int> > vertexEdgeList_;
242 template <
class dataTypeU,
class dataTypeV>
int baseCall(
243 vtkUnstructuredGrid *input,
244 vtkDataArray *uField,
245 vtkDataArray *vField);
247 template <
class dataTypeU,
class dataTypeV>
int preProcess(
248 vtkUnstructuredGrid *input,
249 vtkDataArray *uField,
250 vtkDataArray *vField);
253 int doIt(vtkUnstructuredGrid *input,
254 vtkUnstructuredGrid *sheet0, vtkUnstructuredGrid *sheet1,
255 vtkUnstructuredGrid *sheet2, vtkUnstructuredGrid *sheet3);
263 #endif // _VTK_REEBSPACE_H
virtual bool needsToAbort()=0
void SetThreadNumber(int threadNumber)
Definition: vtkReebSpace.h:63
ReebSpace processing package.
Definition: ReebSpace.h:33
virtual int updateProgress(const float &progress)=0
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Definition: vtkReebSpace.h:171
Wrapper class to wrap wtfit code.
Definition: Wrapper.h:15
static int getNumberOfCores()
Definition: Os.h:127
void SetThreads()
Definition: vtkReebSpace.h:54
VTK wrapper for the reebSpace package.
Definition: vtkReebSpace.h:42
void SetUseAllCores(bool onOff)
Definition: vtkReebSpace.h:68