/// <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); }
/// <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); }
/// <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); }