layerAt method

ResolvedShapeLayer? layerAt(
  1. DiagramPoint worldPoint
)

Implementation

ResolvedShapeLayer? layerAt(DiagramPoint worldPoint) {
  final local = worldToLocal(worldPoint);
  for (final layer in layers.reversed) {
    final clipsToOutline = layer.definition is! ShapeTextLayerDefinition;
    if (clipsToOutline && !outline.contains(local)) continue;
    if ((layer.definition.interactionId != null ||
            layer.definition is ShapeTextLayerDefinition) &&
        (layer.bounds.contains(local) ||
            (layer.definition is ShapeTextLayerDefinition &&
                !clipsToOutline &&
                (text?.lines.any(
                      (line) =>
                          line.regionBounds == layer.bounds &&
                          line.bounds.contains(local),
                    ) ??
                    false)))) {
      return layer;
    }
  }
  return null;
}