/// <summary> /// Стандартный конструктор. Инициализирует панель рассчёта дистанций /// </summary> /// <param name="w">Ссылка на главное окно с отображаемой картой</param> public DistanceMeasureControl(MapWindow w) { InitializeComponent(); mapWindow = w; // Создаём делегаты mouseLMBHandler = new MouseButtonEventHandler(MouseLMBDown); mouseRMBHandler = new MouseButtonEventHandler(MouseRMBDown); // Подписываем их на соответствующие события в главном окне mapWindow.MainPanel.MouseLeftButtonDown += mouseLMBHandler; mapWindow.MainPanel.MouseRightButtonDown += mouseRMBHandler; // Инициализируем DistanceLine, добавляем её на главную панель distanceViewer = new DistanceLine(mapWindow.MapPanel, FIRST_MARKER_BRUSH, SECOND_MARKER_BRUSH); distanceViewer.Hide(); // Инициализируем PointMarker-ы, добавляем их на главную панель firstPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); firstPointMarker.SetStrokeColor(FIRST_MARKER_BRUSH); firstPointMarker.Hide(); secondPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); secondPointMarker.SetStrokeColor(SECOND_MARKER_BRUSH); secondPointMarker.Hide(); rmbMenu = this.FindResource("rmbMenu") as ContextMenu; rmbMenu.PlacementTarget = mapWindow.MainPanel; mapWindow.SetStatus("Включён режим: \"Измерение расстояний\""); }
Vector2 GetPosOnCompas(PointMarker marker) { Vector2 playerPos = new Vector2(player.position.x, player.position.z); Vector2 playerFwd = new Vector2(player.forward.x, player.forward.z); float angle = Vector2.SignedAngle(marker.position - playerPos, playerFwd); return(new Vector2(compasUnit * angle, yIcon)); }
public void AddPointMarker(PointMarker marker) { GameObject newMarker = Instantiate(pointIcon, compas.transform); marker.image = newMarker.GetComponent <Image>(); marker.image.sprite = marker.icon; pointMarkers.Add(marker); }
public void CreatePosMarker(PathDatabase.LineInfo info, PointMarker.MarkerType type, int code = -1) { PointMarker pt = Instantiate(posMarker, Vector3.zero, Quaternion.identity).GetComponent <PointMarker>(); pt.Set(info, type, code); pt.transform.SetParent(parent); ptList.Add(pt); }
public void DeleteLatelyMarker() { int count = ptList.Count; PointMarker pt = ptList[count - 1]; ptList.RemoveAt(count - 1); Destroy(pt.gameObject); UpdatePointMarker(); }
Pixbuf GetRowMarker(object row) { return(PointMarker.GetIconPixbuf( ViewModel.GetAddressMarker( ViewModel.GetMarkerIndex( row, pixbufMarkers.Length ) ).ToString(), ViewModel.GetMarkerShape(row) )); }
void UpdateRoutesPixBuf() { if (pixbufMarkers != null && ViewModel.RoutesOnDay.Count == pixbufMarkers.Length) { return; } pixbufMarkers = new Pixbuf[ViewModel.RoutesOnDay.Count]; for (int i = 0; i < ViewModel.RoutesOnDay.Count; i++) { PointMarkerShape shape = ViewModel.GetMarkerShapeFromBottleQuantity(ViewModel.RoutesOnDay[i].TotalFullBottlesToClient); pixbufMarkers[i] = PointMarker.GetIconPixbuf(ViewModel.GetAddressMarker(i).ToString(), shape); } }
public static LineAndMarker <MarkerPointsGraph> AddLineGraph(this Plotter2D plotter, IPointDataSource pointSource, Pen linePen, PointMarker marker, Description description) { if (pointSource == null) { throw new ArgumentNullException("pointSource"); } var res = new LineAndMarker <MarkerPointsGraph>(); if (linePen != null) // We are requested to draw line graphs { LineGraph graph = new LineGraph { DataSource = pointSource, LinePen = linePen }; if (description != null) { NewLegend.SetDescription(graph, description.Brief); graph.Description = description; } if (marker == null) { // Add inclination filter only to graphs without markers // graph.Filters.Add(new InclinationFilter()); } res.LineGraph = graph; graph.Filters.Add(new FrequencyFilter()); plotter.Children.Add(graph); } if (marker != null) // We are requested to draw marker graphs 画标记点 { MarkerPointsGraph markerGraph = new MarkerPointsGraph { DataSource = pointSource, Marker = marker }; res.MarkerGraph = markerGraph; plotter.Children.Add(markerGraph); } return(res); }
private PointMarker FillBaseMarker(GeographicGroup baseMarker) { var addressMarker = new PointMarker( new PointLatLng( (double)baseMarker.BaseLatitude, (double)baseMarker.BaseLongitude ), PointMarkerType.vodonos, PointMarkerShape.custom ) { Tag = baseMarker }; return(addressMarker); }
private void Form1_Load(object sender, EventArgs e) { TileManager.Singleton.TileLoaders = new List <TileImgLoaderBase> { //new TileImgFileLoader("map"){ Priority=999,ThreadCount=5}, new GoogleChinaHybridTileLoader() { Priority = 9, ThreadCount = 10 }, //new TileImgHttpLoader("http://127.0.0.1:8888/map"){ Priority=1}, }; this.bMapControl1.IsShowMapMsg = true; this.bMapControl1.IsShowRenderMsg = true; this.bMapControl1.IsShowGrid = false; this.bMapControl1.TileType = TileType.GCJ02; this.bMapControl1.MapCenter = new BMap.Core.Model.PointLatLng(113.415041, 23.1824994); this.bMapControl1.Zoom = 17; //this.bMapControl1.GridLineColor = Color.FromArgb(0x55, 0x99, 0x99, 0x99); //this.bMapControl1.GridLineColor =Color.Blue; var m = new AreaMarker("多边形1"); m.lstPLatLng = new List <BMap.Core.Model.PointLatLng>() { new BMap.Core.Model.PointLatLng(113.415041, 23.1824994), new BMap.Core.Model.PointLatLng(113.415241, 23.1824994), new BMap.Core.Model.PointLatLng(113.415241, 23.1824194), new BMap.Core.Model.PointLatLng(113.415041, 23.1823594) }; layer1.AddMarker(m); var pm = new PointMarker("点1") { Position = new BMap.Core.Model.PointLatLng(113.415441, 23.1823494) }; layer1.AddMarker(pm); bMapControl1.AddLayer(layer1); bMapControl1.UserDraw = new UserDrawing(bMapControl1); //bMapControl1.UserDraw.DrawMode = EditMode.DrawPie; }
private PointMarker FillAddressMarker(Order order, PointMarkerType type, PointMarkerShape shape, GMapOverlay overlay, RouteList route) { var addressMarker = new PointMarker(new PointLatLng((double)order.DeliveryPoint.Latitude, (double)order.DeliveryPoint.Longitude), type, shape) { Tag = order }; string ttText = order.DeliveryPoint.ShortAddress; if (order.Total19LBottlesToDeliver > 0) { ttText += string.Format("\nБутылей 19л: {0}", order.Total19LBottlesToDeliver); } if (order.Total6LBottlesToDeliver > 0) { ttText += string.Format("\nБутылей 6л: {0}", order.Total6LBottlesToDeliver); } if (order.Total600mlBottlesToDeliver > 0) { ttText += string.Format("\nБутылей 0,6л: {0}", order.Total600mlBottlesToDeliver); } ttText += string.Format($"\nЗабор бутылей: {order.BottlesReturn}"); ttText += string.Format("\nВремя доставки: {0}\nРайон: {1}", order.DeliverySchedule?.Name ?? "Не назначено", ViewModel.LogisticanDistricts?.FirstOrDefault(x => x.DistrictBorder.Contains(order.DeliveryPoint.NetTopologyPoint))?.DistrictName); addressMarker.ToolTipText = ttText; var identicalPoint = overlay.Markers.Count(g => g.Position.Lat == (double)order.DeliveryPoint.Latitude && g.Position.Lng == (double)order.DeliveryPoint.Longitude); var pointShift = 5; if (identicalPoint >= 1) { addressMarker.Offset = new System.Drawing.Point(identicalPoint * pointShift, identicalPoint * pointShift); } if (route != null) { addressMarker.ToolTipText += string.Format(" Везёт: {0}", route.Driver.ShortName); } return(addressMarker); }
public void UpdatePointMarker() { int count = ptList.Count; for (int i = 0; i < count; ++i) { if (ptList[i].markerType == PointMarker.MarkerType.BezierPointer) { ptList[i].SetLine(); PointMarker check = ptList[i].CheckType(); if (check != null) { ptList.RemoveAt(i); Destroy(check.gameObject); } } } }
public override void OnLeftMouseButtonDown(Location clickLocation, Vector imageCor, Vector imageSizePixel) { if (clickLocation == Location.NONE) { return; } // hit an existing? _selectedMarker = MarkerHitTest(clickLocation, imageCor, imageSizePixel); if (_selectedMarker >= 0) { return; } var newMarker = new PointMarker() { StartMarker = imageCor, EndMarker = imageCor, InterpolatedMarker = imageCor }; _selectedMarker = _markerList.Count; _markerList.Add(newMarker); }
void ConfigureWnd() { var ms = new List <object[]> { new object[] { PointMarker.GetIconPixbuf("vodonos", PointMarkerShape.custom), PointMarker.GetIconPixbuf("vodonos", PointMarkerShape.custom), PointMarker.GetIconPixbuf("vodonos", PointMarkerShape.custom), PointMarker.GetIconPixbuf("vodonos", PointMarkerShape.custom), "База\\Склад погрузки-разгрузки" }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("orange", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("green", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("red", PointMarkerShape.overduetriangle), "Адрес с количеством бутылей не более 5 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.circle), PointMarker.GetIconPixbuf("orange", PointMarkerShape.circle), PointMarker.GetIconPixbuf("green", PointMarkerShape.circle), PointMarker.GetIconPixbuf("orange", PointMarkerShape.overduecircle), "Адрес с количеством бутылей 6-9 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.square), PointMarker.GetIconPixbuf("orange", PointMarkerShape.square), PointMarker.GetIconPixbuf("green", PointMarkerShape.square), PointMarker.GetIconPixbuf("green", PointMarkerShape.overduesquare), "Адрес с количеством бутылей 10-19 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.cross), PointMarker.GetIconPixbuf("orange", PointMarkerShape.cross), PointMarker.GetIconPixbuf("green", PointMarkerShape.cross), PointMarker.GetIconPixbuf("red", PointMarkerShape.overduecross), "Адрес с количеством бутылей 20-39 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.star), PointMarker.GetIconPixbuf("orange", PointMarkerShape.star), PointMarker.GetIconPixbuf("green", PointMarkerShape.star), PointMarker.GetIconPixbuf("orange", PointMarkerShape.overduestar), "Адрес с количеством бутылей не менее 40 шт." }, new object[] { PointMarker.GetIconPixbuf("black", PointMarkerShape.circle), PointMarker.GetIconPixbuf("black", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("black", PointMarkerShape.star), PointMarker.GetIconPixbuf("black", PointMarkerShape.overduecircle), "Адрес не в маршрутном листе" }, new object[] { PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.circle), PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.star), PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.overduecircle), "График доставки продолжительностью менее часа" }, new object[] { PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.star), PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.overduecircle), "Адрес с временем доставки до 12:00" }, new object[] { PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.star), PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.overduecircle), "Адрес с временем доставки до 15:00" }, new object[] { PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.star), PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.overduecircle), "Адрес с временем доставки до 18:00" }, new object[] { PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.star), PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.overduecircle), "Адрес с временем доставки после 18:00" } }; lblInfo.Text = "Перетаскивание карты, правой кнопкой мыши.\n" + "Обычное(прямоугольное) выделение адресов на карте осуществляется перемещением мыши с нажатой левой кнопкой.\n" + "Для выделения по одному маркеру, включите CAPS LOCK и левой кнопкой мыши для выделения\\удаления, кликните по нему\n" + "Для выделения полигоном(сложной формой), зажмите CTRL и левой кнопкой установите углы очерчивающие полигон. " + "В процессе работы CTRL можно отпускать и зажимат заново для добавления новых углов. " + "Уже зафиксированные углы полигона можно перетаскивать левой кнопкой мыши." + "\n\tОписание маркеров:"; labelOrdersInfo.Text = "Маркеры в виде звезды - переносы из недовозов, возникших по вине водителей или отделов ВВ" + "\n -Оперативная сводка не включает в себя:" + "\n- Самовывозы" + "\n- Закрывающие документы" + "\n- Выезды мастера" + "\n- Заказы, закрытые без доставки" + "\n- Статусы Новый, Отменен, Ожидание оплаты"; lblInfo.LineWrap = true; lblInfo.WidthRequest = 400; lblInfo.LineWrapMode = Pango.WrapMode.WordChar; treeMarkers.HeadersVisible = false; treeMarkers.ColumnsConfig = FluentColumnsConfig <object[]> .Create() .AddColumn("Маркер") .AddPixbufRenderer(x => x[0] as Pixbuf) .AddPixbufRenderer(x => x[1] as Pixbuf) .AddPixbufRenderer(x => x[2] as Pixbuf) .AddPixbufRenderer(x => x[3] as Pixbuf) .AddTextRenderer(x => "...") .AddColumn("Описание") .AddTextRenderer(x => " - " + (string)x[4]) .Finish(); treeMarkers.SetItemsSource(ms); }
/// <summary> /// Clears the point marker's coordinates. /// </summary> public void ClearAllPointMarkers() { _pointMarkers.Clear(); _singlePointMarker = null; }
void ConfigureWnd() { var ms = new List <object[]> { new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("orange", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("green", PointMarkerShape.triangle), "Адрес с количеством бутылей менее 6 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.circle), PointMarker.GetIconPixbuf("orange", PointMarkerShape.circle), PointMarker.GetIconPixbuf("green", PointMarkerShape.circle), "Адрес с количеством бутылей 6-10 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.square), PointMarker.GetIconPixbuf("orange", PointMarkerShape.square), PointMarker.GetIconPixbuf("green", PointMarkerShape.square), "Адрес с количеством бутылей 10-20 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.cross), PointMarker.GetIconPixbuf("orange", PointMarkerShape.cross), PointMarker.GetIconPixbuf("green", PointMarkerShape.cross), "Адрес с количеством бутылей 20-40 шт." }, new object[] { PointMarker.GetIconPixbuf("red", PointMarkerShape.star), PointMarker.GetIconPixbuf("orange", PointMarkerShape.star), PointMarker.GetIconPixbuf("green", PointMarkerShape.star), "Адрес с количеством бутылей более 40 шт." }, new object[] { PointMarker.GetIconPixbuf("black", PointMarkerShape.circle), PointMarker.GetIconPixbuf("black", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("black", PointMarkerShape.star), "Адрес не в маршрутном листе" }, new object[] { PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.circle), PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("black_and_red", PointMarkerShape.star), "График доставки продолжительностью менее часа" }, new object[] { PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("red_stripes", PointMarkerShape.star), "Адрес с временем доставки до 12:00" }, new object[] { PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("yellow_stripes", PointMarkerShape.star), "Адрес с временем доставки до 15:00" }, new object[] { PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("green_stripes", PointMarkerShape.star), "Адрес с временем доставки до 18:00" }, new object[] { PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.circle), PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.triangle), PointMarker.GetIconPixbuf("grey_stripes", PointMarkerShape.star), "Адрес с временем доставки после 18:00" } }; lblInfo.Text = "Перетаскивание карты, правой кнопкой мыши.\n" + "Обычное(прямоугольное) выделение адресов на карте осуществляется перемещением мыши с нажатой левой кнопкой.\n" + "Для выделения по одному маркеру, включите CAPS LOCK и левой кнопкой мыши для выделения\\удаления, кликните по нему\n" + "Для выделения полигоном(сложной формой), зажмите CTRL и левой кнопкой установите углы очерчивающие полигон. " + "В процессе работы CTRL можно отпускать и зажимат заново для добавления новых углов. " + "Уже зафиксированные углы полигона можно перетаскивать левой кнопкой мыши." + "\n\tОписание маркеров:"; lblInfo.LineWrap = true; lblInfo.WidthRequest = 400; lblInfo.LineWrapMode = Pango.WrapMode.WordChar; treeMarkers.HeadersVisible = false; treeMarkers.ColumnsConfig = FluentColumnsConfig <object[]> .Create() .AddColumn("Маркер") .AddPixbufRenderer(x => x[0] as Pixbuf) .AddPixbufRenderer(x => x[1] as Pixbuf) .AddPixbufRenderer(x => x[2] as Pixbuf) .AddTextRenderer(x => "...") .AddColumn("Описание") .AddTextRenderer(x => " - " + (string)x[3]) .Finish(); treeMarkers.SetItemsSource(ms); }
public DirectGeodTaskControl(MapWindow w) { InitializeComponent(); mapWindow = w; // Создаём делегаты mouseLMBHandler = new MouseButtonEventHandler(MouseLMBDown); mouseRMBHandler = new MouseButtonEventHandler(MouseRMBDown); // Подписываем их на соответствующие события в главном окне mapWindow.MainPanel.MouseLeftButtonDown += mouseLMBHandler; mapWindow.MainPanel.MouseRightButtonDown += mouseRMBHandler; // Инициализируем PointMarker-ы, добавляем их на главную панель APointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); APointMarker.SetStrokeColor(A_POINT_MARKER_BRUSH); APointMarker.Hide(); BPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); BPointMarker.SetStrokeColor(B_POINT_MARKER_BRUSH); BPointMarker.Hide(); CPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); CPointMarker.SetStrokeColor(C_POINT_COLOR_BRUSH); CPointMarker.Hide(); //studAPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); //studAPointMarker.SetStrokeColor(STUD_A_POINT_MARKER_BRUSH); //studAPointMarker.Hide(); //studBPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); //studBPointMarker.SetStrokeColor(STUD_B_POINT_MARKER_BRUSH); //studBPointMarker.Hide(); //studCPointMarker = new PointMarker(mapWindow.MapPanel, 0, 0); //studCPointMarker.SetStrokeColor(STUD_C_POINT_MARKER_BRUSH); //studCPointMarker.Hide(); // Выставим соответствующий цвет шрифтов, чтобы маркеры на карте можно было отличить друг от друга APointHint.Foreground = A_POINT_MARKER_BRUSH; BPointHint.Foreground = B_POINT_MARKER_BRUSH; CPointHint.Foreground = C_POINT_COLOR_BRUSH; // Инициализируем DistanceLine-ы, добавим их на панель ABDistanceLine = new DistanceLine(mapWindow.MapPanel, A_POINT_MARKER_BRUSH, B_POINT_MARKER_BRUSH); ABDistanceLine.Hide(); BCDistanceLine = new DistanceLine(mapWindow.MapPanel, B_POINT_MARKER_BRUSH, C_POINT_COLOR_BRUSH); BCDistanceLine.Hide(); CADistanceLine = new DistanceLine(mapWindow.MapPanel, C_POINT_COLOR_BRUSH, A_POINT_MARKER_BRUSH); CADistanceLine.Hide(); //studABDistanceLine = new DistanceLine(mapWindow.MapPanel, STUD_A_POINT_MARKER_BRUSH, STUD_B_POINT_MARKER_BRUSH); //studABDistanceLine.Hide(); //studBCDistanceLine = new DistanceLine(mapWindow.MapPanel, STUD_B_POINT_MARKER_BRUSH, STUD_C_POINT_MARKER_BRUSH); //studBCDistanceLine.Hide(); //studCADistanceLine = new DistanceLine(mapWindow.MapPanel, STUD_C_POINT_MARKER_BRUSH, STUD_A_POINT_MARKER_BRUSH); //studCADistanceLine.Hide(); rmbMenu = this.FindResource("rmbMenu") as ContextMenu; rmbMenu.PlacementTarget = mapWindow.MainPanel; mapWindow.SetStatus("Включён режим: \"Прямая геодезическая задача\""); }
/// <summary> /// Creates a new point marker and adds it to the _pointMarkers list. /// If the _pointMarkers list is not empty, the Draw() function goes into time-slice mode. /// </summary> /// <param name="centre">The centre of the new marker</param> /// <param name="pointValue">The value of the point (its label)</param> /// <param name="highlight"> null for an output point, true for a used input point, false for an unused input point.</param> public void CreatePointMarker(PointF centre, string pointValue, bool isInput, bool isUsed) { PointMarker pm = new PointMarker(centre.X, centre.Y, pointValue, _scale, _fieldPanelCentreX, _fieldPanelCentreY, isInput, isUsed); _pointMarkers.Add(pm); }
/// <summary> /// Creates a single point marker (displayed while the right-mouse button point-info /// message box is displayed). /// </summary> /// <param name="centre">The centre of the new marker</param> /// <param name="pointValue">The value of the point (its label)</param> /// <param name="highlight"> null for an output point, true for a used input point, false for an unused input point.</param> public void CreateSinglePointMarker(ExpansionFieldPointInfo pointInfo) { _singlePointMarker = new PointMarker(pointInfo.location.X, pointInfo.location.Y, pointInfo.value.ToString(), _scale, _fieldPanelCentreX, _fieldPanelCentreY, pointInfo.isInput, pointInfo.isUsed); }
public void PlayerSquadMove(int breach, int state, bool sync) { gameObject.GetComponent <LineRenderer>().positionCount = 0; placing = false; PointMarker thisPoint = Instantiate(pointMarker, tempPos, Quaternion.identity).GetComponent <PointMarker>(); thisPoint.SetColumn(true, tempColor); PlayerRemovePoint(playerSelect); for (int k = 0; k < 3; k++) { if (playerSelect[k]) { playerLastPoint[k] = thisPoint.transform; playerSquad[k].SetOrder(false); } } PlayerUpdateLeaders(); int firstSelect = -1; for (int i = 0; i < 3; i++) { if (playerSelect[i]) { if (firstSelect == -1) { firstSelect = i; } m_gui.SetText(i, "MOVING"); if (breach != -1) { SquadMember.DoorState thisState = (SquadMember.DoorState)breach; string stateString = thisState.ToString(); stateString = stateString.Replace("DOOR_", ""); if (sync) { stateString = "SYNC " + stateString; } else { stateString += "ING DOOR"; } m_gui.SetText(i, stateString); } player.SetFollowing(i, false); } } if (PlayerGetLeader(firstSelect) == -1) { return; } else { if (state == (int)SquadMember.GoalState.GOAL_OBJECTIVE) { playerSquad[PlayerGetLeader(firstSelect)].SetObjective(tempObjective); } playerSquad[PlayerGetLeader(firstSelect)].SetWaypoint(thisPoint.transform, state); if (breach != -1) { playerSquad[PlayerGetLeader(firstSelect)].EnterDoor(tempDoor, tempSide, breach); playerSquad[PlayerGetLeader(firstSelect)].SetSync(sync); } } }
void DrawPath(bool setPath) { UnityEngine.AI.NavMeshPath testPath = new UnityEngine.AI.NavMeshPath(); UnityEngine.AI.NavMeshAgent agent = squad[squadSelect, 0].GetComponent <UnityEngine.AI.NavMeshAgent>(); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { agent.CalculatePath(hit.point, testPath); Vector3 prevCorner = testPath.corners[0]; Vector3 spawnPos = prevCorner; float lifeSpan = 2.0f; for (int i = 1; i < testPath.corners.Length; i++) { Vector3 curCorner = testPath.corners[i]; Vector3 dir = Vector3.Normalize((curCorner + Vector3.up) - (prevCorner + Vector3.up)); for (float j = 0.0f; j < Vector3.Distance(prevCorner, curCorner); j += 1.0f) { if (!Physics.Raycast(prevCorner + (j - 1) * dir, dir, out hit, 1.0f, (1 << 12))) { if (!setPath) { PointMarker thisPoint = Instantiate(pointMarker, prevCorner + Vector3.Normalize(curCorner - prevCorner) * j, Quaternion.identity).GetComponent <PointMarker>(); thisPoint.SetLifespan(0.005f); thisPoint.SetColorMult(lifeSpan); thisPoint.SetColor(colors[squadSelect]); lifeSpan += 0.15f; } else if (j >= (Vector3.Distance(prevCorner, curCorner) - 1.0f) && i >= testPath.corners.Length - 1) { PointMarker thisPoint = Instantiate(pointMarker, prevCorner + Vector3.Normalize(curCorner - prevCorner) * j, Quaternion.identity).GetComponent <PointMarker>(); thisPoint.SetColumn(true, colors[squadSelect]); if (lastPoint[squadSelect] != null) { Destroy(lastPoint[squadSelect].gameObject); } lastPoint[squadSelect] = thisPoint.transform; SquadMove(thisPoint.transform); } } else { i = 90000; if (setPath) { PointMarker thisPoint = Instantiate(pointMarker, prevCorner + Vector3.Normalize(curCorner - prevCorner) * (j - 1.0f), Quaternion.identity).GetComponent <PointMarker>(); thisPoint.SetColumn(true, colors[squadSelect]); if (lastPoint[squadSelect] != null) { Destroy(lastPoint[squadSelect].gameObject); } lastPoint[squadSelect] = thisPoint.transform; SquadMove(thisPoint.transform); } break; } } prevCorner = curCorner; } } }