doLayout method

  1. @override
void doLayout(
  1. Context context,
  2. TreeLayoutNode root,
  3. num width,
  4. num height,
)
override

Implementation

@override
void doLayout(Context context, TreeLayoutNode root, num width, num height) {
  Offset center = Offset(this.center[0].convert(width), this.center[1].convert(height));
  num radius = math.min(width, height) * 0.5;

  if (dendrogram) {
    _layoutForDendrogram(context, root, sweepAngle, radius);
  } else {
    _layoutForTidy(context, root, sweepAngle, radius);
  }

  root.each((node, index, startNode) {
    Offset c;
    if (clockwise) {
      c = circlePoint(node.y, node.x + rotateAngle, center);
    } else {
      c = circlePoint(node.y, sweepAngle - (node.x + rotateAngle), center);
    }
    node.x = c.dx;
    node.y = c.dy;
    return false;
  });
  root.x = center.dx;
  root.y = center.dy;
}