/// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        public void IsLayerCreatedTestNoLayerID()
        {
            LayerMap selectedLayerMap = new LayerMap(new Layer());
            bool     expected         = true;
            bool     actual;

            actual = LayerMapExtensions.IsLayerCreated(selectedLayerMap);
            Assert.AreEqual(expected, actual);
        }
Esempio n. 5
0
        public void CanUpdateWWTTestWWTOnly()
        {
            LayerMap selectedlayer = new LayerMap(new Layer());
            bool     expected      = true;
            bool     actual;

            actual = LayerMapExtensions.CanUpdateWWT(selectedlayer);
            Assert.AreEqual(expected, actual);
        }
Esempio n. 6
0
        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));
                            }
                        }
                    }
                }
            }
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        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();
            }
        }
Esempio n. 15
0
        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));
                            }
                        }
                    }
                }
            }
        }
Esempio n. 16
0
        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();
            }
        }
Esempio n. 17
0
        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);
        }
Esempio n. 19
0
        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);
        }
Esempio n. 23
0
        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();
            }
        }
Esempio n. 25
0
        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();
            }
        }
Esempio n. 26
0
        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);
        }
Esempio n. 27
0
        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();
            }
        }
Esempio n. 28
0
        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;
        }
Esempio n. 29
0
        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
            }
        }
Esempio n. 30
0
        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);
        }
Esempio n. 31
0
        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();
            }
        }