docs: public static void computePositions(Node node, int depth, double aoff, double awid, int maxdepth) {
      double r = depth / (maxdepth - 1.);
      node.x = FastMath.sin(aoff + awid * .5) * r;
      node.y = FastMath.cos(aoff + awid * .5) * r;
  
      double cpos = aoff;
      double cwid = awid / node.weight;
      for(Node c : node.children) {
        computePositions(c, depth + 1, cpos, cwid * c.weight, maxdepth);
        cpos += cwid * c.weight;
      }
    }