public void OnObjectSelection(SelectionElement selected, bool multiple) { int i = selected.showIndex; if (multiple) { if (hasTracked) { if (i < lo) { lo = i; } else if (i > hi) { hi = i; } } else { SetTracked(i); } } else { SetTracked((singleTracked && i == lo) ? NONE : i); } }
/// <summary> /// The select. /// </summary> /// <param name="paneManager"> /// The pane manager. /// </param> /// <param name="selectionBuffer"> /// The selection buffer. /// </param> /// <returns> /// The <see cref="SelectionElement"/>. /// </returns> protected override SelectionElement Select(IPaneManager paneManager, ISelectionBuffer selectionBuffer) { paneManager = ArgumentValidator.CheckNotNull(paneManager, "paneManager"); selectionBuffer = ArgumentValidator.CheckNotNull(selectionBuffer, "selectionBuffer"); selectionBuffer.Clear(); this.DrawInternal( selectionBuffer.SelectionGraphics, paneManager.CoordinateConverter, paneManager.RenderMode); if (selectionBuffer.ContainsHit()) { var selectionElement = new SelectionElement(this); this.OnObjectSelected(selectionElement, paneManager, selectionBuffer); return(selectionElement); } return(null); }