@ -168,26 +168,32 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
							if  ( processing_mode  = =  0 )  
					 
					 
							if  ( processing_mode  = =  0 )  
				
			 
			
		
	
		
		
			
				
					 
					 
							{  
					 
					 
							{  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
								// 网络处理模式
  
				
			 
			
		
	
		
		
			
				
					 
					 
								//normalization part begin
  
					 
					 
								//normalization part begin
  
				
			 
			
		
	
		
		
			
				
					 
					 
								//[-0.9, 0.9]^3
  
					 
					 
								//[-0.9, 0.9]^3
  
				
			 
			
		
	
		
		
			
				
					 
					 
								std : : vector < TinyVector < double ,  3 > >  pts_nl ( mesh . get_vertices_list ( ) - > size ( ) ) ;  
					 
					 
								std : : vector < TinyVector < double ,  3 > >  pts_nl ( mesh . get_vertices_list ( ) - > size ( ) ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
								 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
								// 1. 计算模型的包围盒大小
  
				
			 
			
		
	
		
		
			
				
					 
					 
								double  max_range  =  mesh . xmax  -  mesh . xmin ;  
					 
					 
								double  max_range  =  mesh . xmax  -  mesh . xmin ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								max_range  =  max_range  <  ( mesh . ymax  -  mesh . ymin )  ?  ( mesh . ymax  -  mesh . ymin )  :  max_range ;  
					 
					 
								max_range  =  max_range  <  ( mesh . ymax  -  mesh . ymin )  ?  ( mesh . ymax  -  mesh . ymin )  :  max_range ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								max_range  =  max_range  <  ( mesh . zmax  -  mesh . zmin )  ?  ( mesh . zmax  -  mesh . zmin )  :  max_range ;  
					 
					 
								max_range  =  max_range  <  ( mesh . zmax  -  mesh . zmin )  ?  ( mesh . zmax  -  mesh . zmin )  :  max_range ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
								// 2. 计算模型中心点
  
				
			 
			
		
	
		
		
			
				
					 
					 
								double  xcenter  =  ( mesh . xmin  +  mesh . xmax )  /  2 ;  
					 
					 
								double  xcenter  =  ( mesh . xmin  +  mesh . xmax )  /  2 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								double  ycenter  =  ( mesh . ymin  +  mesh . ymax )  /  2 ;  
					 
					 
								double  ycenter  =  ( mesh . ymin  +  mesh . ymax )  /  2 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								double  zcenter  =  ( mesh . zmin  +  mesh . zmax )  /  2 ;  
					 
					 
								double  zcenter  =  ( mesh . zmin  +  mesh . zmax )  /  2 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								std : : cout  < <  " center  "  < <  xcenter  < <  "   "  < <  ycenter  < <  "   "  < <  zcenter  < <  std : : endl ;  
					 
					 
								std : : cout  < <  " center  "  < <  xcenter  < <  "   "  < <  ycenter  < <  "   "  < <  zcenter  < <  std : : endl ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
								// 3. 对每个顶点进行规范化
  
				
			 
			
		
	
		
		
			
				
					 
					 
								for  ( size_t  i  =  0 ;  i  <  mesh . get_vertices_list ( ) - > size ( ) ;  i + + )  
					 
					 
								for  ( size_t  i  =  0 ;  i  <  mesh . get_vertices_list ( ) - > size ( ) ;  i + + )  
				
			 
			
		
	
		
		
			
				
					 
					 
								{  
					 
					 
								{  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
									// 将顶点移动到中心,然后缩放到[-0.9, 0.9]范围
  
				
			 
			
		
	
		
		
			
				
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 0 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 0 ]  -  xcenter )  /  max_range  *  1.8 ;  
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 0 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 0 ]  -  xcenter )  /  max_range  *  1.8 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 1 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 1 ]  -  ycenter )  /  max_range  *  1.8 ;  
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 1 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 1 ]  -  ycenter )  /  max_range  *  1.8 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 2 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 2 ]  -  zcenter )  /  max_range  *  1.8 ;  
					 
					 
									mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 2 ]  =  ( mesh . get_vertices_list ( ) - > at ( i ) - > pos [ 2 ]  -  zcenter )  /  max_range  *  1.8 ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								}  
					 
					 
								}  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
								//output mesh 
  
					 
					 
								// 4. 输出规范化后的网格 
  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
								std : : string  outputext  =  GetFileExtension ( outputfile ) ;  
					 
					 
								std : : string  outputext  =  GetFileExtension ( outputfile ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
								if  ( outputext  = =  " obj " )  
					 
					 
								if  ( outputext  = =  " obj " )  
				
			 
			
		
	
		
		
			
				
					 
					 
								{  
					 
					 
								{