/// <summary>
 /// Get selected objects filtered by type and mark
 /// </summary>
 /// <param name="selMgr"></param>
 /// <param name="filter"> <![CDATA[(type,mark)=>bool]]> if null then the default is true </param>
 /// <returns></returns>
 public static IReadOnlyList <object> GetSelectedObjects(this ISelectionMgr selMgr, Func <swSelectType_e, int, bool> filter)
 {
     return(selMgr.GetObjectSelections()
            .Where(o => filter(o.Type, o.Mark))
            .Select(o => o.Object)
            .ToList());
 }