/// <summary> /// Layer selection changed event /// </summary> /// <param name="sender">Layer map dropdown</param> /// <param name="e">Routed event</param> private void LayerModelLayerSelectionChangedEvent(object sender, EventArgs e) { LayerMap currentlayer = sender as LayerMap; // It is expected to be null Assert.IsNull(currentlayer); }
public void UpdateHeaderPropertiesTest() { Application application = new Application(); try { Workbook book = application.OpenWorkbook("WorkbookTestData.xlsx", false); // Get the named range stored in the test data excel file. // This range refers to address "$A$1:$D$7". Name oldName = book.Names.GetNamedRange("GetSelectedLayerWorksheet"); Name newName = book.Names.GetNamedRange("UpdateHeaderPropertiesTestRADEC"); LayerMap selectedlayer = new LayerMap(oldName); Range selectedRange = newName.RefersToRange; LayerMapExtensions.UpdateHeaderProperties(selectedlayer, selectedRange); Assert.AreEqual(selectedlayer.MappedColumnType[0], ColumnType.RA); Assert.AreEqual(selectedlayer.MappedColumnType[1], ColumnType.Dec); } finally { application.Close(); } }
public void LayerSelectionHandlerExecuteTest() { LayerDetailsViewModel layerDetailsViewModel = new LayerDetailsViewModel(); layerDetailsViewModel.LayerSelectionChangedEvent += new EventHandler(LayerModelLayerSelectionChangedEvent); LayerMapDropDownViewModel layerMapDropDown = new LayerMapDropDownViewModel(); layerMapDropDown.ID = "1"; layerMapDropDown.Name = "Select One"; Layer layer = new Layer(); layer.Name = "Layer1"; LayerMap layerMap = new LayerMap(layer); layerMap.MapType = LayerMapType.Local; layerMap.HeaderRowData = new Collection <string>(); layerMap.MappedColumnType = new Collection <ColumnType>(); layerDetailsViewModel.Currentlayer = layerMap; LayerDetailsViewModel_Accessor.LayerSelectionHandler target = new LayerDetailsViewModel_Accessor.LayerSelectionHandler(layerDetailsViewModel); target.Execute(layerMapDropDown); Assert.IsNull(layerDetailsViewModel.Currentlayer); }
public void IsLayerCreatedTestNoLayerID() { LayerMap selectedLayerMap = new LayerMap(new Layer()); bool expected = true; bool actual; actual = LayerMapExtensions.IsLayerCreated(selectedLayerMap); Assert.AreEqual(expected, actual); }
public void CanUpdateWWTTestWWTOnly() { LayerMap selectedlayer = new LayerMap(new Layer()); bool expected = true; bool actual; actual = LayerMapExtensions.CanUpdateWWT(selectedlayer); Assert.AreEqual(expected, actual); }
public void BuildWorldObject(Coord2D mouseIsoFlatCoord, Coord2D mouseIsoCoord) { Coord3D mouseIsoCoord3D = new Coord3D(mouseIsoCoord, Altitude); if (BuildMode == BuildMode.Cube) { // Create cube and add it to the layer map. var cube = CubeFactory.CreateCurrentCube(mouseIsoFlatCoord, mouseIsoCoord3D); if (!LayerMap.ContainsKey(mouseIsoCoord3D)) { LayerMap.Add(mouseIsoCoord3D, cube); } // Deal with the walkable tile table. foreach (var coord in mouseIsoCoord.AdjacentCoords()) { // If there are no solid objects above us, if (!(LayerMap.ContainsKey(new Coord3D(mouseIsoCoord, Altitude + 1)) && LayerMap[new Coord3D(mouseIsoCoord, Altitude + 1)].IsSolid)) // not- contains key and sprite is solid { WalkableTileTable.Add(Altitude + 1, coord, mouseIsoCoord); } // Assuming the added cube is solid, the tile under us is no longer walkable. if (cube.IsSolid) { WalkableTileTable.Remove(Altitude, coord, mouseIsoCoord); } } } else if (BuildMode == BuildMode.Deco) { // Create deco and add it to the layer map. var deco = DecoFactory.CreateCurrentDeco(mouseIsoFlatCoord, mouseIsoCoord, Altitude); if (deco.OccupiedCoords.Any((c) => LayerMap.ContainsKey(c)) == false) { LayerMap.Add(mouseIsoCoord3D, deco); foreach (var coord in deco.OccupiedCoords) { if (coord != mouseIsoCoord3D) { LayerMap.Add(coord, new DecoReference(deco, mouseIsoCoord3D) { Coords = coord.To2D(), Altitude = coord.Z }); } foreach (var _coord in new Coord2D(coord.X, coord.Y).AdjacentCoords()) { // Assuming the added deco is solid, the tiles under us are no longer walkable. if (deco.IsSolid) { WalkableTileTable.Remove(Altitude, _coord, new Coord2D(coord.X, coord.Y)); } } } } } }
public void CanUpdateWWTTestWWTNone() { LayerMap selectedlayer = new LayerMap(new Layer()); selectedlayer.MapType = LayerMapType.None; bool expected = false; bool actual; actual = LayerMapExtensions.CanUpdateWWT(selectedlayer); Assert.AreEqual(expected, actual); }
public void IsLayerCreatedTestValidLayerID() { LayerMap selectedLayerMap = new LayerMap(new Layer()); selectedLayerMap.LayerDetails.ID = System.Guid.NewGuid().ToString(); bool expected = false; bool actual; actual = LayerMapExtensions.IsLayerCreated(selectedLayerMap); Assert.AreEqual(expected, actual); }
public void CanUpdateWWTTestWWTLocalAndSync() { LayerMap selectedlayer = new LayerMap(new Layer()); selectedlayer.MapType = LayerMapType.LocalInWWT; selectedlayer.IsNotInSync = false; bool expected = true; bool actual; actual = LayerMapExtensions.CanUpdateWWT(selectedlayer); Assert.AreEqual(expected, actual); }
public void UpdateMappedColumnsTestNull() { LayerMap selectedLayerMap = new LayerMap(new Layer()); // Check what happens if we send null. LayerMapExtensions.UpdateMappedColumns(null); // Check what happens if we send null group. LayerMapExtensions.UpdateMappedColumns(selectedLayerMap); Assert.IsNull(selectedLayerMap.LayerDetails.Group); }
public void AddMaps(LayerMap map, List <Guid> list) { foreach (Layer layer in map.Layers) { list.Add(layer.ID); } foreach (LayerMap child in map.ChildMaps.Values) { AddMaps(child, list); } }
public void UpdateLayerMapPropertiesTest() { Layer layer = new Layer(); Layer dummyLayer = new Layer(); LayerMap expected = new LayerMap(dummyLayer); // UpdateLayerMapProperties will set the layer in layer details. expected.UpdateLayerMapProperties(layer); // LayerDetails should not be dummy layer. It should be set with layer object. Assert.AreEqual(expected.LayerDetails, layer); }
void IScriptable.SetProperty(string name, string value) { try { if (LayerManager.CurrentSelection is LayerMap) { LayerMap map = LayerManager.CurrentSelection as LayerMap; if (map.Frame.reference == ReferenceFrames.Custom) { ReferenceFrame frame = map.Frame; double val; if (name.ToLower() == "scale") { val = double.Parse(value); frame.Scale = val; return; } if (name.ToLower().StartsWith("translate.")) { val = double.Parse(value); Vector3d translate = frame.translation; switch (name.ToLower()) { case "translate.x": translate.X = val; break; case "translate.y": translate.Y = val; break; case "translate.z": translate.Z = val; break; } frame.translation = translate; return; } frame.SetProp(name, value); } } } catch { } }
public void CleanUpWWTLayersTest() { Application application = new Application(); try { Workbook book = application.OpenWorkbook("WorkbookTestData.xlsx", false); Name emptyRange = book.Names.GetNamedRange("GetSelectedLayerWorksheet"); Common.Globals_Accessor.wwtManager = new WWTManager(new WWTMockRequest()); Common.Globals_Accessor.TargetMachine = new TargetMachine("localhost"); Group marsGroup = new Group("Mars", GroupType.ReferenceFrame, null); Group sunGroup = new Group("Sun", GroupType.ReferenceFrame, null); Group earthGroup = new Group("Earth", GroupType.ReferenceFrame, sunGroup); earthGroup.LayerIDs.Add("8e5cbbc4-9eb2-47e5-b3d7-7ca9babda477"); sunGroup.Children.Add(earthGroup); LayerMap earthLayer = new LayerMap(new Layer()); earthLayer.MapType = LayerMapType.WWT; earthLayer.LayerDetails.Group = earthGroup; earthLayer.LayerDetails.ID = "ValidID1"; LayerMap marsLayer = new LayerMap(emptyRange); marsLayer.MapType = LayerMapType.LocalInWWT; marsLayer.LayerDetails.Group = marsGroup; marsLayer.LayerDetails.ID = "MarsValidID1"; LayerMap sunLayer = new LayerMap(emptyRange); sunLayer.MapType = LayerMapType.LocalInWWT; sunLayer.LayerDetails.Group = sunGroup; sunLayer.LayerDetails.ID = "sunLayerID1"; WorkbookMap workbookMap = new WorkbookMap(null); workbookMap.AllLayerMaps.Add(earthLayer); workbookMap.AllLayerMaps.Add(marsLayer); workbookMap.AllLayerMaps.Add(sunLayer); workbookMap.SelectedLayerMap = earthLayer; WorkbookMapExtensions.CleanUpWWTLayers(workbookMap); Assert.IsNull(workbookMap.SelectedLayerMap); Assert.IsTrue(workbookMap.AllLayerMaps.Count == 2); } finally { application.Close(); } }
public void RemoveWorldObject(Coord2D mouseIsoFlatCoord, Coord2D mouseIsoCoord) { Coord3D mouseIsoCoord3D = new Coord3D(mouseIsoCoord, Altitude); if (BuildMode == BuildMode.Cube && LayerMap.ContainsKey(mouseIsoCoord3D)) { var sprite = LayerMap[mouseIsoCoord3D]; if (sprite is Cube) { LayerMap.Remove(mouseIsoCoord3D); foreach (var coord in mouseIsoCoord.AdjacentCoords()) { WalkableTileTable.Remove(Altitude + 1, coord, mouseIsoCoord); } // If there is a cube below, if (LayerMap.ContainsKey(new Coord3D(mouseIsoCoord, Altitude - 1)) && LayerMap[new Coord3D(mouseIsoCoord, Altitude - 1)] is Cube) { foreach (var coord in mouseIsoCoord.AdjacentCoords()) { WalkableTileTable.Add(Altitude, coord, mouseIsoCoord); } } } } else if (BuildMode == BuildMode.Deco && LayerMap.ContainsKey(mouseIsoCoord3D)) { var sprite = LayerMap[mouseIsoCoord3D]; if (sprite is Deco deco) { foreach (var coord in deco.OccupiedCoords) { LayerMap.Remove(coord); // If there are cubes below, var c = new Coord3D(new Coord2D(coord.X, coord.Y), Altitude - 1); if (LayerMap.ContainsKey(c) && LayerMap[c] is Cube) { foreach (var _coord in new Coord2D(coord.X, coord.Y).AdjacentCoords()) { WalkableTileTable.Add(Altitude, _coord, new Coord2D(coord.X, coord.Y)); } } } } } }
public void UpdateHeaderPropertiesTestNull() { Application application = new Application(); try { LayerMap selectedlayer = new LayerMap(new Layer()); LayerMapExtensions.UpdateHeaderProperties(selectedlayer, null); LayerMapExtensions.UpdateHeaderProperties(null, null); Assert.IsNull(selectedlayer.RangeAddress); } finally { application.Close(); } }
public static void LoadConfigs(ILayerRepository repository, string configDir) { // Create configuration object map IPathResolver pathResolver = new PathResolver(configDir); LayerMap LayerMap = new LayerMap( new GridSetMap( new EnvelopeMap() ), new CacheMap(pathResolver), new ProviderMap( new VectorTileLayerMap( new GridSetMap( new EnvelopeMap() ), new CacheMap(pathResolver), new VectorTileProviderMap(pathResolver), new EnvelopeMap() ), pathResolver ), new EnvelopeMap() ); // Deserialize config files JsonSerializer serializer = new JsonSerializer(); try { foreach (string file in Directory.EnumerateFiles(configDir, "*.json", SearchOption.TopDirectoryOnly)) { using (StreamReader sr = new StreamReader(file)) { using (JsonTextReader reader = new JsonTextReader(sr)) { LayerConfig LayerConfig = (LayerConfig)serializer.Deserialize(reader, typeof(LayerConfig)); Layer l = LayerMap.Map(LayerConfig); repository.Put(l); } } } } catch (Exception e) { throw; //Trace.TraceWarning() } }
public void ExistsTestValid() { LayerMap layerMap = new LayerMap(new Layer()); layerMap.LayerDetails.ID = "ValidID"; WorkbookMap workbookMap = new WorkbookMap(null); workbookMap.AllLayerMaps.Add(layerMap); string layerID = "ValidID"; bool expected = true; bool actual; actual = WorkbookMapExtensions.Exists(workbookMap, layerID); Assert.AreEqual(expected, actual); }
private List <Guid> CreateLayerMasterListFromFrame(string name) { List <Guid> masterList = new List <Guid>(); LayerMap map = LayerManager.AllMaps[name]; if (map != null) { foreach (Layer layer in LayerManager.LayerList.Values) { if (SoloGuid == Guid.Empty || SoloGuid == layer.ID) { masterList.Add(layer.ID); } } } return(masterList); }
public void LayerModelFadeTimeExecuteTest() { LayerDetailsViewModel layerDetailsViewModel = new LayerDetailsViewModel(); Layer layer = new Layer(); layer.Name = "Layer1"; LayerMap layerMap = new LayerMap(layer); layerMap.MapType = LayerMapType.Local; layerMap.HeaderRowData = new Collection <string>(); layerMap.MappedColumnType = new Collection <ColumnType>(); layerDetailsViewModel.Currentlayer = layerMap; LayerDetailsViewModel_Accessor.FadeTimeChangeHandler target = new LayerDetailsViewModel_Accessor.FadeTimeChangeHandler(layerDetailsViewModel); string fadeTime = "10:10:10"; target.Execute(fadeTime); Assert.AreEqual(fadeTime, layerDetailsViewModel.FadeTime.ToString()); }
public void RemoveAffectedLayersTest() { Group marsGroup = new Group("Mars", GroupType.ReferenceFrame, null); Group sunGroup = new Group("Sun", GroupType.ReferenceFrame, null); Group earthGroup = new Group("Earth", GroupType.ReferenceFrame, sunGroup); earthGroup.LayerIDs.Add("8e5cbbc4-9eb2-47e5-b3d7-7ca9babda477"); sunGroup.Children.Add(earthGroup); LayerMap earthLayer = new LayerMap(new Layer()); earthLayer.MapType = LayerMapType.WWT; earthLayer.LayerDetails.Group = earthGroup; earthLayer.LayerDetails.ID = "ValidID1"; LayerMap marsLayer = new LayerMap(new Layer()); marsLayer.MapType = LayerMapType.LocalInWWT; marsLayer.LayerDetails.Group = marsGroup; marsLayer.LayerDetails.ID = "MarsValidID1"; LayerMap sunLayer = new LayerMap(new Layer()); sunLayer.MapType = LayerMapType.LocalInWWT; sunLayer.LayerDetails.Group = sunGroup; sunLayer.LayerDetails.ID = "sunLayerID1"; WorkbookMap workbookMap = new WorkbookMap(null); workbookMap.AllLayerMaps.Add(earthLayer); workbookMap.AllLayerMaps.Add(marsLayer); workbookMap.AllLayerMaps.Add(sunLayer); List <LayerMap> affectedLayerList = new List <LayerMap>(); affectedLayerList.Add(marsLayer); affectedLayerList.Add(sunLayer); WorkbookMapExtensions.RemoveAffectedLayers(null, null); WorkbookMapExtensions.RemoveAffectedLayers(workbookMap, affectedLayerList); Assert.IsTrue(workbookMap.AllLayerMaps.Count == 1); }
public void LayerModelLayerDisplayExecuteTest() { LayerDetailsViewModel layerDetailsViewModel = new LayerDetailsViewModel(); LayerDetailsViewModel_Accessor.LayerMapNameChangeHandler target = new LayerDetailsViewModel_Accessor.LayerMapNameChangeHandler(layerDetailsViewModel); string layerName = "Layer1"; Layer layer = new Layer(); layer.Name = layerName; LayerMap layerMap = new LayerMap(layer); layerMap.MapType = LayerMapType.Local; layerMap.HeaderRowData = new Collection <string>(); layerMap.MappedColumnType = new Collection <ColumnType>(); layerDetailsViewModel.Currentlayer = layerMap; target.Execute(layerName); Assert.AreEqual(layerDetailsViewModel.SelectedLayerName, layerName); }
public void ResetRangeTest() { InteropExcel.Application application = new InteropExcel.Application(); try { InteropExcel.Workbook book = application.OpenWorkbook("TestData.xlsx", false); Name name = book.Names.GetNamedRange("TestRangeOne"); LayerMap target = new LayerMap(name); Name resetRangeName = book.Names.GetNamedRange("TestRangeTarget"); string expected = resetRangeName.Name; target.ResetRange(resetRangeName); string actual = target.RangeDisplayName; Assert.AreEqual(expected, actual); } finally { application.Close(); } }
public void SerializeTest() { Application application = new Application(); try { ThisAddIn_Accessor.ExcelApplication = application; Workbook book = application.OpenWorkbook("WorkbookTestData.xlsx", false); Name layerOne = book.Names.GetNamedRange("UpdateLayerRangeInitial"); LayerMap layerMap = new LayerMap(layerOne); WorkbookMap workbookMap = new WorkbookMap(book); workbookMap.AllLayerMaps.Add(layerMap); string expected = "<?xml version=\"1.0\" encoding=\"utf-16\"?><WorkbookMap xmlns:d1p1=\"http://schemas.datacontract.org/2004/07/Microsoft.Research.Wwt.Excel.Addin\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"Microsoft.Research.Wwt.Excel.Addin.WorkbooMap\"><d1p1:SerializableLayerMaps><d1p1:LayerMap><d1p1:LayerDetails xmlns:d4p1=\"http://schemas.datacontract.org/2004/07/Microsoft.Research.Wwt.Excel.Common\"><d4p1:AltColumn>-1</d4p1:AltColumn><d4p1:AltType>Depth</d4p1:AltType><d4p1:AltUnit>Meters</d4p1:AltUnit><d4p1:Color>ARGBColor:255:255:0:0</d4p1:Color><d4p1:ColorMapColumn>-1</d4p1:ColorMapColumn><d4p1:CoordinatesType>Spherical</d4p1:CoordinatesType><d4p1:DecColumn>-1</d4p1:DecColumn><d4p1:EndDateColumn>-1</d4p1:EndDateColumn><d4p1:EndTime>9999-12-31T23:59:59.9999999</d4p1:EndTime><d4p1:FadeSpan>PT0S</d4p1:FadeSpan><d4p1:FadeType>None</d4p1:FadeType><d4p1:GeometryColumn>-1</d4p1:GeometryColumn><d4p1:Group i:nil=\"true\" /><d4p1:HasTimeSeries>false</d4p1:HasTimeSeries><d4p1:ID i:nil=\"true\" /><d4p1:LatColumn>-1</d4p1:LatColumn><d4p1:LngColumn>-1</d4p1:LngColumn><d4p1:MarkerIndex>0</d4p1:MarkerIndex><d4p1:MarkerScale>World</d4p1:MarkerScale><d4p1:Name>UpdateLayerRangeInitial</d4p1:Name><d4p1:NameColumn>0</d4p1:NameColumn><d4p1:Opacity>1</d4p1:Opacity><d4p1:PlotType>Gaussian</d4p1:PlotType><d4p1:PointScaleType>StellarMagnitude</d4p1:PointScaleType><d4p1:RAColumn>-1</d4p1:RAColumn><d4p1:RAUnit>Hours</d4p1:RAUnit><d4p1:ReverseXAxis>false</d4p1:ReverseXAxis><d4p1:ReverseYAxis>false</d4p1:ReverseYAxis><d4p1:ReverseZAxis>false</d4p1:ReverseZAxis><d4p1:ScaleFactor>8</d4p1:ScaleFactor><d4p1:ShowFarSide>true</d4p1:ShowFarSide><d4p1:SizeColumn>-1</d4p1:SizeColumn><d4p1:StartDateColumn>-1</d4p1:StartDateColumn><d4p1:StartTime>0001-01-01T00:00:00</d4p1:StartTime><d4p1:TimeDecay>16</d4p1:TimeDecay><d4p1:Version>0</d4p1:Version><d4p1:XAxis>-1</d4p1:XAxis><d4p1:YAxis>-1</d4p1:YAxis><d4p1:ZAxis>-1</d4p1:ZAxis></d1p1:LayerDetails><d1p1:MapType>Local</d1p1:MapType><d1p1:MappedColumnType xmlns:d4p1=\"http://schemas.datacontract.org/2004/07/Microsoft.Research.Wwt.Excel.Common\"><d4p1:ColumnType>None</d4p1:ColumnType><d4p1:ColumnType>None</d4p1:ColumnType><d4p1:ColumnType>None</d4p1:ColumnType><d4p1:ColumnType>None</d4p1:ColumnType><d4p1:ColumnType>None</d4p1:ColumnType><d4p1:ColumnType>None</d4p1:ColumnType></d1p1:MappedColumnType><d1p1:RangeAddress>=UpdateLayer!$A$1:$F$9</d1p1:RangeAddress><d1p1:RangeDisplayName>UpdateLayerRangeInitial</d1p1:RangeDisplayName></d1p1:LayerMap></d1p1:SerializableLayerMaps><d1p1:SerializableSelectedLayerMap i:nil=\"true\" /></WorkbookMap>"; string actual = WorkbookMapExtensions.Serialize(workbookMap); Assert.AreEqual(expected, actual); } finally { application.Close(); } }
public void ColumnsListTest() { InteropExcel.Application application = new InteropExcel.Application(); try { InteropExcel.Workbook book = application.OpenWorkbook("TestData.xlsx", false); // Get the named range stored in the test data excel file. Name name = book.Names.GetNamedRange("ColumnList"); LayerMap target = new LayerMap(name); target.ColumnsList = ColumnExtensions.PopulateColumnList(); // Check the count of columns. Assert.AreEqual(target.ColumnsList.Count, 19); // Check the column names Assert.AreEqual(target.ColumnsList[0].ColumnDisplayValue, "Select One"); Assert.AreEqual(target.ColumnsList[1].ColumnDisplayValue, "Latitude"); Assert.AreEqual(target.ColumnsList[2].ColumnDisplayValue, "Longitude"); Assert.AreEqual(target.ColumnsList[3].ColumnDisplayValue, "Start Date"); Assert.AreEqual(target.ColumnsList[4].ColumnDisplayValue, "End Date"); Assert.AreEqual(target.ColumnsList[5].ColumnDisplayValue, "Depth"); Assert.AreEqual(target.ColumnsList[6].ColumnDisplayValue, "Altitude"); Assert.AreEqual(target.ColumnsList[7].ColumnDisplayValue, "Distance"); Assert.AreEqual(target.ColumnsList[8].ColumnDisplayValue, "Magnitude"); Assert.AreEqual(target.ColumnsList[9].ColumnDisplayValue, "Geometry"); Assert.AreEqual(target.ColumnsList[10].ColumnDisplayValue, "Color"); Assert.AreEqual(target.ColumnsList[11].ColumnDisplayValue, "RA"); Assert.AreEqual(target.ColumnsList[12].ColumnDisplayValue, "Dec"); } finally { application.Close(); } }
public void UpdateMappedColumnsSkyTest() { Group skyGroup = new Group("Sky", GroupType.ReferenceFrame, null); LayerMap selectedLayerMap = new LayerMap(new Layer()); selectedLayerMap.LayerDetails.Group = skyGroup; Collection <ColumnType> mappedColTypes = new Collection <ColumnType>(); mappedColTypes.Add(ColumnType.RA); mappedColTypes.Add(ColumnType.Dec); mappedColTypes.Add(ColumnType.Lat); mappedColTypes.Add(ColumnType.Long); selectedLayerMap.MappedColumnType = mappedColTypes; LayerMapExtensions.UpdateMappedColumns(selectedLayerMap); Assert.AreEqual(selectedLayerMap.MappedColumnType[0], ColumnType.RA); Assert.AreEqual(selectedLayerMap.MappedColumnType[1], ColumnType.Dec); Assert.AreEqual(selectedLayerMap.MappedColumnType[2], ColumnType.None); Assert.AreEqual(selectedLayerMap.MappedColumnType[3], ColumnType.None); }
public void BuildGroupCollectionTest() { Application application = new Application(); try { Group parentGroup = new Group("Sun", GroupType.ReferenceFrame, null); Group childGroup = new Group("Earth", GroupType.ReferenceFrame, parentGroup); Layer layer = new Layer(); layer.Name = "Layer1"; layer.Group = childGroup; Layer layerMap = new Layer(); layerMap.Name = "Layer2"; layerMap.Group = new Group("Sun", GroupType.ReferenceFrame, null); LayerMap localLayerMap = new LayerMap(layer); localLayerMap.MapType = LayerMapType.Local; LayerMap wwtLayerMap = new LayerMap(layerMap); wwtLayerMap.MapType = LayerMapType.WWT; List <GroupChildren> wwtGroups = new List <GroupChildren>(); List <GroupChildren> localGroups = new List <GroupChildren>(); List <GroupChildren> existingGroups = new List <GroupChildren>(); List <GroupChildren> groupwithChildren = new List <GroupChildren>(); GroupChildren children = new GroupChildren(); children.Group = parentGroup; GroupChildren children1 = new GroupChildren(); children1.Group = childGroup; GroupChildren childNode = new GroupChildren(); childNode.Group = parentGroup; childNode.Children.Add(children1); existingGroups.Add(children); groupwithChildren.Add(childNode); LayerMapExtensions.BuildGroupCollection(wwtLayerMap, wwtGroups); LayerMapExtensions.BuildGroupCollection(localLayerMap, localGroups); LayerMapExtensions.BuildGroupCollection(localLayerMap, existingGroups); LayerMapExtensions.BuildGroupCollection(localLayerMap, groupwithChildren); Assert.AreEqual(1, wwtGroups.Count); foreach (GroupChildren child in wwtGroups) { Assert.AreEqual(1, child.AllChildren.Count); Assert.AreEqual("Sun", child.Name); } Assert.AreEqual(1, localGroups.Count); foreach (GroupChildren child in localGroups) { Assert.AreEqual(1, child.Children.Count); Assert.AreEqual("Sun", child.Name); } Assert.AreEqual(1, existingGroups.Count); foreach (GroupChildren child in existingGroups) { Assert.AreEqual(1, child.Children.Count); foreach (GroupChildren childrenVal in child.Children) { Assert.AreEqual("Earth", childrenVal.Name); } } Assert.AreEqual(1, groupwithChildren.Count); foreach (GroupChildren child in groupwithChildren) { Assert.AreEqual(1, child.Children.Count); foreach (GroupChildren childrenVal in child.Children) { Assert.AreEqual(1, childrenVal.AllChildren.Count); } } } finally { application.Close(); } }
private void LoadContentFromFile() { IsLoading = true; // Most time is spent here... var XmlData = Serializer.ReadXML <MapBuilder>(MapBuilderSerializer, saveFilePath); // Variable assignment here: Altitude = XmlData.Altitude; WalkableTileTable = XmlData.WalkableTileTable; LayerMap = XmlData.LayerMap; DynamicSprites = XmlData.DynamicSprites; bool createNewGhostMarker = false; for (int i = 0; i < DynamicSprites.Count(); i++) { Sprite sprite = DynamicSprites[i]; if (sprite is Player player) { Player = player; } else if (sprite is GhostMarker ghostMarker) { GhostMarker = ghostMarker; } else if (sprite.Animator?.SpriteSheet?.TexturePath == "Temp/WalkTargetAnimation") { ClickAnimation = sprite; } // Load content can fail if the content file for the sprite no longer exists. try { sprite.LoadContent(MainGame); } catch (Exception e) { e.Message.Log(); if (sprite is GhostMarker ghostMarker) { // If the content file was required for the ghost marker, remove the current ghost marker and get ready to make a new one. createNewGhostMarker = true; DynamicSprites.Remove(ghostMarker); } i--; } } if (createNewGhostMarker) { // The content file for the ghost marker was removed, so make a new one and add it to the layer map. GhostMarker = new GhostMarker(MainGame, SpriteSheet.CreateNew(MainGame, "Temp/TopFaceSelectionMarker")) { DrawPriority = 1 }; DynamicSprites.Add(GhostMarker); } List <Coord3D> purgedSprites = new List <Coord3D>(); List <Coord3D> decoReferences = new List <Coord3D>(); foreach (var layerMapItem in LayerMap) { var sprite = layerMapItem.Value; if (sprite is DecoReference) { decoReferences.Add(layerMapItem.Key); } // Load content can fail if the content file for the sprite no longer exists. try { sprite.LoadContent(MainGame); } catch (Exception e) { e.Message.Log(); if (sprite is Deco deco) { foreach (var coord in deco.OccupiedCoords) { purgedSprites.Add(coord); } } else { purgedSprites.Add(layerMapItem.Key); } } } foreach (var coord in purgedSprites) { LayerMap.Remove(coord); } foreach (var coord in decoReferences) { DecoReference decoReference = LayerMap[coord] as DecoReference; decoReference.Reference = (Deco)LayerMap[decoReference.ReferenceCoord]; } IsLoading = false; MainGame.CurrentState = this; Peripherals.ScrollWheelUp += Peripherals_ScrollWheelUp; Peripherals.ScrollWheelDown += Peripherals_ScrollWheelDown; }
public override void Update(GameTime gameTime) { if (!IsLoading) { // Defined with respect to current mouse position. Coord2D mouseIsoFlatCoord = World.MousePositionToIsoFlatCoord(MainGame); Coord2D mouseIsoCoord = World.MousePositionToIsoCoord(MainGame, Altitude); // User input actions. if (Peripherals.KeyTapped(Keys.Q) && MainGame.IsActive) { var i = (int)Authorization + 1; if (i >= Enum.GetNames(typeof(Authorization)).Length) { i = 0; } Authorization = (Authorization)(i); } if (Peripherals.KeyTapped(Keys.L) && MainGame.IsActive) { $"Altitude = {Altitude}".Log(); mouseIsoCoord.ToString().Log(); } if (Authorization == Authorization.Builder) { if (Peripherals.LeftButtonPressed() && MainGame.IsActive) { BuildWorldObject(mouseIsoFlatCoord, mouseIsoCoord); } if (Peripherals.RightButtonPressed() && MainGame.IsActive) { RemoveWorldObject(mouseIsoFlatCoord, mouseIsoCoord); } } // Ghost marker management. if (Authorization == Authorization.Builder) { GhostMarker.Altitude = Altitude; GhostMarker.Coords = mouseIsoCoord; } else if (Authorization == Authorization.None) { // Top down look. for (int i = 30; i > -30; i--) { var targetedCoord = World.GetIsoCoord(mouseIsoFlatCoord, i); if (LayerMap.ContainsKey(new Coord3D(targetedCoord, i)) && !(LayerMap[new Coord3D(targetedCoord, i)] is Deco)) { Altitude = i; GhostMarker.Altitude = Altitude; break; } } GhostMarker.Coords = World.MousePositionToIsoCoord(MainGame, Altitude); } // Test GhostMarker.Position = World.IsoFlatCoordToWorldPosition(mouseIsoFlatCoord); if (LayerMap.ContainsKey(new Coord3D(mouseIsoCoord, Altitude)) || Authorization == Authorization.None) { GhostMarker.DrawDefaultMarker = true; } else if (Authorization == Authorization.Builder) { GhostMarker.DrawDefaultMarker = false; } if (LayerMap.ContainsKey(new Coord3D(mouseIsoCoord, Altitude))) { GhostMarker.DrawPriority = 1; } else if (Authorization == Authorization.Builder) { GhostMarker.DrawPriority = 0; } else if (Authorization == Authorization.None) { // If !LayerMap[Altitude].OccupiedCoords.Contains(mouseIsoCoord), we are in empty space // and always draw last. GhostMarker.DrawPriority = -1000; } GhostMarker.IsHidden = !MainGame.IsMouseOver; if (Authorization == Authorization.None) { if (Peripherals.LeftButtonTapped()) { ClickAnimation.Position = GhostMarker.Position; ClickAnimation.Coords = GhostMarker.Coords; ClickAnimation.Altitude = GhostMarker.Altitude; ClickAnimation.DrawPriority = GhostMarker.DrawPriority; ClickAnimation.Animator.AnimationFinished = false; ClickAnimation.Animator.Reconfigure(new AnimArgs(1, 7, 0.066f, AnimationState.Once)); } } ClickAnimation.Update(gameTime); // Player management. //Player.Altitude = 1; #region Pre Loop // Rearrange sprites into their correct altitude layer. //var altitudeList = LayerMap.Keys.ToList(); //altitudeList.Sort(); //foreach (var altitude in altitudeList) //{ // for (int i = 0; i < LayerMap[altitude].Count(); i++) // { // var sprite = LayerMap[altitude][i]; // if (sprite.Altitude != altitude) // { // LayerMap[altitude].Remove(sprite); i--; // if (!LayerMap.ContainsKey(sprite.Altitude)) // { // LayerMap.Add(sprite.Altitude, new SpriteList<Sprite>() { sprite }); // } // else // { // if (!(sprite is IWorldObject)) // { // LayerMap[sprite.Altitude].Add(sprite); // } // else // { // throw new NotImplementedException("Cube/Deco trying to move between layers, is this correct? Use AddCheck if so."); // } // } // } // } //} #endregion #region Main Loop Sort(); foreach (var sprite in OrderedLayerMap) { sprite.Update(gameTime); } #endregion } }
public static TourDocument FromXml(string filename) { TourDocument newTour = new TourDocument(); newTour.filename = filename; XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlNode root = doc["Tour"]; newTour.id = root.Attributes["ID"].Value.ToString(); newTour.Title = root.Attributes["Title"].Value.ToString(); newTour.Author = root.Attributes["Author"].Value.ToString(); if (root.Attributes["Descirption"] != null) { newTour.Description = root.Attributes["Descirption"].Value; } if (root.Attributes["Description"] != null) { newTour.Description = root.Attributes["Description"].Value; } if (root.Attributes["AuthorEmail"] != null) { newTour.authorEmail = root.Attributes["AuthorEmail"].Value; } if (root.Attributes["Keywords"] != null) { newTour.Keywords = root.Attributes["Keywords"].Value; } if (root.Attributes["OrganizationName"] != null) { newTour.OrgName = root.Attributes["OrganizationName"].Value; } if (root.Attributes["DomeMode"] != null) { newTour.DomeMode = bool.Parse(root.Attributes["DomeMode"].Value); } newTour.organizationUrl = root.Attributes["OrganizationUrl"].Value.ToString(); newTour.level = (UserLevel)Enum.Parse(typeof(UserLevel), root.Attributes["UserLevel"].Value.ToString()); newTour.type = (Classification)Enum.Parse(typeof(Classification), root.Attributes["Classification"].Value.ToString()); newTour.taxonomy = root.Attributes["Taxonomy"].Value.ToString(); bool timeLineTour = false; if (root.Attributes["TimeLineTour"] != null) { timeLineTour = bool.Parse(root.Attributes["TimeLineTour"].Value); } XmlNode TourStops = null; if (timeLineTour) { TourStops = root["TimeLineTourStops"]; } else { TourStops = root["TourStops"]; } foreach (XmlNode tourStop in TourStops) { newTour.AddTourStop(TourStop.FromXml(newTour, tourStop)); } XmlNode Frames = root["ReferenceFrames"]; if (Frames != null) { foreach (XmlNode frame in Frames) { 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.Add(newFrame.Name, map); } } LayerManager.ConnectAllChildren(); LayerManager.LoadTree(); } XmlNode Layers = root["Layers"]; if (Layers != null) { foreach (XmlNode layer in Layers) { Layer newLayer = Layer.FromXml(layer, true); string fileName = newTour.WorkingDirectory + string.Format("{0}.txt", newLayer.ID.ToString()); // Overwite ISS layer if in a tour using the authored ISS details if (LayerManager.LayerList.ContainsKey(newLayer.ID) && newLayer.ID == ISSLayer.ISSGuid) { LayerManager.DeleteLayerByID(newLayer.ID, true, false); } // Ask about merging other layers. if (LayerManager.LayerList.ContainsKey(newLayer.ID) && newLayer.ID != ISSLayer.ISSGuid) { if (!newTour.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) { newTour.OverWrite = true; } else { newTour.OverWrite = false; } newTour.CollisionChecked = true; } if (newTour.OverWrite) { LayerManager.DeleteLayerByID(newLayer.ID, true, false); } } try { newLayer.LoadedFromTour = true; newLayer.LoadData(fileName); LayerManager.Add(newLayer, false); } catch { } } LayerManager.LoadTree(); } if (File.Exists(newTour.WorkingDirectory + "Author.png")) { newTour.authorImage = UiTools.LoadBitmap(newTour.WorkingDirectory + "Author.png"); } newTour.tourDirty = 0; return(newTour); }
public void MergeTourStopsFromXml(string filename) { XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlNode root = doc["Tour"]; bool timeLineTour = false; if (root.Attributes["TimeLineTour"] != null) { timeLineTour = bool.Parse(root.Attributes["TimeLineTour"].Value); } XmlNode TourStops = null; if (timeLineTour) { TourStops = root["TimeLineTourStops"]; } else { TourStops = root["TourStops"]; } foreach (XmlNode tourStop in TourStops) { currentTourstopIndex++; InsertTourStop(TourStop.FromXml(this, tourStop)); } XmlNode Frames = root["ReferenceFrames"]; if (Frames != null) { foreach (XmlNode frame in Frames) { ReferenceFrame newFrame = new ReferenceFrame(); newFrame.InitializeFromXml(frame); if (!LayerManager.AllMaps.ContainsKey(newFrame.Name)) { LayerMap map = new LayerMap(newFrame.Name, ReferenceFrames.Custom); map.Frame = newFrame; LayerManager.AllMaps.Add(newFrame.Name, map); } } LayerManager.ConnectAllChildren(); LayerManager.LoadTree(); } XmlNode Layers = root["Layers"]; if (Layers != null) { foreach (XmlNode layer in Layers) { Layer newLayer = Layer.FromXml(layer, true); string fileName = WorkingDirectory + string.Format("{0}.txt", newLayer.ID.ToString()); newLayer.LoadData(fileName); LayerManager.Add(newLayer, false); } LayerManager.LoadTree(); } }