private static Overlaps SelectOverlaps(Overlaps overlaps, Geometry sketch) { if (overlaps == null) { return(new Overlaps()); } int selectionTolerancePixels = 3; bool singlePick = ToolUtils.IsSingleClickSketch(sketch); if (singlePick) { sketch = ToolUtils.GetSinglePickSelectionArea(sketch, selectionTolerancePixels); } Overlaps result = overlaps.SelectNewOverlaps( o => o.GeometryType == GeometryType.Polyline && IsOverlapSelected(sketch, o, singlePick)); // in case of single pick the line has priority if (!result.HasOverlaps() || !singlePick) { result.AddGeometries(overlaps, g => g.GeometryType == GeometryType.Polygon && IsOverlapSelected(sketch, g, singlePick)); } return(result); }
private Overlaps SelectOverlaps(Overlaps overlaps, Geometry sketch) { if (overlaps == null) { return(new Overlaps()); } sketch = ToolUtils.SketchToSearchGeometry(sketch, GetSelectionTolerancePixels(), out bool singlePick); // in case of single pick the line has priority... Overlaps result = overlaps.SelectNewOverlaps( o => o.GeometryType == GeometryType.Polyline && ToolUtils.IsSelected(sketch, o, singlePick)); // ... over the polygon if (!result.HasOverlaps() || !singlePick) { result.AddGeometries(overlaps, g => g.GeometryType == GeometryType.Polygon && ToolUtils.IsSelected(sketch, g, singlePick)); } return(result); }