/// <summary> /// Get all visible layers in the control; /// </summary> /// <param name="cadControl"></param> /// <returns></returns> public static IEnumerable <CADLayer> GetVisibleLayers(this ICADControl cadControl) { if (cadControl == null) { throw new ArgumentNullException(nameof(cadControl)); } return(cadControl.Layers?.Where(p => p.IsVisible) ?? Enumerable.Empty <CADLayer>()); }
/// <summary> /// Get all drawobjects of the a specified cad control; /// </summary> /// <param name="cadControl"></param> /// <returns></returns> public static IEnumerable <DrawObject> GetAllDrawObjects(this ICADControl cadControl) { if (cadControl == null) { throw new ArgumentNullException(nameof(cadControl)); } return(cadControl.Layers?.SelectMany(p => p.DrawObjects) ?? Enumerable.Empty <DrawObject>()); }
/// <summary> /// Get all visible drawobjects of the specified type in the control; /// </summary> /// <param name="cadContext"></param> /// <returns></returns> public static IEnumerable <TDrawObject> GetAllVisibleDrawObjects <TDrawObject>(this ICADControl cadContext) where TDrawObject : DrawObject { return(GetAllDrawObjects(cadContext).Select(p => p as TDrawObject).Where(p => p != null)); }