fromXml static method

SvgMaskPath? fromXml(
  1. XmlElement element,
  2. SvgPainter painter,
  3. SvgBrush brush
)

Implementation

static SvgMaskPath? fromXml(
    XmlElement element, SvgPainter painter, SvgBrush brush) {
  final maskPathAttr = element.getAttribute('mask');
  if (maskPathAttr == null) {
    return null;
  }

  Iterable<SvgOperation?> children;

  if (maskPathAttr.startsWith('url(#')) {
    final id = maskPathAttr.substring(5, maskPathAttr.lastIndexOf(')'));
    final maskPath = painter.parser.findById(id);
    if (maskPath != null) {
      final maskBrush = SvgBrush.fromXml(maskPath, brush, painter);
      children = maskPath.children.whereType<XmlElement>().map<SvgOperation?>(
          (c) => SvgOperation.fromXml(c, painter, maskBrush));
      return SvgMaskPath(children, painter);
    }
  }

  return null;
}