paint method
The paint operation of this element.
Implementation
@override
void paint(PCanvas pCanvas) {
  var prevState = pCanvas.saveState();
  final prevT = pCanvas.transform;
  final boundingBox = this.boundingBox;
  final boundingBoxTransformed = boundingBox.transform(prevT);
  final t =
      PcanvasTransform(translateX: boundingBox.x, translateY: boundingBox.y);
  try {
    pCanvas.subTransform = t;
    pCanvas.subClip = boundingBoxTransformed;
    paintBackground(pCanvas);
    var paintRect = dimension.toPRectangle();
    for (var e in elements) {
      var eBox = e.boundingBox;
      if (!paintRect.intersectsRectangle(eBox)) {
        continue;
      }
      e.paint(pCanvas);
    }
  } finally {
    pCanvas.restoreState(expectedState: prevState);
  }
}