void timer_Tick(object sender, EventArgs e) { if (iii == null) { createImage(); } // Thread t = new Thread(() => { for (int i = 0; i < 1000; i++) { // var pos = new PointLatLng(NextDouble(r, 30, 20), NextDouble(r, 100, 120)); var pos = new PointLatLng(NextDouble(r, MainMap.ViewArea.Top, MainMap.ViewArea.Bottom), NextDouble(r, MainMap.ViewArea.Right, MainMap.ViewArea.Left)); MyMarker m = new MyMarker(pos, (tt++).ToString()); { // var s = new Test((tt).ToString()); // ccc s = new ccc(); //var image = new Image(); //{ // RenderOptions.SetBitmapScalingMode(image, BitmapScalingMode.LowQuality); // image.Stretch = Stretch.None; // image.Opacity = s.Opacity; // image.MouseEnter += new System.Windows.Input.MouseEventHandler(image_MouseEnter); // image.MouseLeave += new System.Windows.Input.MouseEventHandler(image_MouseLeave); // image.Source = m.ToImageSource(s); //} // RenderOptions.SetBitmapScalingMode(s, BitmapScalingMode.LowQuality); // s.MyBrush = bbb; // s.IsHitTestVisible = false; m.Name = i.ToString(); // m.Shape = s; m.imgSource = bbb; // s.set(bbb); // m.Offset = new System.Windows.Point(-s.Width, -s.Height); } //m.InitUI(); m.HasLife = false; // lock (MarkerOverLayer.Markers) MarkerOverLayer.Markers.Add(m); } // }); //t.IsBackground = true; //t.Start(); lb_MarkerCount.Content = tt.ToString(); if (tt >= 99995) { timer.Stop(); tt = 0; } }
MyMarker FindClosestMarkerInArea(Vector3D pos, double maxDistance) { double minDist = double.MaxValue; MyMarker closest = null; foreach (MyMarker marker in m_markers) { double dist = (marker.position - pos).Length(); if (dist < minDist) { closest = marker; minDist = dist; } } if (minDist < maxDistance) { return(closest); } return(null); }
private bool ToggleMarker() { Vector3D pos = new Vector3D(); if (GetDirectedPositionOnGround(MySector.MainCamera.Position, MySector.MainCamera.ForwardVector, 1000, out pos)) { MyMarker marker = FindClosestMarkerInArea(pos, 1); if (marker != null) { m_markers.Remove(marker); } else { m_markers.Add(new MyMarker(pos, Color.Blue)); } return(true); } return(false); }
void AddMarker(MyMarker marker) { m_markers.Add(marker); }