public static ColorMap ColorMapForSatelliteImage(MapData mapData) { SatelliteImage satelliteImage = SatelliteImageService.getSatelliteImage(); double scale = satelliteImage.getScale(); int textureWidth = (int)(mapData.GetWidth() * scale); int textureHeight = (int)(mapData.GetHeight() * scale); Color[] colorArray = new Color[textureWidth * textureHeight]; if (!satelliteImage.hasSatelliteImage()) { return(new ColorMap(colorArray, textureWidth, textureHeight)); } MapDataSlice slice = mapData.AsSlice(); for (int y = 0; y < textureHeight; y++) { int sliceY = (int)(slice.GetY() * scale); int flippedY = satelliteImage.texture.height - (int)(sliceY + y) - 1; Array.ConstrainedCopy(satelliteImage.texture.GetPixels((int)(slice.GetX() * scale), flippedY, textureWidth, 1), 0, colorArray, (y * textureWidth), textureWidth); } return(new ColorMap(colorArray, textureWidth, textureHeight)); }
public Texture2D GenerateTexture(int lod) { if (SatelliteImageService.UseSatelliteImage()) { textureLod = 0; } else { textureLod = lod; } return(TextureGenerator.GenerateTexture(mapData, lod)); }
public static Texture2D GenerateTexture(MapData mapData, int lod) { if (SatelliteImageService.UseSatelliteImage()) { ColorMap colorMap = TextureGenerator.ColorMapForSatelliteImage(mapData); return(TextureGenerator.TextureFromColourMap(colorMap.colorArray, colorMap.width, colorMap.height)); } else { ColorMap colorMap = TextureGenerator.ColorMapForHeightAndAreas(mapData, lod); return(TextureGenerator.TextureFromColourMap(colorMap.colorArray, colorMap.width, colorMap.height)); } }
public void DoSwap() { SatelliteImageService.ToggleUseSatelliteImage(); generator.UpdateTextures(); }