toLayer method

Future<ILPLayer> toLayer(
  1. bool isBackGroundLayer, {
  2. bool ignoreLayerName = true,
})

Convert to ILPLayer

Implementation

Future<ILPLayer> toLayer(
  bool isBackGroundLayer, {
  bool ignoreLayerName = true,
}) async {
  final layer = ILPLayer();
  if (!ignoreLayerName && name != null) layer.name = name!;
  if (hasFile) {
    final bytes = await File(file!).readAsBytes();
    layer.content = bytes;
    layer.id = bytesSha1(bytes);
  }
  if (isBackGroundLayer) {
    layer.width = width!;
    layer.height = height!;
    layer.x = x!;
    layer.y = y!;
    layer.content = await File(file!).readAsBytes();
    for (final l in layers!) {
      layer.layers
          .add(await l.toLayer(false, ignoreLayerName: ignoreLayerName));
    }
  } else {
    if (layers == null) {
      layer.width = width!;
      layer.height = height!;
      layer.x = x!;
      layer.y = y!;
      layer.content = await File(file!).readAsBytes();
    } else {
      for (final l in layers!) {
        layer.layers
            .add(await l.toLayer(false, ignoreLayerName: ignoreLayerName));
      }
    }
  }
  return layer;
}