render method

  1. @override
void render(
  1. Canvas canvas,
  2. BuildContext context
)
override

How to draw this widget on the canvas

Implementation

@override
void render(Canvas canvas, BuildContext context) {
  final clipPath = Path()
    ..moveTo(childSize.x / sqrt2, 0)
    ..lineTo(childSize.x * sqrt2, childSize.y / sqrt2)
    ..lineTo(childSize.x / sqrt2, childSize.y * sqrt2)
    ..lineTo(0, childSize.y / sqrt2)
    ..close();
  final yStart = determinePrefferedSize(bounds).y *
      (childrenBuild.length /
          (childrenBuild.length + childrenBuild.first.length));
  childrenBuild.asMap().forEach((index, row) {
    canvas.save();
    canvas.translate(index * (childSize.x / sqrt2 - 0.5),
        yStart + (index + 1) * (childSize.y / sqrt2 - 0.5));
    row.forEach((child) {
      if (clipChildBorder) {
        canvas.save();
        canvas.clipPath(clipPath);
      }
      child.render(canvas, context);
      if (clipChildBorder) canvas.restore();
      canvas.translate(childSize.x / sqrt2 - 0.5, -childSize.y / sqrt2 + 0.5);
    });
    canvas.restore();
  });
}