applyPaintRotationTransformation function

Offset applyPaintRotationTransformation(
  1. Offset point,
  2. EditImageProvider editImageProvider
)

Implementation

Offset applyPaintRotationTransformation(Offset point, EditImageProvider editImageProvider) {
  double angleInRadians = editImageProvider.state.rotationAngle;
  double width = editImageProvider.state.width;
  double height = editImageProvider.state.height;
  double left = editImageProvider.state.left;
  double top = editImageProvider.state.top;

  if(radiansToDegrees(angleInRadians) == 0){
    return Offset(
      point.dx - (getScreenWidth() - width)/2 + left,
      point.dy - (getScreenHeight() - height)/2 + top
    );
  }else if(radiansToDegrees(angleInRadians) == 90){
    return Offset(
      point.dy - (getScreenHeight() - width)/2 + left,
      height - (point.dx - (getScreenWidth()-height)/2) + top
    );
  }else if(radiansToDegrees(angleInRadians) == 270){
    return Offset(
      width - (point.dy - (getScreenHeight() - width)/2) + left,
      point.dx - (getScreenWidth() - height)/2 + top
    );
  }else if(radiansToDegrees(angleInRadians) == 180){
    return Offset(
      width - (point.dx - (getScreenWidth()-width)/2) + left,
      height - (point.dy - (getScreenHeight() - height)/2 ) + top
    );
  }

  return point;
}