mergeDrawingParameters function Null safety

DrawingParameters mergeDrawingParameters(
  1. DrawingParameters childDrawingParameters,
  2. 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;
}