Beispiel #1
0
        private static ImageSetLayer AddImageSet(string name, bool gotoTarget, ImagesetLoaded loaded, Imageset imageset)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                name = LayerManager.GetNextImageSetName();
            }
            ImageSetLayer imagesetLayer = LayerManager.AddImageSetLayer(imageset, name);

            if (gotoTarget)
            {
                WWTControl.Singleton.GotoRADecZoom(imageset.CenterX / 15, imageset.CenterY,
                                                   WWTControl.Singleton.RenderContext.ViewCamera.Zoom, false, null);
            }
            if (loaded != null)
            {
                loaded(imagesetLayer);
            }

            return(imagesetLayer);
        }
Beispiel #2
0
        private static ImageSetLayer AddImageSet(string name, bool gotoTarget, ImagesetLoaded loaded, Imageset imageset)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                name = LayerManager.GetNextImageSetName();
            }

            ImageSetLayer imagesetLayer = LayerManager.AddImageSetLayerCallback(imageset, name, loaded);

            if (gotoTarget)
            {
                double zoom = imageset.GuessZoomSetting(WWTControl.Singleton.RenderContext.ViewCamera.Zoom);

                WWTControl.Singleton.GotoRADecZoom(
                    imageset.ViewCenterX / 15,
                    imageset.ViewCenterY,
                    zoom,
                    false,
                    null
                    );
            }

            return(imagesetLayer);
        }
Beispiel #3
0
        private static ImageSetLayer AddFitsLayer(string url, string name, bool gotoTarget, ImagesetLoaded loaded)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                name = LayerManager.GetNextFitsName();
            }

            ImageSetLayer imagesetLayer = new ImageSetLayer();
            Imageset      imageset      = new Imageset();

            WcsLoaded wcsLoaded = delegate(WcsImage wcsImage)
            {
                if (((FitsImage)wcsImage).errored)
                {
                    return;
                }

                int width  = (int)wcsImage.SizeX;
                int height = (int)wcsImage.SizeY;
                //TODO make sure dataset URL is unique
                imageset.SetInitialParameters(
                    wcsImage.Description,
                    wcsImage.Filename,
                    ImageSetType.Sky,
                    BandPass.Visible,
                    ProjectionType.SkyImage,
                    Util.GetHashCode(wcsImage.Filename),
                    0,
                    0,
                    wcsImage.ScaleY,
                    ".fits",
                    wcsImage.ScaleX > 0,
                    "",
                    wcsImage.CenterX,
                    wcsImage.CenterY,
                    wcsImage.Rotation,
                    false,
                    "",
                    false,
                    false,
                    1,
                    wcsImage.ReferenceX,
                    wcsImage.ReferenceY,
                    wcsImage.Copyright,
                    wcsImage.CreditsUrl,
                    "",
                    "",
                    0,
                    ""
                    );

                imageset.WcsImage      = wcsImage;
                imagesetLayer.ImageSet = imageset;
                LayerManager.AddFitsImageSetLayer(imagesetLayer, name);

                if (gotoTarget)
                {
                    double zoom = imageset.GuessZoomSetting(WWTControl.Singleton.RenderContext.ViewCamera.Zoom);

                    WWTControl.Singleton.GotoRADecZoom(
                        wcsImage.ViewCenterX / 15,
                        wcsImage.ViewCenterY,
                        zoom,
                        false,
                        null
                        );
                }

                if (loaded != null)
                {
                    loaded(imagesetLayer);
                }
            };

            if (string.IsNullOrWhiteSpace(name))
            {
                name = LayerManager.GetNextFitsName();
            }

            if (RenderContext.UseGlVersion2)
            {
                new FitsImage(imageset, url, null, wcsLoaded);
            }
            else
            {
                new FitsImageJs(imageset, url, null, wcsLoaded);
            }
            return(imagesetLayer);
        }
Beispiel #4
0
 public ImageSetLayer AddImageSetLayer(string url, string mode, string name, bool gotoTarget, ImagesetLoaded loaded)
 {
     if (mode != null && mode.ToLowerCase() == "fits")
     {
         return(AddFitsLayer(url, name, gotoTarget, loaded));
     }
     else if (mode != null && mode.ToLowerCase() == "preloaded")
     {
         Imageset imageset = WWTControl.Singleton.GetImageSetByUrl(url);
         if (imageset != null)
         {
             return(AddImageSet(name, gotoTarget, loaded, imageset));
         }
     }
     else
     {
         Imageset imageset = WWTControl.Singleton.GetImageSetByUrl(url);
         if (imageset != null)
         {
             return(AddImageSet(name, gotoTarget, loaded, imageset));
         }
         else if (ContainsFitsLikeExtentsion(url))
         {
             return(AddFitsLayer(url, name, gotoTarget, loaded));
         }
     }
     return(null);
 }
Beispiel #5
0
 public ImageSetLayer LoadFitsLayer(string url, string name, bool gotoTarget, ImagesetLoaded loaded)
 {
     return(AddImageSetLayer(url, "fits", name, gotoTarget, loaded));
 }
Beispiel #6
0
        public ImageSetLayer LoadFitsLayer(string url, string name, bool gotoTarget, ImagesetLoaded loaded)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                name = LayerManager.GetNextFitsName();
            }

            ImageSetLayer imagesetLayer = new ImageSetLayer();

            FitsImage img = new FitsImage(url, null, delegate(WcsImage wcsImage)
            {
                int width  = (int)wcsImage.SizeX;
                int height = (int)wcsImage.SizeY;

                Imageset imageset = Imageset.Create(
                    wcsImage.Description,
                    Util.GetHashCode(wcsImage.Filename).ToString(),
                    ImageSetType.Sky,
                    BandPass.Visible,
                    ProjectionType.SkyImage,
                    Util.GetHashCode(wcsImage.Filename),
                    0,
                    0,
                    256,
                    wcsImage.ScaleY,
                    ".tif",
                    wcsImage.ScaleX > 0,
                    "",
                    wcsImage.CenterX,
                    wcsImage.CenterY,
                    wcsImage.Rotation,
                    false,
                    "",
                    false,
                    false,
                    1,
                    wcsImage.ReferenceX,
                    wcsImage.ReferenceY,
                    wcsImage.Copyright,
                    wcsImage.CreditsUrl,
                    "",
                    "",
                    0,
                    ""
                    );

                imageset.WcsImage      = wcsImage;
                imagesetLayer.ImageSet = imageset;
                LayerManager.AddFitsImageSetLayer(imagesetLayer, name);
                LayerManager.LoadTree();
                if (gotoTarget)
                {
                    WWTControl.Singleton.GotoRADecZoom(wcsImage.CenterX / 15, wcsImage.CenterY, 10 * wcsImage.ScaleY * height, false);
                }
                if (loaded != null)
                {
                    loaded(imagesetLayer);
                }
            });

            return(imagesetLayer);
        }