public void CreateMarker() { try { GameObject prefab = Resources.Load($"Prefabs/Marker") as GameObject; CurrentMarker = Instantiate(prefab); var newMarker = new Marker() { Previous = (MarkerList != null && MarkerList.Count > 0) ? MarkerList.Last() : null, Position = CurrentMarker.transform.position, }; MarkerList.Add(newMarker); shouldUpdateMovingSegmentLine = true; if (MarkerList.Count > 1) { BuildSegmentLine(PreviousMarker.transform.position, CurrentMarker.transform.position); } shouldUpdateMetrics = true; } catch (Exception ex) { debugText.text = $"{ex.Message}"; } }
public void FinishAddingMarkers() { try { shouldUpdateMetrics = false; shouldUpdateMovingSegmentLine = false; var lastMarker = new Marker() { Previous = MarkerList.Last(), Position = MarkerList.First().Position, }; Vector3 initialPos = MarkerList.Last().Position; Vector3 finalPos = MarkerList.First().Position; perimeterDistance += Vector3.Distance(finalPos, initialPos); debugText.text = perimeterDistance > 1 ? $"\n TOTAL: {Math.Round(perimeterDistance, 2)} mts." : $"\n TOTAL: {Math.Round(perimeterDistance, 2) * 100} cms."; BuildSegmentLine(initialPos, finalPos); movingSegmentLine.SetActive(false); MarkerList.Add(lastMarker); CreateMesh(); } catch (Exception ex) { debugText.text = ex.Message; } }
public void TestTranslateCaption01() { using (MarkerList markerList = MarkerListFactory.CreateMarkerList01()) { markerList.TranslateCaption(); } }
public void TestInitializeDataMarkerListDataGridView01() { using (MarkerList markerList = MarkerListFactory.CreateMarkerList01()) { Accessor markerListAccessor = ReflectionAccessor.Wrap(markerList); markerListAccessor.Call("InitializeDataMarkerListDataGridView"); } }
public void TestPopulateDataMarkerListDataGridView01() { using (MarkerList markerList = MarkerListFactory.CreateMarkerList01()) { int mode = 1; markerList.PopulateDataMarkerListDataGridView(mode); } }
public void TestInitializeComponent01() { using (MarkerList markerList = MarkerListFactory.CreateMarkerList01()) { Accessor markerListAccessor = ReflectionAccessor.Wrap(markerList); markerListAccessor.Call("InitializeComponent"); } }
public void TestDispose01() { using (MarkerList markerList = MarkerListFactory.CreateMarkerList01()) { bool disposing = false; Accessor markerListAccessor = ReflectionAccessor.Wrap(markerList); markerListAccessor.Call("Dispose", disposing); } }
private static string GenerateMarkerId(MarkerList markers, string markerId) { int c = 1; string id = markerId; while (markers.Any(i => i.Id == id)) { id = markerId + c; c++; } return(id); }
public void FixtureSetUp() { markerList = new MarkerList(); MarkerListController ctl = new MarkerListController(); ctl.initMarkerTable(); List <EtyMarker> list = new List <EtyMarker>(); ctl.SetMarkerTable(list); ctl.SetGrpName("Test_GrpName"); markerList.AttachController(ctl); ctl.AttachCallBack(null, markerList); }
private async Task SetMarkerListeners() { if (_listeningLoneMarkerKeys == null) { _listeningLoneMarkerKeys = new List <string>(); } //use GetMappedValue<T> to map and extract the array of guid keys of unclustered markers GoogleMapsComponents.JsObjectRef jsRef = new GoogleMapsComponents.JsObjectRef(JsObjectRef, _markerClustering.Guid); var guidStrings = (await jsRef.GetMappedValue <List <string> >("clusters", "marker", "guidString")) .Where((x) => { return(x != null); }); if (!guidStrings.Any()) { return; } // Among markers not in clusters, find those which don't yet have a listener MarkerList deafLoneMarkersList = await MarkerList.CreateAsync(JsObjectRef, new Dictionary <string, MarkerOptions>()); foreach (var key in guidStrings) { var markr = markers.First(x => key == x.Guid.ToString()); if (_listeningLoneMarkerKeys.Contains(key)) { continue; } deafLoneMarkersList.BaseListableEntities.Add(key, markr); _listeningLoneMarkerKeys.Add(key); } if (!deafLoneMarkersList.BaseListableEntities.Any()) { return; } await deafLoneMarkersList.AddListeners <MouseEvent>(deafLoneMarkersList.Markers.Keys.ToList(), "click", async (o, e) => { //await JsObjectRef.InvokeVoidAsync("loneMarkerClickEvent", e); }); // if all points set, clean up idle listener. if (_listeningLoneMarkerKeys.Count == markers.Count) { _listeningLoneMarkerKeys = null; await _markerClustering.ClearListeners("clusteringend"); } }
private void ShiftTimeMarker(object sender, EventArgs e) { if (dataGridView1.SelectedItems.Count == 1 && GetDataGrid().SelectedItems[0].Tag is Game.Marker) { var mi = (ToolStripMenuItem)sender; var shift = Convert.ToInt32(mi.Tag); foreach (ListViewItem row in GetDataGrid().SelectedItems) { var mki = (Game.Marker)row.Tag; Log.Write("MANUAL SHIFT TIME BEFORE " + mki.ToString()); mki.TimeVideo += shift; mki.FlagUpdate = true; mki.row = null; Log.Write("MANUAL SHIFT TIME AFTER " + mki.ToString()); } /*Marker mk = (Game.Marker)GetDataGrid().SelectedItems[0].Tag; * List<Marker> sibl = new List<Marker>(); * if (mk.ActionId == 14) * sibl.Add(mk); * else * sibl = game.GetSiblings(mk); * * int shift = Convert.ToInt32(mi.Tag); * * foreach (Game.Marker mki in sibl) * { * Log.Write("MANUAL SHIFT TIME BEFORE " + mki.ToString()); * mki.TimeVideo += shift; * mki.FlagUpdate = true; * mki.row = null; * Log.Write("MANUAL SHIFT TIME AFTER " + mk.ToString()); * }*/ lock (game.Markers) { MarkerList.SaveToFile(game.Match.Id, game.Markers); } lock (game.Markers) game.RecalcActualTime(game.Markers, game.Half); ReloadDataGridView(true); } }
private async Task AddMarkersGroup(IEnumerable <LatLngLiteral> coordinates) { if (_markerList == null) { _markerList = await MarkerList.CreateAsync( map1.JsRuntime, coordinates.ToDictionary(s => Guid.NewGuid().ToString(), y => new MarkerOptions() { Position = new LatLngLiteral() { Lng = y.Lng, Lat = y.Lat }, Map = map1.InteropObject, //Icon = new Icon() { Url = s.MarkerIconPath, ScaledSize = iconSize, Anchor = iconAnchor }, Clickable = true, Title = Guid.NewGuid().ToString(), Visible = true }) ); } else { var cordDic = coordinates.ToDictionary(s => Guid.NewGuid().ToString(), y => new MarkerOptions() { Position = new LatLngLiteral() { Lng = y.Lng, Lat = y.Lat }, Map = map1.InteropObject, //Icon = new Icon() { Url = s.MarkerIconPath, ScaledSize = iconSize, Anchor = iconAnchor }, Clickable = true, Title = Guid.NewGuid().ToString(), Visible = true }); await _markerList.AddMultipleAsync(cordDic); } foreach (var latLngLiteral in coordinates) { await bounds.Extend(latLngLiteral); } await FitBounds(); }
IEnumerator UpdateMovingSegmentLine() { // segment line var finalPos = planeFinder.GetComponent <PlaneFinderBehaviour>().PlaneIndicator.transform.localPosition; var initialPos = MarkerList.Last().Position; Vector3 between = finalPos - initialPos; float distance = between.magnitude; movingSegmentLine.transform.localScale = new Vector3(0.01f, 0.01f, distance); var pos = initialPos + (between / 2); movingSegmentLine.transform.position = pos; movingSegmentLine.transform.LookAt(finalPos); yield return(new WaitForSeconds(.1f)); }
private void ChangeToPickUp2(object sender, EventArgs e) { if (dataGridView1.SelectedItems.Count == 1 && GetDataGrid().SelectedItems[0].Tag is Game.Marker) { var mi = (ToolStripMenuItem)sender; Marker mk = (Game.Marker)GetDataGrid().SelectedItems[0].Tag; mk.ActionId = 2; mk.ActionType = 4; mk.FlagUpdate = true; lock (game.Markers) { MarkerList.SaveToFile(game.Match.Id, game.Markers); } UpdateGridView((Game.Marker)mk); } }
private void InsertPickUp(object sender, EventArgs e) { if (dataGridView1.SelectedItems.Count == 1 && GetDataGrid().SelectedItems[0].Tag is Game.Marker) { var mi = (ToolStripMenuItem)sender; Marker mk = (Game.Marker)GetDataGrid().SelectedItems[0].Tag; game.Insert(new Game.Marker(game, 2, 5, mk.Half, mk.TimeVideo) { Player1 = mk.Player1 }); lock (game.Markers) { MarkerList.SaveToFile(game.Match.Id, game.Markers); } ReloadDataGridView(true); } }
private DeleteMarker(MarkerList list, Marker marker) { List = list; Marker = marker; }
public ActionResult GetMarkers() { MarkerList markers = GetMarkersObjects(); return(Json(markers, JsonRequestBehavior.AllowGet)); }
private void CorrectMarkerChangedPlayers(object sender, EventArgs e) { if (dataGridView1.SelectedItems.Count == 1 && GetDataGrid().SelectedItems[0].Tag is Game.Marker && ((Game.Marker)GetDataGrid().SelectedItems[0].Tag).ActionId == 14 && ((Game.Marker)GetDataGrid().SelectedItems[0].Tag).Player1 != null && ((Game.Marker)GetDataGrid().SelectedItems[0].Tag).Player2 != null) { Marker mk = (Game.Marker)GetDataGrid().SelectedItems[0].Tag; Marker mki = new Game.Marker(game); mki.Assign(mk); Marker mk1 = null; if (mk.player2_id > 0 && game.Markers.Any(o => !o.FlagDel && o.Half.Index == mk.Half.Index && o.TimeVideo < mk.TimeVideo && o.ActionId == 14 && o.player1_id == mk.player2_id)) { mk1 = game.Markers.Where(o => !o.FlagDel && o.Half.Index == mk.Half.Index && o.TimeVideo < mk.TimeVideo && o.ActionId == 14 && o.player1_id == mk.player2_id) .OrderByDescending(o => o.TimeVideo).First(); } Marker mk2 = null; if (mk.player1_id > 0 && game.Markers.Any(o => !o.FlagDel && o.Half.Index == mk.Half.Index && o.TimeVideo > mk.TimeVideo && o.ActionId == 14 && o.player2_id == mk.player1_id)) { mk2 = game.Markers.Where(o => !o.FlagDel && o.Half.Index == mk.Half.Index && o.TimeVideo > mk.TimeVideo && o.ActionId == 14 && o.player2_id == mk.player1_id) .OrderBy(o => o.TimeVideo).First(); } var form = new CorrectChangedPlayersMarkerForm(game, mki, mk1, mk2); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Log.Write("MANUAL CORRECT BEFORE " + mk.ToString()); var time_up = mki.TimeVideo != mk.TimeVideo; var team = mk.Player1 != null ? mk.Team1 : mk.Team2;; if (mk1 != null) { if (mk1.Player1 != mki.Player2) { mk1.Player1 = mki.Player2; mk1.FlagUpdate = true; mk1.FlagGuiUpdate = true; UpdateGridView((Game.Marker)mk1); } } if (mk2 != null) { if (mk2.Player2 != mki.Player1) { mk2.Player2 = mki.Player1; mk2.FlagUpdate = true; mk2.FlagGuiUpdate = true; UpdateGridView((Game.Marker)mk2); } } mk.Assign(mki); mk.FlagUpdate = true; mk.FlagGuiUpdate = true; UpdateGridView((Game.Marker)mk); Log.Write("MANUAL CORRECT AFTER " + mk.ToString()); if (time_up) { ReloadDataGridView(true); } lock (game.Markers) MarkerList.SaveToFile(game.Match.Id, game.Markers); } } }
private void DisplayLegend(MarkerList markerList) { var mapLegend = mapRepository.GetMapLegends(markerList); MessageSender.Send(new SendLegendListMessage(mapLegend)); }
private static void HandleDataFromServer(object client) { TcpClient serverConnection = (TcpClient)client; //NetworkStream serverStream = serverConnection.GetStream(); Marker receivedMarker = new Marker(); OptiTrackCamera receivedCamera = new OptiTrackCamera(); BinaryReader binaryReader = new BinaryReader(new BufferedStream(serverConnection.GetStream())); int bytesRead; while (true) { bytesRead = 0; bool readTimestamp = false; try { //blocks until a client sends a message char messageType = binaryReader.ReadChar(); bytesRead = 1; switch (messageType) { case 'M': receivedMarker.MarkerId = binaryReader.ReadInt32(); //if have been sent End of Frame indication //TimeStamp field of End of Frame Indicator contains number of markers in the frame //ie. receivedMarker.TimeStamp = number of markers in list if (receivedMarker.MarkerId == -2147483648) { receivedMarker.TimeStamp = binaryReader.ReadInt32(); readTimestamp = true; MarkerList.RemoveExcessMarkersFromList(receivedMarker.TimeStamp); //MarkerList.MarkerBinList(); if (WholeFrameReceivedEvent != null) { WholeFrameReceivedEvent(); } } if (readTimestamp == false) { receivedMarker.TimeStamp = binaryReader.ReadInt32(); } receivedMarker.xCoordinate = binaryReader.ReadDouble(); receivedMarker.yCoordinate = binaryReader.ReadDouble(); receivedMarker.zCoordinate = binaryReader.ReadDouble(); bytesRead = 36; if (receivedMarker.MarkerId != -2147483648) { MarkerList.AddMarker(receivedMarker); } break; case 'C': receivedCamera.CameraNumber = binaryReader.ReadInt32(); receivedCamera.xCoordinate = binaryReader.ReadDouble(); receivedCamera.yCoordinate = binaryReader.ReadDouble(); receivedCamera.zCoordinate = binaryReader.ReadDouble(); double[] rotationMatrixBuffer = new double[9]; for (int i = 0; i < 9; i++) { rotationMatrixBuffer[i] = binaryReader.ReadDouble(); } receivedCamera.RotationMatrix = rotationMatrixBuffer; bytesRead = 108; OptitrackCameraList.AddCamera(receivedCamera); break; case 'T': if (AvatarSpeedChangedEvent != null) { AvatarSpeedChangedEvent((float)binaryReader.ReadDouble()); bytesRead = 8; } else { binaryReader.ReadDouble(); bytesRead = 8; } break; default: System.Diagnostics.Debug.WriteLine("A transmit error has occured. " + messageType.ToString() + " recieved"); bytesRead = 5; break; } } catch (System.IO.IOException) { // a socket error has occured System.Diagnostics.Debug.WriteLine("Socket error has occured in TCPServer.HandleClientComm"); break; } if (bytesRead == 0) { // the client has disconnected from the server System.Diagnostics.Debug.WriteLine("The client has disconnected from the server"); break; } //else message has been successfully recieved //OptitrackCommandParser commandParser = new OptitrackCommandParser(); //commandParser.handleCommand(recievedCommand[0]); } }
public static MarkerList CreateMarkerList01() { MarkerList markerList = new MarkerList(); return(markerList); }
public static void Perform(MarkerList list, Marker marker) { Document.Current.History.Perform(new DeleteMarker(list, marker)); }
void UpdateMap(bool result) { if (GroupEntries.Count > 0) { // update our list and display SearchResultPrefix.Text = ConnectStrings.GroupFinder_Neighborhood; (ListView.Adapter as GroupArrayAdapter).SetSelectedRow(0); // for the map, ensure it's valid, because Google Play can fail if (Map != null) { Map.Clear( ); MarkerList.Clear( ); Android.Gms.Maps.Model.LatLngBounds.Builder builder = new Android.Gms.Maps.Model.LatLngBounds.Builder(); // add the source position Android.Gms.Maps.Model.MarkerOptions markerOptions = new Android.Gms.Maps.Model.MarkerOptions(); Android.Gms.Maps.Model.LatLng pos = new Android.Gms.Maps.Model.LatLng(SourceLocation.Latitude, SourceLocation.Longitude); markerOptions.SetPosition(pos); markerOptions.InvokeIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueGreen)); builder.Include(pos); Android.Gms.Maps.Model.Marker marker = Map.AddMarker(markerOptions); MarkerList.Add(marker); for (int i = 0; i < GroupEntries.Count; i++) { // add the positions to the map markerOptions = new Android.Gms.Maps.Model.MarkerOptions(); pos = new Android.Gms.Maps.Model.LatLng(GroupEntries[i].Latitude, GroupEntries[i].Longitude); markerOptions.SetPosition(pos); markerOptions.SetTitle(GroupEntries[i].Name); markerOptions.SetSnippet(string.Format("{0:##.0} {1}", GroupEntries[i].DistanceFromSource, ConnectStrings.GroupFinder_MilesSuffix)); builder.Include(pos); marker = Map.AddMarker(markerOptions); MarkerList.Add(marker); } Android.Gms.Maps.Model.LatLngBounds bounds = builder.Build( ); int paddingInPixels = Math.Min(View.Width, (int)(View.Height * .1f)); CameraUpdate camPos = CameraUpdateFactory.NewLatLngBounds(bounds, paddingInPixels); Map.AnimateCamera(camPos); // show the info window for the first (closest) group MarkerList[1].ShowInfoWindow( ); } } else { if (result == true) { // send the analytic and update our list SearchResultPrefix.Text = ConnectStrings.GroupFinder_NoGroupsFound; SearchResultNeighborhood.Text = string.Empty; (ListView.Adapter as GroupArrayAdapter).SetSelectedRow(-1); // validate the map before using. Google Play can error if (Map != null) { // no groups found, so move the camera to the default position Android.Gms.Maps.Model.LatLng defaultPos = new Android.Gms.Maps.Model.LatLng(ConnectConfig.GroupFinder_DefaultLatitude, ConnectConfig.GroupFinder_DefaultLongitude); CameraUpdate camPos = CameraUpdateFactory.NewLatLngZoom(defaultPos, ConnectConfig.GroupFinder_DefaultScale_Android); Map.AnimateCamera(camPos); } } else { // there was actually an error. Let them know. SearchResultPrefix.Text = ConnectStrings.GroupFinder_NetworkError; SearchResultNeighborhood.Text = string.Empty; } } }
private void DoLoadMatchData(object ids) { try { sync.Execute(() => pictureBox1.Visible = true); ShowStatus("Загрузка данных матча...", 0); Web.GetTeamColorsKind(); var idm = Int32.Parse(ids.ToString()); SizeF sizef; game = Web.GetMatchInfo(idm, out sizef); if (game == null) { throw new Exception("Нет матча или выбран неверный тип игры!"); } if (game.Match.Team1 == null || game.Match.Team1.Id == 0) { throw new Exception("Нет команды 1"); } if (game.Match.Team2 == null || game.Match.Team2.Id == 0) { throw new Exception("Нет команды 2"); } if (!sizef.IsEmpty) { game.FieldSize = sizef; } ShowStatus("Загрузка игроков команды " + game.Match.Team2.ToString() + "...", 0); Web.GetPlayers(game.Match.Team2); if (game.Match.Team2.Players.Count == 0) { throw new Exception("Нет состава команды " + game.Match.Team2); } ShowStatus("Загрузка игроков команды " + game.Match.Team1.ToString() + "...", 0); Web.GetPlayers(game.Match.Team1); if (game.Match.Team1.Players.Count == 0) { throw new Exception("Нет состава команды " + game.Match.Team1); } ShowStatus("Загрузка параметров матча...", 0); game.Match.Team1.FinePlaces.Clear(); game.Match.Team1.FinePlayers.Clear(); game.Match.Team2.FinePlaces.Clear(); game.Match.Team2.FinePlayers.Clear(); Web.GetTeamColors(game.Match.Team1); Web.GetTeamColors(game.Match.Team2); var txt = game.Match.Team1.Name + " - " + game.Match.Team2.Name; game.Markers.Clear(); sync.Execute(() => { label1.Text = game.Match.Tournament + " " + game.Match.Date.ToShortDateString() + " " + game.Match.Date.ToLongTimeString(); textBox4.Text = txt; }); ShowStatus("Загрузка маркеров...", 0); var lstSrv = Web.GetMarkers(game, game.Match.Id); List <Marker> lstLoc = MarkerList.LoadFromFile(game, game.Match.Id); foreach (Game.Marker mk in lstLoc) { mk.game = game; } foreach (var mk in lstLoc.Where(o => !o.FlagDel).OrderBy(o => o.Half.Index).ThenBy(o => o.TimeVideo)) { var period = mk.Half.Index; var half = game.HalfList.FirstOrDefault(o => o.Index == period); mk.Half = half; } game.Union(lstLoc, lstSrv); foreach (Game.Marker mk in game.Markers) { mk.row = null; } ShowStatus("Синхронизация...", 0); var pl = game.Match.Team1.Players.Concat(game.Match.Team2.Players).ToList <Player>(); //Восстановление и контроль составов foreach (var mk in game.Markers.Where(o => o.ActionId == 16)) { Team tm = null; try { tm = GetTeam(mk.team1_id, mk); mk.Team1 = tm; } catch (TeamMarkerException ex) { mk.FlagDel = true; ShowStatus(ex.Message, FormShowStatusCode.Error); Thread.Sleep(100); continue; } if (pl.Exists(o => o.Id == mk.player1_id)) { var p = pl.First(o => o.Id == mk.player1_id); if (mk is Game.Marker) { var mkg = (Game.Marker)mk; if (mkg.Num > 0) { p.Number = mkg.Num; } } var tm2 = game.Match.Team1 == tm ? game.Match.Team2 : game.Match.Team1; if (tm2.Players.Exists(o => o.Id == p.Id)) { throw new Exception(String.Format((string)"Ошибка в маркере расстановки {0}. Игрок {1} был в составе {2}, а теперь указан в команде соперника", (object)mk.Id, (object)p, tm2)); } p.Team = tm; mk.Player1 = p; if (!tm.Players.Exists(o => o.Id == p.Id)) { tm.Players.Add(p); } } else { if (mk.player1_id <= 0) { continue; } var p = Web.GetPlayer(mk.player1_id); if (p != null) { p.Team = tm; mk.Player1 = p; if (!tm.Players.Exists(o => o.Id == p.Id)) { tm.Players.Add(p); } if (!pl.Exists(o => o.Id == p.Id)) { pl.Add(p); } } else { throw new Exception("Критическая ошибка: не могу загрузить игрока ID=" + mk.player1_id + " из состава команды " + tm.Name); } } } game.Match.Team1.Players.AddRange( pl.Where(o => o.Team != null && o.Team.Id == game.Match.Team1.Id && !game.Match.Team1.Players.Exists(o1 => o1.Id == o.Id))); game.Match.Team2.Players.AddRange( pl.Where(o => o.Team != null && o.Team.Id == game.Match.Team2.Id && !game.Match.Team2.Players.Exists(o1 => o1.Id == o.Id))); var errmklist = new List <Marker>(); foreach (var mk in game.Markers.Where(o => o.ActionId != 16)) { if (mk.player1_id > 0) { var pla = pl.FirstOrDefault(o => o.Id == mk.player1_id); if (pla == null) { try { mk.Player1 = Web.GetPlayer(mk.player1_id); } catch { mk.FlagDel = true; errmklist.Add(mk); } } else { mk.Player1 = pla; } } else if (mk.team1_id > 0) { try { mk.Team1 = GetTeam(mk.team1_id, mk); } catch (Exception ex) { } } if (mk.player2_id > 0) { var opp = pl.FirstOrDefault(o => o.Id == mk.player2_id); if (opp == null) { try { mk.Player2 = Web.GetPlayer(mk.player2_id);; } catch { mk.FlagDel = true; errmklist.Add(mk); } } else { mk.Player2 = opp; } } else if (mk.team2_id > 0) { try { mk.Team2 = GetTeam(mk.team2_id, mk); } catch (Exception ex) { } } } game.RefreshOvertimes(); sync.Execute(() => { label1.Text = game.Match.Tournament + " " + game.Match.Date.ToShortDateString() + " " + game.Match.Date.ToLongTimeString(); textBox4.Text = txt; }); TeamDataRestore(game.Match.Team1); TeamDataRestore(game.Match.Team2); PlayerConverter.RefreshData(game.Match); TeamConverter.RefreshData(game.Match); sync.Execute(() => { checkBox1.Checked = !game.Match.Team1.Tactics[1].IsValid; checkBox2.Checked = !game.Match.Team1.Tactics[1].IsValid; comboBox1.Items.Clear(); foreach (var tc in game.Match.Team1.TeamColorsKind.Values) { comboBox1.Items.Add(tc); if (tc.Kind == game.Match.Team1.Color.Kind) { comboBox1.SelectedItem = tc; } } comboBox2.Items.Clear(); foreach (var tc in game.Match.Team2.TeamColorsKind.Values) { comboBox2.Items.Add(tc); if (tc.Kind == game.Match.Team2.Color.Kind) { comboBox2.SelectedItem = tc; } } changed_colors = false; }); if (errmklist.Count > 0) { var errmks = String.Empty; for (var i = 0; i < errmklist.Count; i++) { if (i <= 2) { if (i > 0) { errmks += ","; } errmks += errmklist[i].Id; if (i == 2) { errmks += "..."; } } } ShowStatus(String.Format("Ошибочно указаны некоторые игроки. Эти маркеры {0} помечены на удаление.", errmks), FormShowStatusCode.Error); } else { } game.RecalcActualTime(game.Markers, null); sync.Execute(() => hockeyField1.Game = game); ShowStatus("Готово", 0); } catch (Exception ex) { game = null; ShowStatus(ex.Message, FormShowStatusCode.Error); HockeyGui.InvalidateRect(); } finally { sync.Execute(() => { HockeyGui.InvalidateRect(); pictureBox1.Visible = false; }); loading = false; UpdateUI(); } }
public void TestCreateMarkerList01() { using (MarkerList markerList = CreateMarkerList01()) { Assert.IsNotNull(markerList); #region Record State ValueRecorder recorder = new ValueRecorder(); recorder.Record((string)markerList.AccessibleDefaultActionDescription); recorder.Record((string)markerList.AccessibleDescription); recorder.Record((string)markerList.AccessibleName); recorder.Record((AccessibleRole)markerList.AccessibleRole); recorder.Record((bool)markerList.AllowDrop); recorder.Record((bool)markerList.AllowTransparency); recorder.Record((AnchorStyles)markerList.Anchor); recorder.Record((AutoScaleMode)markerList.AutoScaleMode); recorder.Record((bool)markerList.AutoScroll); recorder.Record((bool)markerList.AutoSize); recorder.Record((AutoSizeMode)markerList.AutoSizeMode); recorder.Record((AutoValidate)markerList.AutoValidate); recorder.Record((ImageLayout)markerList.BackgroundImageLayout); recorder.Record((int)markerList.Bottom); recorder.Record((bool)markerList.CanFocus); recorder.Record((bool)markerList.CanSelect); recorder.Record((bool)markerList.Capture); recorder.Record((bool)markerList.CausesValidation); recorder.Record((string)markerList.CompanyName); recorder.Record((bool)markerList.ContainsFocus); recorder.Record((bool)markerList.ControlBox); recorder.Record((bool)markerList.Created); recorder.Record((DialogResult)markerList.DialogResult); recorder.Record((bool)markerList.Disposing); recorder.Record((DockStyle)markerList.Dock); recorder.Record((bool)markerList.Enabled); recorder.Record((bool)markerList.Focused); recorder.Record((FormBorderStyle)markerList.FormBorderStyle); recorder.Record((bool)markerList.HasChildren); recorder.Record((int)markerList.Height); recorder.Record((bool)markerList.HelpButton); recorder.Record((ImeMode)markerList.ImeMode); recorder.Record((bool)markerList.InvokeRequired); recorder.Record((bool)markerList.IsAccessible); recorder.Record((bool)markerList.IsDisposed); recorder.Record((bool)markerList.IsHandleCreated); recorder.Record((bool)markerList.IsMdiChild); recorder.Record((bool)markerList.IsMdiContainer); recorder.Record((bool)markerList.IsMirrored); recorder.Record((bool)markerList.IsRestrictedWindow); recorder.Record((bool)markerList.KeyPreview); recorder.Record((int)markerList.Left); recorder.Record((bool)markerList.MaximizeBox); recorder.Record((bool)markerList.MinimizeBox); recorder.Record((bool)markerList.Modal); recorder.Record((string)markerList.Name); recorder.Record((double)markerList.Opacity); recorder.Record((string)markerList.ProductName); recorder.Record((string)markerList.ProductVersion); recorder.Record((bool)markerList.RecreatingHandle); recorder.Record((int)markerList.Right); recorder.Record((RightToLeft)markerList.RightToLeft); recorder.Record((bool)markerList.RightToLeftLayout); recorder.Record((bool)markerList.ShowIcon); recorder.Record((bool)markerList.ShowInTaskbar); recorder.Record((SizeGripStyle)markerList.SizeGripStyle); recorder.Record((FormStartPosition)markerList.StartPosition); recorder.Record((bool)ReflectionAccessor.Wrap(markerList).GetProperty("System.Windows.Forms.Layout.IArrangedElement.ParticipatesInLayout")); recorder.Record((int)markerList.TabIndex); recorder.Record((bool)markerList.TabStop); recorder.Record((string)markerList.Text); recorder.Record((int)markerList.Top); recorder.Record((bool)markerList.TopLevel); recorder.Record((bool)markerList.TopMost); recorder.Record((bool)markerList.UseWaitCursor); recorder.Record((string)markerList.ViewID); recorder.Record((string)markerList.ViewType); recorder.Record((bool)markerList.Visible); recorder.Record((int)markerList.Width); recorder.Record((FormWindowState)markerList.WindowState); recorder.FinishRecording(); #endregion #region Assertions Assert.IsNull((string)markerList.AccessibleDefaultActionDescription); Assert.IsFalse((bool)markerList.AllowDrop); Assert.AreEqual(global::System.Windows.Forms.AutoScaleMode.Font, (AutoScaleMode)markerList.AutoScaleMode); Assert.AreEqual(global::System.Windows.Forms.AutoValidate.EnablePreventFocusChange, (AutoValidate)markerList.AutoValidate); Assert.IsFalse((bool)markerList.CanFocus); Assert.AreEqual("ST Electronics Ltd", (string)markerList.CompanyName); Assert.IsFalse((bool)markerList.Created); Assert.IsTrue((bool)markerList.Enabled); Assert.IsTrue((bool)markerList.HasChildren); Assert.IsFalse((bool)markerList.InvokeRequired); Assert.IsFalse((bool)markerList.IsHandleCreated); Assert.IsFalse((bool)markerList.IsRestrictedWindow); Assert.IsFalse((bool)markerList.MaximizeBox); Assert.AreEqual(1.0, (double)markerList.Opacity, 1E-7); Assert.IsFalse((bool)markerList.RecreatingHandle); Assert.IsTrue((bool)markerList.ShowIcon); Assert.AreEqual(global::System.Windows.Forms.FormStartPosition.CenterScreen, (FormStartPosition)markerList.StartPosition); Assert.AreEqual("Data Marker Viewer", (string)markerList.Text); Assert.IsFalse((bool)markerList.TopMost); Assert.IsFalse((bool)markerList.Visible); #endregion } }
private SetMarker(MarkerList list, Marker marker) { List = list; Marker = marker; }
private static void HandleDataFromServer(object client) { TcpClient serverConnection = (TcpClient)client; BinaryReader binaryReader = new BinaryReader(new BufferedStream(serverConnection.GetStream())); int bytesRead; while (true) { bytesRead = 0; bool readTimestamp = false; try { //blocks until a client sends a message char messageType = binaryReader.ReadChar(); bytesRead = 1; switch (messageType) { case 'M': // Marker Marker receivedMarker = new Marker(); receivedMarker.MarkerId = binaryReader.ReadInt32(); //if have been sent End of Frame indication if (receivedMarker.MarkerId == -2147483648) { receivedMarker.TimeStamp = binaryReader.ReadInt64(); readTimestamp = true; MarkerList.RemoveExcessMarkersFromList(receivedMarker.TimeStamp); if (WholeFrameReceivedEvent != null) { WholeFrameReceivedEvent(); } } if (readTimestamp == false) { receivedMarker.TimeStamp = binaryReader.ReadInt64(); } receivedMarker.xCoordinate = binaryReader.ReadDouble(); receivedMarker.yCoordinate = binaryReader.ReadDouble(); receivedMarker.zCoordinate = binaryReader.ReadDouble(); bytesRead = 36; if (receivedMarker.MarkerId != -2147483648) { MarkerList.AddMarker(receivedMarker); } break; case 'F': // Filtered Marker Marker receivedFilteredMarker = new Marker(); receivedFilteredMarker.MarkerId = binaryReader.ReadInt32(); //if have been sent End of Frame indication if (receivedFilteredMarker.MarkerId == -2147483648) { receivedFilteredMarker.TimeStamp = binaryReader.ReadInt64(); readTimestamp = true; FilteredMarkerList.RemoveExcessMarkersFromList(receivedFilteredMarker.TimeStamp); if (FilteredMarkerListReceivedEvent != null) { FilteredMarkerListReceivedEvent(FilteredMarkerList.listOfMarkers); } } if (readTimestamp == false) { receivedFilteredMarker.TimeStamp = binaryReader.ReadInt64(); } receivedFilteredMarker.xCoordinate = binaryReader.ReadDouble(); receivedFilteredMarker.yCoordinate = binaryReader.ReadDouble(); receivedFilteredMarker.zCoordinate = binaryReader.ReadDouble(); bytesRead = 36; if (receivedFilteredMarker.MarkerId != -2147483648) { FilteredMarkerList.AddMarker(receivedFilteredMarker); } break; case 'R': // Trackable Trackable receivedTrackable = new Trackable(); receivedTrackable.ID = binaryReader.ReadInt32(); receivedTrackable.TimeStamp = binaryReader.ReadInt64(); if (receivedTrackable.ID == -2147483648) { if (receivedTrackable.TimeStamp == 0) { trackableList.Clear(); } //End of List if (TrackableListReceivedEvent != null) { TrackableListReceivedEvent(trackableList); } //Read in any remaining data out of the buffer receivedTrackable.TrackableIndex = binaryReader.ReadInt32(); receivedTrackable.Name = binaryReader.ReadString(); receivedTrackable.xCoordinate = binaryReader.ReadInt32(); receivedTrackable.yCoordinate = binaryReader.ReadInt32(); receivedTrackable.zCoordinate = binaryReader.ReadInt32(); receivedTrackable.Roll = binaryReader.ReadDouble(); receivedTrackable.Pitch = binaryReader.ReadDouble(); receivedTrackable.Yaw = binaryReader.ReadDouble(); } else { if (trackableList.Count != 0) // alread contains data { //If from a previous time frame, clear the list if (receivedTrackable.TimeStamp != trackableList[0].TimeStamp) { trackableList.Clear(); } } receivedTrackable.TrackableIndex = binaryReader.ReadInt32(); receivedTrackable.Name = binaryReader.ReadString(); receivedTrackable.xCoordinate = binaryReader.ReadInt32(); receivedTrackable.yCoordinate = binaryReader.ReadInt32(); receivedTrackable.zCoordinate = binaryReader.ReadInt32(); receivedTrackable.Roll = binaryReader.ReadDouble(); receivedTrackable.Pitch = binaryReader.ReadDouble(); receivedTrackable.Yaw = binaryReader.ReadDouble(); trackableList.Add(receivedTrackable); } break; case 'J': // Joint Joint receivedJoint = new Joint(); receivedJoint.ID = binaryReader.ReadInt32(); receivedJoint.TimeStamp = binaryReader.ReadInt64(); if (receivedJoint.ID == -2147483648) { if (receivedJoint.TimeStamp == 0) { jointList.Clear(); } //End of List if (JointListReceivedEvent != null) { JointListReceivedEvent(jointList); } //Read in any remaining data out of the buffer receivedJoint.Exists = binaryReader.ReadBoolean(); receivedJoint.Name = binaryReader.ReadString(); receivedJoint.Trackable1 = binaryReader.ReadInt32(); receivedJoint.Trackable2 = binaryReader.ReadInt32(); receivedJoint.RollOffset = binaryReader.ReadDouble(); receivedJoint.PitchOffset = binaryReader.ReadDouble(); receivedJoint.YawOffset = binaryReader.ReadDouble(); receivedJoint.Roll = binaryReader.ReadDouble(); receivedJoint.Pitch = binaryReader.ReadDouble(); receivedJoint.Yaw = binaryReader.ReadDouble(); receivedJoint.xCoordinate = binaryReader.ReadInt32(); receivedJoint.yCoordinate = binaryReader.ReadInt32(); receivedJoint.zCoordinate = binaryReader.ReadInt32(); } else { if (jointList.Count != 0) // alread contains data { //If from a previous time frame, clear the list if (receivedJoint.TimeStamp != jointList[0].TimeStamp) { jointList.Clear(); } } receivedJoint.Exists = binaryReader.ReadBoolean(); receivedJoint.Name = binaryReader.ReadString(); receivedJoint.Trackable1 = binaryReader.ReadInt32(); receivedJoint.Trackable2 = binaryReader.ReadInt32(); receivedJoint.RollOffset = binaryReader.ReadDouble(); receivedJoint.PitchOffset = binaryReader.ReadDouble(); receivedJoint.YawOffset = binaryReader.ReadDouble(); receivedJoint.Roll = binaryReader.ReadDouble(); receivedJoint.Pitch = binaryReader.ReadDouble(); receivedJoint.Yaw = binaryReader.ReadDouble(); receivedJoint.xCoordinate = binaryReader.ReadInt32(); receivedJoint.yCoordinate = binaryReader.ReadInt32(); receivedJoint.zCoordinate = binaryReader.ReadInt32(); jointList.Add(receivedJoint); } break; case 'C': // Camera OptiTrackCamera receivedCamera = new OptiTrackCamera(); receivedCamera.CameraNumber = binaryReader.ReadInt32(); receivedCamera.xCoordinate = binaryReader.ReadDouble(); receivedCamera.yCoordinate = binaryReader.ReadDouble(); receivedCamera.zCoordinate = binaryReader.ReadDouble(); double[] rotationMatrixBuffer = new double[9]; for (int i = 0; i < 9; i++) { rotationMatrixBuffer[i] = binaryReader.ReadDouble(); } receivedCamera.RotationMatrix = rotationMatrixBuffer; bytesRead = 108; OptitrackCameraList.AddCamera(receivedCamera); break; case 'T': // Treadmill (Speed) if (AvatarSpeedChangedEvent != null) { AvatarSpeedChangedEvent((float)binaryReader.ReadDouble()); bytesRead = 8; } else { binaryReader.ReadDouble(); bytesRead = 8; } break; case 'B': //flag type and flag { System.Diagnostics.Debug.WriteLine("MessageType: " + messageType.ToString()); char type = binaryReader.ReadChar(); System.Diagnostics.Debug.WriteLine("Type: " + type.ToString()); bool flag = binaryReader.ReadBoolean(); System.Diagnostics.Debug.WriteLine("Flag: " + flag.ToString()); bytesRead = 9; switch (type) { case 'F': //Toggle Feet { if (ToggleDrawingOfFeetEvent != null) { ToggleDrawingOfFeetEvent(flag); } break; } } break; } default: System.Diagnostics.Debug.WriteLine("A transmit error has occured. " + messageType.ToString() + " recieved"); bytesRead = 5; break; } } catch (System.IO.IOException) { // a socket error has occured System.Diagnostics.Debug.WriteLine("Socket error has occured in TCPServer.HandleClientComm"); break; } if (bytesRead == 0) { // the client has disconnected from the server System.Diagnostics.Debug.WriteLine("The client has disconnected from the server"); break; } } }
IEnumerator UpdateMetrics() { // total distance perimeterDistance = 0.0f; if (MarkerList != null && MarkerList.Count > 1) { foreach (var marker in MarkerList) { var dist = marker.LastSegmentDistance; perimeterDistance += dist; } } debugText.text = perimeterDistance > 1 ? $"\n TOTAL: {Math.Round(perimeterDistance, 2)} mts." : $"\n TOTAL: {Math.Round(perimeterDistance, 2) * 100} cms."; // last segment distance if (MarkerList != null && MarkerList.Count > 0) { var dist = Vector3.Distance(planeFinder.GetComponent <PlaneFinderBehaviour>().PlaneIndicator.transform.localPosition, MarkerList.Last().Position); debugText.text += dist > 1 ? $"\n CURRENT: {Math.Round(dist, 2)} mts." : $"\n CURRENT: {Math.Round(dist, 2) * 100} cms."; } //angle //var from = CurrentMarker.transform.position - PreviousMarker.transform.position; //var to = Vector3.ProjectOnPlane(from, -CurrentMarker.transform.up); //var angle = Vector3.Angle(from, to); //debugText.text += $" ANGLE: {Math.Round(angle, 2)} dgs."; yield return(new WaitForSeconds(.1f)); }
/// <summary> /// Updates the list of markers with lastest marker coordinates /// </summary> public static void UpdateCoordinates(bool updateMarker, bool updateTrackable) { if (APIRunning) { // Get the timestamp to apply to all markers and trackables long timeStamp = System.DateTime.Now.Ticks; try { if (TrackingTools.UpdateAll() == 0) // If it updates correctly { if (updateMarker) { int markerCount = TrackingTools.FrameMarkerCount(); Marker marker = new Marker(); for (int i = 0; i < markerCount; i++) { //Get the marker details from TrackingTools marker.MarkerId = i; marker.TimeStamp = timeStamp; marker.xCoordinate = -(int)(TrackingTools.FrameMarkerX(i) * 1000); marker.yCoordinate = (int)(TrackingTools.FrameMarkerY(i) * 1000); marker.zCoordinate = (int)(TrackingTools.FrameMarkerZ(i) * 1000); MarkerList.AddMarker(marker); marker = new Marker(); } MarkerList.RemoveExcessMarkersFromList(markerCount); OnMarkerListAvaliable(MarkerList.listOfMarkers, timeStamp); } if (updateTrackable) { int trackableCount = TrackingTools.TrackableCount(); trackableList.Clear(); Trackable newTrackable = null; // Go through the loaded trackables and if they are in the current frame // add them to the trackableList for (int i = 0; i < trackableCount; i++) { if (TrackingTools.IsTrackableTracked(i)) { newTrackable = TrackingTools.GetTrackableLocation(i); newTrackable.TimeStamp = timeStamp; trackableList.Add(newTrackable); } } OnTrackableListAvaliable(trackableList, timeStamp); } } } catch (AccessViolationException ex) { System.Diagnostics.Debug.WriteLine("Error With UpdateALL() " + ex + " Time Stamp : " + timeStamp); } catch (System.Runtime.InteropServices.SEHException ex) { System.Diagnostics.Debug.WriteLine("Error With UpdateALL() " + ex + " Time Stamp : " + timeStamp); } } }
private void DoBeginWork() { var t = new Thread(() => { try { for (var i = 0; i < 3; i++) { game.HalfList[i].Periods[0].Length = Options.G.Game_LengthPrimaryHalf * 60000; } foreach (Game.Marker mk in game.Markers) { mk.row = null; } if (changed_colors) { ShowStatus("Сохранение вариантов формы...", 0); Web.SaveMatchColors(game.Match); } ShowStatus("Запуск...", 0); if (changeTeam1) { PrepareTactics(game.Match.Team1); } if (changeTeam2) { PrepareTactics(game.Match.Team2); } if (changeTeam1 || changeTeam2) { MarkerList.SaveToFile(game.Match.Id, game.Markers); } game.Match.Team1.FinePlaces.Clear(); game.Match.Team1.FinePlayers.Clear(); game.Match.Team2.FinePlaces.Clear(); game.Match.Team2.FinePlayers.Clear(); ShowStatus(String.Empty, 0); sync.Execute(() => { WindowVisible(false); if (HockeyIce.Role != HockeyIce.RoleEnum.Online) { var form = new MainForm(game); form.Game = game; form.ShowDialog(); } else { var form = new OnlinerForm(game); form.ShowDialog(); } checkBox1.Checked = false; checkBox2.Checked = false; WindowVisible(true); }); } catch (Exception ex) { ShowStatus(ex.Message, FormShowStatusCode.Error); Log.WriteException(ex); } finally { loading = false; UpdateUI(); } }) { IsBackground = true }; t.Start(); }