private bool ObjectIsInViewRegion(GeoObject obj) { if (BoundingBox == null) { return(true); } return(BoundingBox.Contains(obj.Point.Position)); }
public void AddObject(GeoObject obj) { if (!Objects.Contains(obj)) { Objects.Add(obj); if (ObjectIsInViewRegion(obj)) { ObjectsInView.Add(obj); } } }
private void OnPositionChanged(GeoObject obj) { if (!ObjectFilter(obj)) { return; } // TODO optimize with indexing if (ObjectIsInViewRegion(obj)) { if (!ObjectsInView.Contains(obj)) { ObjectsInView.Add(obj); } } else { ObjectsInView.Remove(obj); } }
public void MoveObjectTo(GeoObject obj, double latitude, double longitude) { obj.MoveTo(latitude, longitude); }
public void MoveObjectTo(GeoObject obj, BasicGeoposition pos) { obj.MoveTo(pos); }
public void RemoveObject(GeoObject obj) { ObjectsInView.Remove(obj); Objects.Remove(obj); }