discontinuedPackage jet_cad_floor_plan has been discontinued and replaced by jet_cad_2d_plan.

layersInPanelOrder function

List<LayerRecord> layersInPanelOrder(
  1. Iterable<LayerRecord> layers
)

layers in the panel's order (spec 12b D10): layer 0 first, then the others by name under toLowerCase(), ties by handle. Independent of creation order, so stable across undo, save and load.

Implementation

List<LayerRecord> layersInPanelOrder(Iterable<LayerRecord> layers) {
  final out = layers.toList();
  int rank(LayerRecord r) => r.handle == ReservedHandles.layerZero ? 0 : 1;
  out.sort((a, b) {
    final byZero = rank(a).compareTo(rank(b));
    if (byZero != 0) return byZero;
    final byName = a.name.toLowerCase().compareTo(b.name.toLowerCase());
    if (byName != 0) return byName;
    return a.handle.value.compareTo(b.handle.value);
  });
  return out;
}