|
|
@ -24,6 +24,14 @@ public: |
|
|
|
vector<vector<glm::vec3>> f_tangent_u; |
|
|
|
vector<vector<glm::vec3>> f_tangent_v; |
|
|
|
|
|
|
|
// 有向距离计算结果。有向距离通过采样的方式计算,其结果与s曲面sub patch中的采样网格规模相同,即与s_evaluation大小一致
|
|
|
|
// vector<vector<glm::vec3>> distance;
|
|
|
|
// 确定有向距离后,对应的f曲面上的最短距离点的位置
|
|
|
|
vector<vector<pair<int, int>>> selectedPointsIdx; |
|
|
|
// vector fields, 即有向距离关于u、v的导数
|
|
|
|
vector<vector<glm::vec2>> vectorFields; |
|
|
|
vector<vector<int>> rotationNumbers; |
|
|
|
|
|
|
|
// int subPatchEdgeSampleCnt; // 在一个sub patch的采样网格中,边上的采样点个数
|
|
|
|
// void init(tinynurbs::RationalSurface<float> _s, tinynurbs::RationalSurface<float> _f, int _maxSplitLayer);
|
|
|
|
vector<pair<int, int>> detect(pair<int, int> _s_subPatchIdxRange_u, pair<int, int> _s_subPatchIdxRange_v, |
|
|
@ -44,13 +52,6 @@ private: |
|
|
|
// 整个曲面一条边上的采样点个数
|
|
|
|
int edgeSampleCnt; |
|
|
|
|
|
|
|
// 有向距离计算结果。有向距离通过采样的方式计算,其结果与s曲面sub patch中的采样网格规模相同,即与s_evaluation大小一致
|
|
|
|
// vector<vector<glm::vec3>> distance;
|
|
|
|
// 确定有向距离后,对应的f曲面上的最短距离点的位置
|
|
|
|
vector<vector<pair<int, int>>> selectedPointsIdx; |
|
|
|
// vector fields, 即有向距离关于u、v的导数
|
|
|
|
vector<vector<glm::vec2>> vectorFields; |
|
|
|
|
|
|
|
void initEvaluation(); |
|
|
|
|
|
|
|
void initOrientedDistance(); |
|
|
|