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); }
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); }