protected void gatherRegionInfo(
      BridgeContext ctx, Element rgn, float verticalAlign, List regions) {

    boolean isStatic = !ctx.isDynamic();
    for (Node n = getFirstChild(rgn); n != null; n = getNextSibling(n)) {

      if (n.getNodeType() != Node.ELEMENT_NODE) {
        continue;
      }

      GraphicsNode gn = isStatic ? (GraphicsNode) flowRegionNodes.get(n) : ctx.getGraphicsNode(n);
      Shape s = gn.getOutline();
      if (s == null) {
        continue;
      }

      AffineTransform at = gn.getTransform();
      if (at != null) {
        s = at.createTransformedShape(s);
      }
      regions.add(new RegionInfo(s, verticalAlign));
    }
  }