getClip method
Returns a description of the clip given that the render object being clipped is of the given size.
Implementation
@override
Path getClip(Size size) {
Path path = Path();
Rect foregroundRect = Rect.fromLTRB(0, 0, size.width, size.height);
path.moveTo(foregroundRect.left, foregroundRect.top);
if (triangleAxis == Axis.horizontal) {
_addTrianglePointToPath(
foregroundRect,
path,
Offset(foregroundRect.left, foregroundRect.top),
Offset(foregroundRect.right, foregroundRect.top),
trianglePos,
triangleSize,
isTriangle: drawTriangle,
isArc: drawArc);
if (drawBorder)
_addArcPointToPath(
foregroundRect,
path,
Offset(foregroundRect.right, foregroundRect.top),
Offset(foregroundRect.right, foregroundRect.bottom),
borderRadius);
else
path.lineTo(foregroundRect.right, foregroundRect.bottom);
_addTrianglePointToPath(
foregroundRect,
path,
Offset(foregroundRect.right, foregroundRect.bottom),
Offset(foregroundRect.left, foregroundRect.bottom),
trianglePos,
triangleSize,
isTriangle: drawTriangle,
isArc: drawArc);
if (drawBorder)
_addArcPointToPath(
foregroundRect,
path,
Offset(foregroundRect.left, foregroundRect.bottom),
Offset(foregroundRect.left, foregroundRect.top),
borderRadius);
else
path.lineTo(foregroundRect.left, foregroundRect.top);
} else {
if (drawBorder)
_addArcPointToPath(
foregroundRect,
path,
Offset(foregroundRect.left, foregroundRect.top),
Offset(foregroundRect.right, foregroundRect.top),
borderRadius);
else
path.lineTo(foregroundRect.right, foregroundRect.bottom);
_addTrianglePointToPath(
foregroundRect,
path,
Offset(foregroundRect.right, foregroundRect.top),
Offset(foregroundRect.right, foregroundRect.bottom),
trianglePos,
triangleSize,
isTriangle: drawTriangle,
isArc: drawArc);
if (drawBorder)
_addArcPointToPath(
foregroundRect,
path,
Offset(foregroundRect.right, foregroundRect.bottom),
Offset(foregroundRect.left, foregroundRect.bottom),
borderRadius);
else
path.lineTo(foregroundRect.left, foregroundRect.top);
_addTrianglePointToPath(
foregroundRect,
path,
Offset(foregroundRect.left, foregroundRect.bottom),
Offset(foregroundRect.left, foregroundRect.top),
trianglePos,
triangleSize,
isTriangle: drawTriangle,
isArc: drawArc);
}
// canvas.drawShadow(path, Colors.grey, 2, true);
// canvas.clipPath(path);
return path;
}