mergeDrawingParameters function

DrawingParameters mergeDrawingParameters (DrawingParameters childDrawingParameters, DrawingParameters parentDrawingParameters)

Use each property of childDrawingParameters in priority, and properties of parentDrawingParameters if not defined in child parameters. Note that it is allowed for a property that both definitions are null.

Implementation

DrawingParameters mergeDrawingParameters(
    DrawingParameters childDrawingParameters,
    DrawingParameters parentDrawingParameters) {
  DrawingParameters usedDrawingParameters = DrawingParameters(
      fillColor:
          childDrawingParameters.fillColor ?? parentDrawingParameters.fillColor,
      strokeColor: childDrawingParameters.strokeColor ??
          parentDrawingParameters.strokeColor,
      strokeWidth: childDrawingParameters.strokeWidth ??
          parentDrawingParameters.strokeWidth,
      strokeLineCap: childDrawingParameters.strokeLineCap ??
          parentDrawingParameters.strokeLineCap,
      strokeLineJoin: childDrawingParameters.strokeLineJoin ??
          parentDrawingParameters.strokeLineJoin,
      strokeLineMiterLimit: childDrawingParameters.strokeLineMiterLimit ??
          parentDrawingParameters.strokeLineMiterLimit,
      translate:
          childDrawingParameters.translate ?? parentDrawingParameters.translate,
      transformMatrixValues: childDrawingParameters.transformMatrix ??
          parentDrawingParameters.transformMatrix);
  return usedDrawingParameters;
}