| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -116,6 +116,7 @@ namespace ssim { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Eigen::VectorXi DBC_i_faceIdx = getSurfTriForBox(DBC.absMinBBox, DBC.absMaxBBox); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DBC_faceIdx_.conservativeResize(cnt + DBC_i_faceIdx.size()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DBC_faceIdx_.segment(cnt, DBC_i_faceIdx.size()) = DBC_i_faceIdx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                cnt += DBC_i_faceIdx.size(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::set<int> DBC_faceIdx_set(DBC_faceIdx_.data(), DBC_faceIdx_.data() + DBC_faceIdx_.size()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::vector<int> DBC_faceIdx_vec(DBC_faceIdx_set.begin(), DBC_faceIdx_set.end()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -130,6 +131,12 @@ namespace ssim { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::vector<int> DBC_vertexIdx_vec(DBC_vertex_set.begin(), DBC_vertex_set.end()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            DBC_vertexIdx_ = Eigen::Map<Eigen::VectorXi>(DBC_vertexIdx_vec.data(), DBC_vertexIdx_vec.size());; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Eigen::MatrixXd DBCV(DBC_vertexIdx_.size(), 3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (int i_ = 0; i_ < DBC_vertexIdx_.size(); ++i_) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DBCV.row(i_) = TV.row(SVI(DBC_vertexIdx_(i_))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            writePntVTK("/home/cw/Downloads/DBCV.vtk", DBCV); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            int cnt = 0; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -137,6 +144,7 @@ namespace ssim { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Eigen::VectorXi NBC_i_faceIdx = getSurfTriForBox(NBC.absMinBBox, NBC.absMaxBBox); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                NBC_faceIdx_.conservativeResize(cnt + NBC_i_faceIdx.size()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                NBC_faceIdx_.segment(cnt, NBC_i_faceIdx.size()) = NBC_i_faceIdx; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                cnt += NBC_i_faceIdx.size(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::set<int> NBC_faceIdx_set(NBC_faceIdx_.data(), NBC_faceIdx_.data() + NBC_faceIdx_.size()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::vector<int> NBC_faceIdx_vec(NBC_faceIdx_set.begin(), NBC_faceIdx_set.end()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -151,6 +159,12 @@ namespace ssim { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            std::vector<int> NBC_vertexIdx_vec(NBC_vertex_set.begin(), NBC_vertex_set.end()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            NBC_vertexIdx_ = Eigen::Map<Eigen::VectorXi>(NBC_vertexIdx_vec.data(), NBC_vertexIdx_vec.size());; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Eigen::MatrixXd NBCV(NBC_vertexIdx_.size(), 3); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (int i_ = 0; i_ < NBC_vertexIdx_.size(); ++i_) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                NBCV.row(i_) = TV.row(SVI(NBC_vertexIdx_(i_))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            writePntVTK("/home/cw/Downloads/NBCV.vtk", NBCV); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |