resquarify static method

void resquarify(
  1. TreeMapNode parent,
  2. double ratio,
  3. double x0,
  4. double y0,
  5. double x1,
  6. double y1,
)

Implementation

static void resquarify(TreeMapNode parent, double ratio, double x0, double y0, double x1, double y1) {
  List<Row> rows = [];
  Row row;
  List<TreeMapNode> nodes = [];
  int i = 0;
  int j = -1;
  int n;
  int m = rows.length;
  double value = parent.value;
  while (++j < m) {
    row = rows[j];
    nodes = row.children;
    row.value = 0;
    i = 0;
    for (n = nodes.length; i < n; ++i) {
      row.value += nodes[i].value;
    }
    if (row.dice) {
      SquareLayout.treemapDice(row, x0, y0, x1, value > 0 ? y0 += (y1 - y0) * row.value / value : y1);
    } else {
      SquareLayout.treemapSlice(row, x0, y0, value > 0 ? x0 += (x1 - x0) * row.value / value : x1, y1);
    }
    value -= row.value;
  }
}