visitPatternNode method

  1. @override
Node visitPatternNode(
  1. PatternNode node,
  2. AffineMatrix data
)

Visit a PatternNode.

Implementation

@override
Node visitPatternNode(PatternNode node, AffineMatrix data) {
  final AttributedNode? resolvedPattern = node.resolver(node.patternId);
  if (resolvedPattern == null) {
    return node.child.accept(this, data);
  }
  final Node child = node.child.accept(this, data);
  final AffineMatrix childTransform = node.concatTransform(data);
  final Node pattern = resolvedPattern.accept(this, childTransform);

  return ResolvedPatternNode(
    child: child,
    pattern: pattern,
    x: resolvedPattern.attributes.x?.calculate(0) ?? 0,
    y: resolvedPattern.attributes.y?.calculate(0) ?? 0,
    width: resolvedPattern.attributes.width!,
    height: resolvedPattern.attributes.height!,
    transform: data,
    id: node.patternId,
  );
}