private static bool IsLineVisible(RawRectangleF coordinateBounds, LineProxy line, int zoomLevel) { if (line == null || line.Coordinates == null || line.Coordinates.Count < 2) { return(false); } if (line.BaseLine == null) { return(false); } if (!coordinateBounds.Overlaps(line.Bounds)) { return(false); } if (line.BaseLine.KVLevel.VisibilityByZoom > zoomLevel) { return(false); } if (!line.BaseLine.KVLevel.ShowEnergized && (line.BaseLine.LineEnergizationState == line.BaseLine.KVLevel.Energized)) { return(false); } if (!line.BaseLine.KVLevel.ShowUnknown && (line.BaseLine.LineEnergizationState == line.BaseLine.KVLevel.Unknown)) { return(false); } if (!line.BaseLine.KVLevel.ShowDeEnergized && (line.BaseLine.LineEnergizationState == line.BaseLine.KVLevel.DeEnergized)) { return(false); } if (!line.BaseLine.KVLevel.ShowPartiallyEnergized && (line.BaseLine.LineEnergizationState == line.BaseLine.KVLevel.PartiallyEnergized)) { return(false); } if (line.BaseLine.KVLevel.VisibilityThreshold > 0f && line.BaseLine.KVLevel.VisibilityThreshold < line.BaseLine.LinePercentage) { return(false); } if (line.BaseLine.KVLevel.VisibilityThreshold < 0f && -line.BaseLine.KVLevel.VisibilityThreshold > line.BaseLine.LinePercentage) { return(false); } return(true); }