generateCurlyBraceDrawable method
String
generateCurlyBraceDrawable(
- ChantContext ctxt,
- double x1,
- double x2,
- double y,
- bool isAbove,
Implementation
String generateCurlyBraceDrawable(
ChantContext ctxt,
double x1,
double x2,
double y,
bool isAbove,
) {
double h;
if (isAbove) {
h = -ctxt.staffInterval / 2;
} else {
h = ctxt.staffInterval / 2;
}
final q = 0.6;
final len = x2 - x1;
final qx1 = x1;
final qy1 = y + q * h;
final qx2 = x1 + 0.25 * len;
final qy2 = y + (1 - q) * h;
final tx1 = x1 + 0.5 * len;
final ty1 = y + h;
final qx3 = x2;
final qy3 = y + q * h;
final qx4 = x1 + 0.75 * len;
final qy4 = y + (1 - q) * h;
final d =
'M $x1 $y Q $qx1 $qy1 $qx2 $qy2 T $tx1 $ty1 M $x2 $y Q $qx3 $qy3 $qx4 $qy4 T $tx1 $ty1';
return QuickSvg.createFragment('path', {
'd': d,
'stroke': ctxt.theme.neumeColor.toSvgString(),
'stroke-width': '${ctxt.neumeLineWeight}px',
'fill': 'none',
});
}