public override void CameraMoved()
        {
            // LibSys.StatusBar.Trace("IP: LayerWaypoints::CameraMoved()  drawableReady=" + Project.drawableReady);
            init();
            base.CameraMoved();
            WaypointsCache.RefreshWaypointsDisplayed();
            sLiveObjectPopup = null;

            logCamtrackFrame();
        }
        private void PutOnMap()
        {
#if DEBUG
            LibSys.StatusBar.Trace("IP: LayerWaypoints:PutOnMap()  " + WaypointsCache.WaypointsAll.Count);
#endif

            foreach (LiveObject lo in WaypointsCache.WaypointsAll)
            {
                try
                {
                    lo.init(true);
                }
                catch (Exception e)
                {
                    LibSys.StatusBar.Error("LW:PutOnMap(): lo=" + lo + " " + e.Message);
                }
            }
            foreach (LiveObject lo in WaypointsCache.WaypointsAll)
            {
                try
                {
                    if (m_cameraManager.insideScreenRectangle(lo.Location))
                    {
                        lo.PutOnMap(this, null, this);
                    }
                }
                catch (Exception e)
                {
                    LibSys.StatusBar.Error("LW:PutOnMap(): lo=" + lo + " " + e.Message);
                }
            }
            foreach (LiveObject lo in WaypointsCache.WaypointsAll)
            {
                try
                {
                    if (m_cameraManager.insideScreenRectangle(lo.Location))
                    {
                        lo.AdjustPlacement(this, null, this);
                    }
                }
                catch (Exception e)
                {
                    LibSys.StatusBar.Error("LW:PutOnMap() - AdjustPlacement: lo=" + lo + " " + e.Message);
                }
            }
            foreach (Track trk in WaypointsCache.TracksAll)
            {
                try
                {
                    trk.PutOnMap(this, null, this);
                }
                catch (Exception e)
                {
                    LibSys.StatusBar.Error("LW:PutOnMap(): trk=" + trk + " " + e.Message);
                }
            }

            /*
             * foreach(Track trk in WaypointsCache.TracksAll)
             * {
             *      try
             *      {
             *              trk.AdjustPlacement(this, null, this);
             *      }
             *      catch(Exception e)
             *      {
             *              LibSys.StatusBar.Error("LW:PutOnMap(): trk=" + trk + " " + e.Message);
             *      }
             * }
             */
            m_hasPutOnMap = true;

            WaypointsCache.RefreshWaypointsDisplayed();

            //logCamtrackFrame();
        }