getAdjustmentRadius method
Implementation
BorderRadius? getAdjustmentRadius(Size size) {
final x = size.width;
final y = size.height;
final isSquire = x == y;
if (isSquire && borderRadius != null && strokeAlign != StrokeAlign.center) {
final i = strokeWidth / 2;
final xi = x / 2;
final yi = y / 2;
final b = borderRadius!;
final tl = b.topLeft;
final tr = b.topRight;
final br = b.bottomRight;
final bl = b.bottomLeft;
final radius = BorderRadius.only(
topLeft: Radius.elliptical(
tl.x >= xi ? i : 0,
tl.y >= yi ? i : 0,
),
topRight: Radius.elliptical(
tr.x >= xi ? i : 0,
tr.y >= yi ? i : 0,
),
bottomLeft: Radius.elliptical(
bl.x >= xi ? i : 0,
bl.y >= yi ? i : 0,
),
bottomRight: Radius.elliptical(
br.x >= xi ? i : 0,
br.y >= yi ? i : 0,
),
);
if (strokeAlign == StrokeAlign.inside) {
return borderRadius! - radius;
} else {
return borderRadius! + radius;
}
} else {
return borderRadius;
}
}