public static ImageSetLayer Create(Imageset set) { ImageSetLayer isl = new ImageSetLayer(); isl.imageSet = set; return(isl); }
public static void UpdateImage(ImageSetLayer isl, double z) { FitsImage image = isl.ImageSet.WcsImage as FitsImage; SkyImageTile Tile = (SkyImageTile)TileCache.GetTile(0, 0, 0, isl.ImageSet, null); double low = image.lastBitmapMin; double hi = image.lastBitmapMax; Tile.texture2d = image.GetScaledBitmap(low, hi, image.lastScale, Math.Floor(z * (image.Depth - 1)), null).GetTexture(); }
public static void UpdateScale(ImageSetLayer isl, ScaleTypes scale, double low, double hi) { FitsImage image = isl.ImageSet.WcsImage as FitsImage; SkyImageTile Tile = (SkyImageTile)TileCache.GetTile(0, 0, 0, isl.ImageSet, null); int z = image.lastBitmapZ; string colorMapperName = image.lastBitmapColorMapperName; Tile.texture2d = image.GetScaledBitmap(low, hi, scale, z, colorMapperName).GetTexture(); }
public static void UpdateImage(ImageSetLayer isl, double z) { if (!RenderContext.UseGlVersion2) { FitsImageJs image = isl.ImageSet.WcsImage as FitsImageJs; SkyImageTile Tile = (SkyImageTile)TileCache.GetTile(0, 0, 0, isl.ImageSet, null); Tile.texture2d = image.GetBitmap().GetTexture(); } }
public static void UpdateColorMapper(ImageSetLayer isl, string colorMapperName) { isl.ImageSet.FitsProperties.ColorMapName = colorMapperName; if (!RenderContext.UseGlVersion2) { FitsImageJs image = isl.ImageSet.WcsImage as FitsImageJs; SkyImageTile Tile = (SkyImageTile)TileCache.GetTile(0, 0, 0, isl.ImageSet, null); Tile.texture2d = image.GetBitmap().GetTexture(); } }
public static Layer FromXml(XmlNode layerNode, bool someFlag) { string layerClassName = layerNode.Attributes.GetNamedItem("Type").Value.ToString(); string overLayType = layerClassName.Replace("TerraViewer.", ""); if (overLayType == null) { return(null); } Layer newLayer = null; switch (overLayType) { case "SpreadSheetLayer": newLayer = new SpreadSheetLayer(); break; case "GreatCirlceRouteLayer": newLayer = new GreatCirlceRouteLayer(); break; case "GridLayer": newLayer = new GridLayer(); break; case "ImageSetLayer": newLayer = new ImageSetLayer(); break; case "Object3dLayer": newLayer = new Object3dLayer(); break; case "OrbitLayer": newLayer = new OrbitLayer(); break; case "VoTableLayer": newLayer = new VoTableLayer(); break; default: return(null); } //Force inheritance. // TODO: Understand why this breaks in SS .8 //Script.Literal("for(var method in this){\n /*if (({}).toString.call(this[method]).match(/\\s([a-zA-Z]+)/)[1].toLowerCase() == 'function'){\n*/ newLayer[method] = this[method];/*\n}*/\n}"); newLayer.InitFromXml(layerNode); return(newLayer); }
public static void UpdateScale(ImageSetLayer isl, ScaleTypes scale, double low, double hi) { isl.ImageSet.FitsProperties.ScaleType = scale; isl.ImageSet.FitsProperties.LowerCut = low; isl.ImageSet.FitsProperties.UpperCut = hi; if (!RenderContext.UseGlVersion2) { FitsImageJs image = isl.ImageSet.WcsImage as FitsImageJs; SkyImageTile Tile = (SkyImageTile)TileCache.GetTile(0, 0, 0, isl.ImageSet, null); Tile.texture2d = image.GetBitmap().GetTexture(); } }
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); }
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); }
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); }
public string GetTourXML() { XmlTextWriter xmlWriter = new XmlTextWriter(); xmlWriter.Formatting = Formatting.Indented; xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); xmlWriter.WriteStartElement("Tour"); xmlWriter.WriteAttributeString("ID", this.id); xmlWriter.WriteAttributeString("Title", this.title); xmlWriter.WriteAttributeString("Descirption", this.Description); xmlWriter.WriteAttributeString("Description", this.Description); xmlWriter.WriteAttributeString("RunTime", ((double)this.RunTime / 1000.0).ToString()); xmlWriter.WriteAttributeString("Author", this.author); xmlWriter.WriteAttributeString("AuthorEmail", this.authorEmail); xmlWriter.WriteAttributeString("OrganizationUrl", this.organizationUrl); xmlWriter.WriteAttributeString("OrganizationName", this.OrgName); xmlWriter.WriteAttributeString("Keywords", this.Keywords); xmlWriter.WriteAttributeString("UserLevel", Enums.ToXml("UserLevel", (int)level)); xmlWriter.WriteAttributeString("Classification", Enums.ToXml("Classification", (int)type)); xmlWriter.WriteAttributeString("Taxonomy", taxonomy.ToString()); // xmlWriter.WriteAttributeString("DomeMode", DomeMode.ToString()); bool timeLineTour = IsTimelineTour(); xmlWriter.WriteAttributeString("TimeLineTour", timeLineTour.ToString()); xmlWriter.WriteStartElement("TourStops"); foreach (TourStop stop in TourStops) { stop.SaveToXml(xmlWriter, true); } xmlWriter.WriteEndElement(); List <Guid> masterList = CreateLayerMasterList(); // This will now save and sync emtpy frames... List <ReferenceFrame> referencedFrames = GetReferenceFrameList(); xmlWriter.WriteStartElement("ReferenceFrames"); foreach (ReferenceFrame item in referencedFrames) { item.SaveToXml(xmlWriter); } xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Layers"); foreach (Guid id in masterList) { if (LayerManager.LayerList.ContainsKey(id)) { Layer layer = LayerManager.LayerList[id]; string name = layer.Name; Imageset imageset = WWTControl.Singleton.RenderContext.GetCatalogHipsByName(name); if (imageset != null) { ImageSetLayer imageSetLayer = ImageSetLayer.Create(imageset); imageSetLayer.ID = id; imageSetLayer.Name = name; imageSetLayer.ReferenceFrame = "Sky"; imageSetLayer.SaveToXml(xmlWriter); } else { LayerManager.LayerList[id].SaveToXml(xmlWriter); } } } xmlWriter.WriteEndElement(); xmlWriter.WriteFullEndElement(); xmlWriter.Close(); return(xmlWriter.Body); }
public void FromXml(XmlDocument doc) { XmlNode root = Util.SelectSingleNode(doc, "Tour"); id = root.Attributes.GetNamedItem("ID").Value.ToString(); Title = root.Attributes.GetNamedItem("Title").Value.ToString(); Author = root.Attributes.GetNamedItem("Author").Value.ToString(); if (root.Attributes.GetNamedItem("Descirption") != null) { Description = root.Attributes.GetNamedItem("Descirption").Value; } if (root.Attributes.GetNamedItem("AuthorEmail") != null) { authorEmail = root.Attributes.GetNamedItem("AuthorEmail").Value; } if (root.Attributes.GetNamedItem("Keywords") != null) { Keywords = root.Attributes.GetNamedItem("Keywords").Value; } if (root.Attributes.GetNamedItem("OrganizationName") != null) { OrgName = root.Attributes.GetNamedItem("OrganizationName").Value; } organizationUrl = root.Attributes.GetNamedItem("OrganizationUrl").Value; level = (UserLevel)Enums.Parse("UserLevel", root.Attributes.GetNamedItem("UserLevel").Value); type = (Classification)Enums.Parse("Classification", root.Attributes.GetNamedItem("Classification").Value); taxonomy = root.Attributes.GetNamedItem("Taxonomy").Value.ToString(); XmlNode TourStops = Util.SelectSingleNode(root, "TourStops"); foreach (XmlNode tourStop in TourStops.ChildNodes) { if (tourStop.Name == "TourStop") { AddTourStop(TourStop.FromXml(this, tourStop)); } } XmlNode Frames = Util.SelectSingleNode(root, "ReferenceFrames"); if (Frames != null) { foreach (XmlNode frame in Frames.ChildNodes) { if (frame.Name == "ReferenceFrame") { ReferenceFrame newFrame = new ReferenceFrame(); newFrame.InitializeFromXml(frame); if (!LayerManager.AllMaps.ContainsKey(newFrame.Name)) { LayerMap map = new LayerMap(newFrame.Name, ReferenceFrames.Custom); map.Frame = newFrame; map.LoadedFromTour = true; LayerManager.AllMaps[newFrame.Name] = map; } } } LayerManager.ConnectAllChildren(); LayerManager.LoadTree(); } XmlNode Layers = Util.SelectSingleNode(root, "Layers"); if (Layers != null) { foreach (XmlNode layer in Layers.ChildNodes) { if (layer.Name == "Layer") { Layer newLayer = Layer.FromXml(layer, true);//.Layer.FromXml(layer, true); if (newLayer != null) { if (newLayer is ImageSetLayer) { ImageSetLayer imageSetLayer = (ImageSetLayer)newLayer; Imageset imageset = imageSetLayer.ImageSet; if (imageset.Projection == ProjectionType.Healpix && imageset.Extension == ".tsv") { WWTControl.Singleton.AddCatalogHips(imageset); continue; } } string fileName = string.Format("{0}.txt", newLayer.ID.ToString()); if (LayerManager.LayerList.ContainsKey(newLayer.ID)) // && newLayer.ID != ISSLayer.ISSGuid) { //if (!CollisionChecked) //{ // if (UiTools.ShowMessageBox(Language.GetLocalizedText(958, "There are layers with the same name. Overwrite existing layers?"), Language.GetLocalizedText(3, "Microsoft WorldWide Telescope"), System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) // { // OverWrite = true; // } // else // { // OverWrite = false; // } // CollisionChecked = true; //} //if (OverWrite) //{ LayerManager.DeleteLayerByID(newLayer.ID, true, false); //} } try { newLayer.LoadedFromTour = true; newLayer.LoadData(this, fileName); LayerManager.Add(newLayer, false); } catch { } } } } LayerManager.LoadTree(); } //todo author //if (File.Exists(WorkingDirectory + "Author.png")) //{ // authorImage = UiTools.LoadBitmap(WorkingDirectory + "Author.png"); //} tourDirty = 0; }