/// <summary>
 /// Filters items from a given source returning only persistable items inside the Build Volume
 /// </summary>
 /// <param name="source">The source content to filter</param>
 /// <param name="printer">The printer config to consider</param>
 /// <returns>An enumerable set of printable items</returns>
 public static IEnumerable <IObject3D> PrintableItems(this PrinterConfig printer, IObject3D source)
 {
     return(source.VisibleMeshes().Where(item => item.WorldPersistable() &&
                                         printer.InsideBuildVolume(item) &&
                                         printer.InsideHotendBounds(item) &&
                                         !item.GetType().GetCustomAttributes(typeof(NonPrintableAttribute), true).Any()));
 }
 /// <summary>
 /// Filters items from a given source returning only persistable items inside the Build Volume
 /// </summary>
 /// <param name="source">The source content to filter</param>
 /// <param name="printer">The printer config to consider</param>
 /// <returns></returns>
 public static IEnumerable <IObject3D> PrintableItems(this PrinterConfig printer, IObject3D source)
 {
     return(source.VisibleMeshes().Where(item => printer.InsideBuildVolume(item) && item.WorldPersistable()));
 }