private void RefreshObjectsVisuals() { EarthArea vArea = VisibleArea; foreach (var element in _elements) { bool visibility = element.TestVisual(vArea); CheckVisual(element, visibility); } }
public override bool TestVisual(EarthArea VisibleArea) { return(true); }
/// <summary>Проверяет, и при необходимости отрисовывает или скрывает объект с карты</summary> /// <param name="Element">Проверяемый объект</param> /// <param name="OnArea">Видимая в область карты</param> private void CheckVisual(MapElement Element, EarthArea OnArea) { CheckVisual(Element, Element.TestVisual(OnArea)); }
/// <summary>Проверяет, попадает ли этот элемент в указанную области видимости</summary> /// <param name="VisibleArea">Область видимости</param> /// <returns>True, если объект может оказаться виден в указанной области</returns> public abstract bool TestVisual(EarthArea VisibleArea);
public override bool TestVisual(EarthArea VisibleArea) { return(Position.IsInArea(VisibleArea)); }
/// <summary>Проверяет, попадает ли этот элемент в указанную области видимости</summary> /// <param name="VisibleArea">Область видимости</param> /// <returns>True, если объект может оказаться виден в указанной области</returns> public override bool TestVisual(EarthArea VisibleArea) { return(ElementArea.IsIntersects(VisibleArea)); }
/// <summary>Создаёт новый многоточечный объект на карте</summary> /// <param name="Points">Точки, входящие в состав объекта</param> /// <param name="ScreenStep">Минимальная длинна сегмента для отрисовки на экране</param> protected MapPathElement(IList <EarthPoint> Points, double ScreenStep = 5) { this.Points = Points; _screenStepSquared = Math.Pow(ScreenStep, 2); ElementArea = new EarthArea(Points.ToArray()); }