Beispiel #1
0
    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));
    }
Beispiel #2
0
    public Texture2D GenerateTexture(int lod)
    {
        if (SatelliteImageService.UseSatelliteImage())
        {
            textureLod = 0;
        }
        else
        {
            textureLod = lod;
        }

        return(TextureGenerator.GenerateTexture(mapData, lod));
    }
Beispiel #3
0
 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));
     }
 }
Beispiel #4
0
 public void DoSwap()
 {
     SatelliteImageService.ToggleUseSatelliteImage();
     generator.UpdateTextures();
 }