/// <summary> /// Calculate the corner coordinates /// </summary> /// <param name="map">Map object to get coordinates for</param> private void CalculateBorders(Map map) { Debug.WriteLine("CalculateBorders() for " + map.ToString(), " scale = " + map.Scale.ToString()); int scale = (int)Math.Pow(2.0, (double)map.Scale); int x = map.xCenter; int z = map.zCenter; int top = x - (scale * map.Height/2); int bottom = x + (scale * map.Height/2); int left = z - (scale * map.Width/2); int right = z + (scale * map.Width/2); TopLeftXZ.Text = string.Format("{0},{1}", top.ToString(), left.ToString()); TopRightXZ.Text = string.Format("{0},{1}", top.ToString(), right.ToString()); BottomLeftXZ.Text = string.Format("{0},{1}", bottom.ToString(), left.ToString()); BottomRightXZ.Text = string.Format("{0},{1}", bottom.ToString(), right.ToString()); }
/// <summary> /// Read selected map file and convert map data to displayable image /// </summary> /// <param name="sender">TreeView item</param> /// <param name="e">unused</param> public void ShowMap(object sender, RoutedEventArgs e) { var tvi = (TreeViewItem)sender; var node = (Node)tvi.Tag; var file = node.file; Debug.WriteLine("ShowMap() for " + file + "; Event " + e.RoutedEvent.ToString()); buttonSave.IsEnabled = false; try { var map = new Map(file); if (map != null) { textMessage.Text = file.Name; MapImage.Source = map.image; textFileName.Text = file.Name; textScale.Text = map.Scale.ToString(); textCenterX.Text = map.xCenter.ToString(); textCenterZ.Text = map.zCenter.ToString(); buttonSave.IsEnabled = true; textCenter.Text = string.Format("{0} {1},{2}", Path.GetFileNameWithoutExtension(file.Name), map.xCenter.ToString(), map.zCenter.ToString()); CalculateBorders(map); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }