| 
					
				 | 
			
			
				@@ -207,15 +207,11 @@ float Path::curvedCost(const int3& src, const int3& dst, const int3& center) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	float W = 10.0f;// width of the transition area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	float A = 0.7f; // sine bias 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Euclidean step distance: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float dx = dst.x - src.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float dy = dst.y - src.y; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float d = std::sqrt(dx*dx + dy*dy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Euclidean distance: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    float d = src.dist2d(dst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Distance from dst to the zone center: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float rx = dst.x - center.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float ry = dst.y - center.y; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    float r = std::sqrt(rx*rx + ry*ry); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    float r = dst.dist2d(center); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Compute normalized offset inside the zone: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // (R - W) is the inner edge, R is the outer edge. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -232,11 +228,8 @@ Path::MoveCostFunction Path::createCurvedCostFunction(const Area & border) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// Capture by value to ensure the Area object persists 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return [border = border](const int3& src, const int3& dst) -> float 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// Route main roads far from border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//float ret = dst.dist2d(src); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//float ret = nonEuclideanCostFunction(src, dst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		float ret = curvedCost(src, dst, border.getCenterOfMass()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// Route main roads far from border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		float dist = border.distanceSqr(dst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(dist > 1.0f) 
			 |