| 
						
						
							
								
							
						
						
					 | 
					@ -24,6 +24,14 @@ public: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    vector<vector<glm::vec3>> f_tangent_u; | 
					 | 
					 | 
					    vector<vector<glm::vec3>> f_tangent_u; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    vector<vector<glm::vec3>> f_tangent_v; | 
					 | 
					 | 
					    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的采样网格中,边上的采样点个数
 | 
					 | 
					 | 
					//    int subPatchEdgeSampleCnt;  // 在一个sub patch的采样网格中,边上的采样点个数
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					//    void init(tinynurbs::RationalSurface<float> _s, tinynurbs::RationalSurface<float> _f, int _maxSplitLayer);
 | 
					 | 
					 | 
					//    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, | 
					 | 
					 | 
					    vector<pair<int, int>> detect(pair<int, int> _s_subPatchIdxRange_u, pair<int, int> _s_subPatchIdxRange_v, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -44,13 +52,6 @@ private: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // 整个曲面一条边上的采样点个数
 | 
					 | 
					 | 
					    // 整个曲面一条边上的采样点个数
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    int edgeSampleCnt; | 
					 | 
					 | 
					    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 initEvaluation(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    void initOrientedDistance(); | 
					 | 
					 | 
					    void initOrientedDistance(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |