Example #1
0
        /// <summary>
        /// constructor.
        /// </summary>
        /// <param name="canvasModel">used to update the local canvas object</param>
        /// <param name="position">used to position the drone in the canvas</param>
        /// <param name="showCoverage">used to set if the coverage map should be enabled</param>
        public DroneViewModel(MainCanvasModel canvasModel, Point position, bool showCoverage, Canvas rootCanvas, GeometryGroup connectors, CommandCenterViewModel commandModel)
        {
            //init component, set data conext for xaml
            InitializeComponent();
            DataContext = this;


            //update the canvas element, create new drone
            _canvasModel = canvasModel;
            DroneModel   = new DroneModel();
            SetPosition(position);
            _showCoverageRadius = showCoverage;
            _rootCanvas         = rootCanvas;
            _connectors         = connectors;
            _commandModel       = commandModel;

            DroneModel.NodeId = canvasModel.NodeIdCount;
            NodeId            = canvasModel.NodeIdCount.ToString();

            //check if the new drone is in range of another Node, and if it is, link the two nodes
            DroneModel.checkCoverageCollision(_rootCanvas, this.DroneModel, _connectors);

            DroneModel.UpdateLinks(CanvasLeft, CanvasTop, 300, 300, DroneModel);

            DroneModel.checkCoverageCollision(_rootCanvas, this.DroneModel, _connectors);
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the mainWindow class.
        /// </summary>
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this;

            CanvasModel   = new MainCanvasModel();
            _commandModel = new CommandCenterViewModel();
            //create new drone at point 50, 50
            _droneView = new DroneViewModel(_canvasModel, new Point(50, 50), _showCoverageRadius, RootCanvas, connectors, _commandModel);

            RootCanvas.Children.Add(_droneView);
            RootCanvas.Children.Add(_commandModel);

            //subscribe to warning event if path does not exist
            _droneView.WarningEvent += new DroneViewModel.WarningEventHandler(WarningEventHandler);
            _droneView.LoadingEvent += new DroneViewModel.LoadingEventHandler(LoadingEventHandler);
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the towermodel class.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="canvasModel">The canvas model.</param>
        /// <param name="showCoverageRadius">The show coverage radius.</param>
        /// <param name="rootCanvas">The root canvas.</param>
        /// <param name="connectors">The connectors.</param>
        public TowerViewModel(Point position, MainCanvasModel canvasModel, bool showCoverageRadius, Canvas rootCanvas, GeometryGroup connectors) : this()
        {
            _canvasModel       = canvasModel;
            ShowCoverageRadius = showCoverageRadius;

            SetPosition(position);

            _rootCanvas       = rootCanvas;
            _connectors       = connectors;
            TowerModel.NodeId = canvasModel.TowerNodeIdCount;
            NodeId            = canvasModel.TowerNodeIdCount.ToString();

            //check to see if the tower placed is in a coverage zone, if it is, update the links
            TowerModel.checkCoverageCollision(_rootCanvas, this.TowerModel, _connectors);

            TowerModel.UpdateLinks(CanvasLeft, CanvasTop, 300, 300, TowerModel);

            TowerModel.checkCoverageCollision(_rootCanvas, this.TowerModel, _connectors);
        }