|  |  |  | @ -405,32 +405,29 @@ public class HeightMap {@@ -405,32 +405,29 @@ public class HeightMap { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public float getInterpolatedTerrainHeight(Vector2f zoneLoc) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Vector2f gridSquare; | 
			
		
	
		
			
				
					|  |  |  |  |         float interpolatedHeight; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         gridSquare = getGridSquare(zoneLoc); | 
			
		
	
		
			
				
					|  |  |  |  |         Vector2f gridSquare = getGridSquare(zoneLoc); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int gridX = (int) gridSquare.x; | 
			
		
	
		
			
				
					|  |  |  |  |         int gridY = (int) gridSquare.y; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         float offsetX = (gridSquare.x - gridX); | 
			
		
	
		
			
				
					|  |  |  |  |         float offsetY = gridSquare.y - gridY; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //get height of the 4 vertices.
 | 
			
		
	
		
			
				
					|  |  |  |  |         //get 4 surrounding vertices from the pixel array.
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         float topLeftHeight; | 
			
		
	
		
			
				
					|  |  |  |  |         float topRightHeight; | 
			
		
	
		
			
				
					|  |  |  |  |         float bottomLeftHeight; | 
			
		
	
		
			
				
					|  |  |  |  |         float bottomRightHeight; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int nextY = gridY + 1; | 
			
		
	
		
			
				
					|  |  |  |  |         int nextX = gridX + 1; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         topLeftHeight = pixelColorValues[gridX][gridY]; | 
			
		
	
		
			
				
					|  |  |  |  |         topRightHeight = pixelColorValues[nextX][gridY]; | 
			
		
	
		
			
				
					|  |  |  |  |         bottomLeftHeight = pixelColorValues[gridX][nextY]; | 
			
		
	
		
			
				
					|  |  |  |  |         bottomRightHeight = pixelColorValues[nextX][nextY]; | 
			
		
	
		
			
				
					|  |  |  |  |         topRightHeight = pixelColorValues[gridX + 1][gridY]; | 
			
		
	
		
			
				
					|  |  |  |  |         bottomLeftHeight = pixelColorValues[gridX][gridY + 1]; | 
			
		
	
		
			
				
					|  |  |  |  |         bottomRightHeight = pixelColorValues[gridX + 1][gridY + 1]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         float interpolatedHeight; | 
			
		
	
		
			
				
					|  |  |  |  |         // Interpolate between the 4 vertices
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         float offsetX = (gridSquare.x - gridX); | 
			
		
	
		
			
				
					|  |  |  |  |         float offsetY = gridSquare.y - gridY; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         interpolatedHeight = topRightHeight * (1 - offsetY) * (offsetX); | 
			
		
	
		
			
				
					|  |  |  |  |         interpolatedHeight += (bottomRightHeight * offsetY * offsetX); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |