WTFIT
JacobiSet.h
Go to the documentation of this file.
1 
16 #ifndef _JACOBISET_H
17 #define _JACOBISET_H
18 
19 // base code includes
20 #include <ZeroSkeleton.h>
21 #include <OneSkeleton.h>
23 #include <Wrapper.h>
24 
25 
26 namespace wtfit{
27 
28  template <class dataTypeU, class dataTypeV> class JacobiSet : public Debug{
29 
30  public:
31 
32  JacobiSet();
33 
34  ~JacobiSet();
35 
36  int connectivityPreprocessing(const vector<vector<int> > &edgeStarList,
37  vector<vector<pair<int, int> > > &edgeFanLinkEdgeLists,
38  vector<vector<long long int> > &edgeFans,
39  vector<int> &sosOffsets) const;
40 
41  int execute(vector<pair<int, char> > &jacobiSet);
42 
43  int perturbate(const dataTypeU &uEpsilon = pow(10, -DBL_DIG),
44  const dataTypeV &vEpsilon = pow(10, -DBL_DIG)) const;
45 
46  int setEdgeFans(const vector<vector<long long int> > *edgeFans){
47  edgeFans_ = edgeFans;
48  return 0;
49  }
50 
52  const vector<vector<pair<int, int> > > *edgeFanLinkEdgeLists){
53  edgeFanLinkEdgeLists_ = edgeFanLinkEdgeLists;
54  return 0;
55  }
56 
57  int setEdgeList(const vector<pair<int, int> > *edgeList){
58  edgeList_ = edgeList;
59  return 0;
60  }
61 
62  int setInputField(const void *uField, const void *vField){
63 
64  uField_ = uField;
65  vField_ = vField;
66  return 0;
67  }
68 
69  int setSosOffsets(vector<int> *sosOffsets){
70  sosOffsets_ = sosOffsets;
71  return 0;
72  }
73 
74  // NOTE: here it's not clear how vtk builds vtkIdType
75  // to check on bigger data-sets
76  int setTetList(const long long int *tetList){
77  tetList_ = tetList;
78  return 0;
79  }
80 
81  int setVertexNumber(const int &vertexNumber){
82  vertexNumber_ = vertexNumber;
83  return 0;
84  }
85 
86  protected:
87 
89  const long long int *tetList_;
90  const void *uField_, *vField_;
91  const vector<pair<int, int> > *edgeList_;
92  // for each edge, one skeleton of its triangle fan
93  const vector<vector<pair<int, int> > > *edgeFanLinkEdgeLists_;
94  // for each edge, the one skeleton of its triangle fan
95  const vector<vector<long long int> > *edgeFans_;
96  vector<int> *sosOffsets_;
97  };
98 }
99 
100 // if the package is not a template, comment the following line
101 #include <JacobiSet.cpp>
102 
103 #endif // JACOBISET_H
int setEdgeList(const vector< pair< int, int > > *edgeList)
Definition: JacobiSet.h:57
int perturbate(const dataTypeU &uEpsilon=pow(10,-DBL_DIG), const dataTypeV &vEpsilon=pow(10,-DBL_DIG)) const
Definition: JacobiSet.cpp:386
int setEdgeFanLinkEdgeList(const vector< vector< pair< int, int > > > *edgeFanLinkEdgeLists)
Definition: JacobiSet.h:51
const long long int * tetList_
Definition: JacobiSet.h:89
int connectivityPreprocessing(const vector< vector< int > > &edgeStarList, vector< vector< pair< int, int > > > &edgeFanLinkEdgeLists, vector< vector< long long int > > &edgeFans, vector< int > &sosOffsets) const
Definition: JacobiSet.cpp:26
int execute(vector< pair< int, char > > &jacobiSet)
Definition: JacobiSet.cpp:186
JacobiSet processing package.
Definition: JacobiSet.h:28
~JacobiSet()
Definition: JacobiSet.cpp:21
const void * uField_
Definition: JacobiSet.h:90
int setVertexNumber(const int &vertexNumber)
Definition: JacobiSet.h:81
int setTetList(const long long int *tetList)
Definition: JacobiSet.h:76
int setEdgeFans(const vector< vector< long long int > > *edgeFans)
Definition: JacobiSet.h:46
const vector< vector< long long int > > * edgeFans_
Definition: JacobiSet.h:95
JacobiSet()
Definition: JacobiSet.cpp:4
int vertexNumber_
Definition: JacobiSet.h:88
const vector< vector< pair< int, int > > > * edgeFanLinkEdgeLists_
Definition: JacobiSet.h:93
Minimalist debugging class.
Definition: Debug.h:39
vector< int > * sosOffsets_
Definition: JacobiSet.h:96
int setSosOffsets(vector< int > *sosOffsets)
Definition: JacobiSet.h:69
const vector< pair< int, int > > * edgeList_
Definition: JacobiSet.h:91
int setInputField(const void *uField, const void *vField)
Definition: JacobiSet.h:62
Definition: CommandLineParser.h:13
const void * vField_
Definition: JacobiSet.h:90