Пример #1
0
        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;
            }
        }
Пример #2
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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 void AddMarker(MyMarker marker)
 {
     m_markers.Add(marker);
 }
 void AddMarker(MyMarker marker)
 {
     m_markers.Add(marker);
 }