コード例 #1
0
        public UiImportTopology(MainWindow MainWindow)
        {
            InitializeComponent();

            foreach (NetwokImport net in NetworkTopolgy.ImportNetworkNames(this))
            {
                net._MainWindow = MainWindow;
                stk_netwoks.Children.Add(net);
            }
        }
コード例 #2
0
ファイル: UiExportTopology.xaml.cs プロジェクト: howbani/VSIM
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            NetworkTopolgy topolog   = new NetworkTopolgy();
            bool           isCreated = topolog.createNewTopology(txt_networkName.Text);

            if (isCreated)
            {
                this.WindowState = WindowState.Minimized;

                foreach (Junction jun in mianwindow.MyJunctions)
                {
                    VanetComonent com = new VanetComonent();
                    com.Pox           = jun.Margin.Left;
                    com.Poy           = jun.Margin.Top;
                    com.Width         = jun.Width;
                    com.Height        = jun.Height;
                    com.ComponentType = ComponentType.Junction;
                    topolog.SaveVanetComponent(com, txt_networkName.Text);
                }



                foreach (RoadSegment seg in mianwindow.MyRoadSegments)
                {
                    VanetComonent com = new VanetComonent();
                    com.Pox             = seg.Margin.Left;
                    com.Poy             = seg.Margin.Top;
                    com.Width           = seg.Width;
                    com.Height          = seg.Height;
                    com.ComponentType   = ComponentType.RoadSegment;
                    com.RoadOrientation = seg.Roadorientation;
                    com.LanesCount      = seg.LanesCount;
                    topolog.SaveVanetComponent(com, txt_networkName.Text);
                }



                this.Close();
            }
            else
            {
                MessageBox.Show("please change network name!");
            }
        }
コード例 #3
0
        public static void DesrlizeNetwork(MainWindow _MainWindow, string NetName)
        {
            // clear:
            _MainWindow.Clear();

            // now add them to feild.
            PublicParamerters.NetworkName = NetName;
            List <VanetComonent> ImportedComponents = NetworkTopolgy.ImportNetwok(NetName); // get comp

            _MainWindow.tab_vanet.Text = PublicParamerters.NetworkName;



            foreach (VanetComonent vanCom in ImportedComponents)
            {
                if (vanCom.ComponentType == ComponentType.Junction)
                {
                    // junction:
                    Junction jun = new Junction(_MainWindow);
                    jun.Margin = new Thickness(vanCom.Pox, vanCom.Poy, 0, 0);
                    jun.Height = vanCom.Height;
                    jun.Width  = vanCom.Width;
                    _MainWindow.canvas_vanet.Children.Add(jun);
                }
                else if (vanCom.ComponentType == ComponentType.RoadSegment)
                {
                    if (vanCom.RoadOrientation == RoadOrientation.Horizontal)
                    {
                        RoadSegment hrs = new RoadSegment(_MainWindow, vanCom.LanesCount, RoadOrientation.Horizontal);
                        hrs.Margin = new Thickness(vanCom.Pox, vanCom.Poy, 0, 0);
                        hrs.Height = vanCom.Height;
                        hrs.Width  = vanCom.Width;
                        _MainWindow.canvas_vanet.Children.Add(hrs);
                    }
                    else if ((vanCom.RoadOrientation == RoadOrientation.Vertical))
                    {
                        RoadSegment vrs = new RoadSegment(_MainWindow, vanCom.LanesCount, RoadOrientation.Vertical);
                        vrs.Margin = new Thickness(vanCom.Pox, vanCom.Poy, 0, 0);
                        vrs.Height = vanCom.Height;
                        vrs.Width  = vanCom.Width;
                        _MainWindow.canvas_vanet.Children.Add(vrs);
                    }
                }

                // get max X
            }



            BuildRoadNetwork builder = new BuildRoadNetwork(_MainWindow);

            builder.Build();

            double maxX = 0;
            double MaxY = 0;

            for (int j = 0; j < _MainWindow.MyJunctions.Count; j++)
            {
                Junction jun = _MainWindow.MyJunctions[j];
                if (jun.CenterLocation.X > maxX)
                {
                    maxX = jun.CenterLocation.X;
                }
                if (jun.CenterLocation.Y > MaxY)
                {
                    MaxY = jun.CenterLocation.Y;
                }
            }

            _MainWindow.canvas_vanet.Height = 200 + MaxY;
            _MainWindow.canvas_vanet.Width  = 200 + maxX;
        }