Example #1
0
 public override void RequestImage()
 {
     if (IsCatalogTile)
     {
         if (!Downloading && !ReadyToRender)
         {
             Downloading = true;
             catalogData = new WebFile(this.URL);
             catalogData.OnStateChange = LoadCatalogData;
             catalogData.Send();
         }
     }
     else if (GetHipsFileExtention() == ".fits")
     {
         if (!Downloading && !ReadyToRender)
         {
             Downloading = true;
             if (RenderContext.UseGlVersion2)
             {
                 fitsImage = new FitsImageTile(dataset, URL, delegate(WcsImage wcsImage)
                 {
                     Downloading = false;
                     errored     = fitsImage.errored;
                     TileCache.RemoveFromQueue(this.Key, true);
                     if (!fitsImage.errored)
                     {
                         texReady       = true;
                         ReadyToRender  = texReady && (DemReady || !demTile);
                         RequestPending = false;
                         MakeTexture();
                     }
                 });
             }
             else
             {
                 FitsImageJs image = FitsImageJs.CreateHipsTile(dataset, URL, delegate(WcsImage wcsImage)
                 {
                     texReady       = true;
                     Downloading    = false;
                     errored        = false;
                     ReadyToRender  = texReady && (DemReady || !demTile);
                     RequestPending = false;
                     TileCache.RemoveFromQueue(this.Key, true);
                     texture2d = wcsImage.GetBitmap().GetTexture();
                 });
             }
         }
     }
     else
     {
         base.RequestImage();
     }
 }
Example #2
0
        public override void RequestImage()
        {
            fitsImage = dataset.WcsImage as FitsImage;
            if (fitsImage != null)
            {
                texReady       = true;
                Downloading    = false;
                errored        = fitsImage.errored;
                RequestPending = false;
                TileCache.RemoveFromQueue(this.Key, true);
                if (RenderContext.UseGlVersion2)
                {
                    MakeTexture();
                    ReadyToRender = true;
                }
                else
                {
                    bmp           = fitsImage.GetBitmap();
                    texture2d     = bmp.GetTexture();
                    ReadyToRender = true;
                }
            }
            else if (dataset.Extension == ".fits" && dataset.WcsImage == null)
            {
                if (!Downloading && !ReadyToRender)
                {
                    Downloading = true;
                    if (RenderContext.UseGlVersion2)
                    {
                        fitsImage = new FitsImageTile(dataset, URL, delegate(WcsImage wcsImage)
                        {
                            Downloading = false;
                            errored     = fitsImage.errored;
                            TileCache.RemoveFromQueue(this.Key, true);
                            if (!fitsImage.errored)
                            {
                                // For a non-HiPS tiled FITS, this is our
                                // mechanism for notifying the layer creator
                                // that the initial FITS data have loaded and
                                // the FitsProperties can be trusted.
                                if (Level == 0)
                                {
                                    dataset.FitsProperties.FireMainImageLoaded(fitsImage);
                                }

                                texReady       = true;
                                ReadyToRender  = texReady && (DemReady || !demTile);
                                RequestPending = false;
                                MakeTexture();
                                ReadyToRender = true;
                            }
                        });
                    }
                    else
                    {
                        fitsImage = FitsImageJs.CreateTiledFits(dataset, URL, delegate(WcsImage wcsImage)
                        {
                            if (Level == 0)
                            {
                                dataset.FitsProperties.FireMainImageLoaded(fitsImage);
                            }

                            texReady       = true;
                            Downloading    = false;
                            errored        = fitsImage.errored;
                            ReadyToRender  = texReady && (DemReady || !demTile);
                            RequestPending = false;
                            TileCache.RemoveFromQueue(this.Key, true);
                            bmp           = wcsImage.GetBitmap();
                            texture2d     = bmp.GetTexture();
                            ReadyToRender = true;
                        });
                    }
                }
            }
            else
            {
                base.RequestImage();
            }
        }