|
|
|
@ -2,9 +2,10 @@ import 'dart:io'; |
|
|
|
|
|
|
|
import 'package:flutter/material.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/common_ui/resources/my_colors.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/common_ui/resources/my_spaces.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/common_ui/resources/my_text_style.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/core/widgets/images/my_image.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/features/question/presentation/ui/widgets/black_white_effect.dart'; |
|
|
|
|
|
|
|
class AnswerPictureBox extends StatelessWidget { |
|
|
|
const AnswerPictureBox({ |
|
|
|
@ -13,77 +14,74 @@ class AnswerPictureBox extends StatelessWidget { |
|
|
|
required this.image, |
|
|
|
required this.index, |
|
|
|
required this.correctAnswer, |
|
|
|
this.onTap, |
|
|
|
}); |
|
|
|
|
|
|
|
final bool selected; |
|
|
|
final String image; |
|
|
|
final int index; |
|
|
|
final int correctAnswer; |
|
|
|
final VoidCallback? onTap; |
|
|
|
|
|
|
|
@override |
|
|
|
Widget build(BuildContext context) { |
|
|
|
return CustomPaint( |
|
|
|
size: Size(170, 170), |
|
|
|
foregroundPainter: _SvgCustomPainter(false), |
|
|
|
painter: _CustomShapePainter(), |
|
|
|
child: ClipPath( |
|
|
|
clipper: _SvgCustomClipper(), |
|
|
|
clipper: _CustomShapeClipper(), |
|
|
|
child: Stack( |
|
|
|
alignment: Alignment.center, |
|
|
|
children: [ |
|
|
|
Builder( |
|
|
|
builder: (context) { |
|
|
|
if (selected && |
|
|
|
(index != correctAnswer)) { |
|
|
|
return BlackWhiteEffect( |
|
|
|
child: Image.file( |
|
|
|
File(image), |
|
|
|
fit: BoxFit.cover, |
|
|
|
height: 170, |
|
|
|
width: 170, |
|
|
|
), |
|
|
|
); |
|
|
|
} else { |
|
|
|
return Image.file( |
|
|
|
File(image), |
|
|
|
fit: BoxFit.cover, |
|
|
|
height: 170, |
|
|
|
width: 170, |
|
|
|
); |
|
|
|
} |
|
|
|
}, |
|
|
|
AnimatedSwitcher( |
|
|
|
duration: Duration(milliseconds: 150), |
|
|
|
reverseDuration: Duration(milliseconds: 150), |
|
|
|
switchInCurve: Curves.linear, |
|
|
|
switchOutCurve: Curves.linear, |
|
|
|
child: selected && (index != correctAnswer) ? |
|
|
|
Image.file( |
|
|
|
key: Key('1'), |
|
|
|
File(image), |
|
|
|
fit: BoxFit.cover, |
|
|
|
color: MyColors.black, |
|
|
|
colorBlendMode: BlendMode.color, |
|
|
|
) : |
|
|
|
Image.file( |
|
|
|
key: Key('2'), |
|
|
|
File(image), |
|
|
|
fit: BoxFit.cover, |
|
|
|
), |
|
|
|
transitionBuilder: (child, animation) => |
|
|
|
FadeTransition( |
|
|
|
opacity: animation, |
|
|
|
child: child, |
|
|
|
), |
|
|
|
), |
|
|
|
PositionedDirectional( |
|
|
|
top: MySpaces.s12, |
|
|
|
start: MySpaces.s12, |
|
|
|
child: ClipPath( |
|
|
|
clipper: _CountClipper(), |
|
|
|
child: Container( |
|
|
|
height: MySpaces.s32, |
|
|
|
width: MySpaces.s32, |
|
|
|
alignment: Alignment.center, |
|
|
|
decoration: BoxDecoration( |
|
|
|
gradient: LinearGradient( |
|
|
|
begin: Alignment.topCenter, |
|
|
|
end: Alignment.bottomCenter, |
|
|
|
colors: [ |
|
|
|
Color(0XFF5732CB), |
|
|
|
Color(0XFF322386), |
|
|
|
], |
|
|
|
), |
|
|
|
top: 0, |
|
|
|
child: Container( |
|
|
|
width: MySpaces.s34, |
|
|
|
alignment: Alignment.center, |
|
|
|
decoration: BoxDecoration( |
|
|
|
color: Color(0XFFF2F7FF), |
|
|
|
borderRadius: BorderRadius.vertical( |
|
|
|
bottom: Radius.circular(10), |
|
|
|
), |
|
|
|
child: Text( |
|
|
|
'$index', |
|
|
|
), |
|
|
|
child: Text( |
|
|
|
'$index', |
|
|
|
style: MYTextStyle.titr1.copyWith( |
|
|
|
color: Color(0XFF9B85D8), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
if(selected) |
|
|
|
PositionedDirectional( |
|
|
|
top: MySpaces.s14, |
|
|
|
end: MySpaces.s12, |
|
|
|
top: MySpaces.s8, |
|
|
|
start: MySpaces.s8, |
|
|
|
child: MyImage( |
|
|
|
image: index == correctAnswer ? MyAssets.correct : MyAssets |
|
|
|
.wrong, |
|
|
|
size: MySpaces.s40, |
|
|
|
), |
|
|
|
), |
|
|
|
], |
|
|
|
@ -93,141 +91,72 @@ class AnswerPictureBox extends StatelessWidget { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class _SvgCustomClipper extends CustomClipper<Path> { |
|
|
|
@override |
|
|
|
Path getClip(Size size) { |
|
|
|
double scaleFactor = 170.0 / 480.0; |
|
|
|
|
|
|
|
Path path = Path() |
|
|
|
..moveTo(242.081 * scaleFactor, 4.12988 * scaleFactor) |
|
|
|
..cubicTo(189.733 * scaleFactor, 1.72935 * scaleFactor, 137.532 * scaleFactor, 3.16507 * scaleFactor, 96.9766 * scaleFactor, 8.33887 * scaleFactor) |
|
|
|
..cubicTo(76.6855 * scaleFactor, 10.9275 * scaleFactor, 59.4247 * scaleFactor, 14.4382 * scaleFactor, 46.5547 * scaleFactor, 18.8203 * scaleFactor) |
|
|
|
..cubicTo(40.1188 * scaleFactor, 21.0117 * scaleFactor, 34.878 * scaleFactor, 23.3892 * scaleFactor, 30.9326 * scaleFactor, 25.916 * scaleFactor) |
|
|
|
..cubicTo(26.9611 * scaleFactor, 28.4595 * scaleFactor, 24.5168 * scaleFactor, 31.0171 * scaleFactor, 23.3438 * scaleFactor, 33.4795 * scaleFactor) |
|
|
|
..cubicTo(20.5038 * scaleFactor, 39.4409 * scaleFactor, 17.8387 * scaleFactor, 49.1133 * scaleFactor, 15.4463 * scaleFactor, 61.8105 * scaleFactor) |
|
|
|
..cubicTo(13.066 * scaleFactor, 74.4434 * scaleFactor, 10.9937 * scaleFactor, 89.8529 * scaleFactor, 9.25879 * scaleFactor, 107.15 * scaleFactor) |
|
|
|
..cubicTo(5.78933 * scaleFactor, 141.742 * scaleFactor, 3.68374 * scaleFactor, 183.74 * scaleFactor, 3.14062 * scaleFactor, 225.896 * scaleFactor) |
|
|
|
..cubicTo(2.5975 * scaleFactor, 268.052 * scaleFactor, 3.61795 * scaleFactor, 310.308 * scaleFactor, 6.3877 * scaleFactor, 345.416 * scaleFactor) |
|
|
|
..cubicTo(7.77271 * scaleFactor, 362.972 * scaleFactor, 9.59224 * scaleFactor, 378.701 * scaleFactor, 11.8633 * scaleFactor, 391.718 * scaleFactor) |
|
|
|
..cubicTo(14.1445 * scaleFactor, 404.793 * scaleFactor, 16.8465 * scaleFactor, 414.918 * scaleFactor, 19.9121 * scaleFactor, 421.396 * scaleFactor) |
|
|
|
..cubicTo(21.2125 * scaleFactor, 424.143 * scaleFactor, 23.8655 * scaleFactor, 426.967 * scaleFactor, 28.083 * scaleFactor, 429.773 * scaleFactor) |
|
|
|
..cubicTo(32.2774 * scaleFactor, 432.565 * scaleFactor, 37.8229 * scaleFactor, 435.209 * scaleFactor, 44.6045 * scaleFactor, 437.676 * scaleFactor) |
|
|
|
..cubicTo(58.1675 * scaleFactor, 442.609 * scaleFactor, 76.2991 * scaleFactor, 446.701 * scaleFactor, 97.542 * scaleFactor, 449.934 * scaleFactor) |
|
|
|
..cubicTo(140.002 * scaleFactor, 456.395 * scaleFactor, 194.428 * scaleFactor, 459.359 * scaleFactor, 248.533 * scaleFactor, 458.966 * scaleFactor) |
|
|
|
..cubicTo(302.639 * scaleFactor, 458.572 * scaleFactor, 356.282 * scaleFactor, 454.822 * scaleFactor, 397.177 * scaleFactor, 447.904 * scaleFactor) |
|
|
|
..cubicTo(417.642 * scaleFactor, 444.443 * scaleFactor, 434.779 * scaleFactor, 440.209 * scaleFactor, 447.149 * scaleFactor, 435.27 * scaleFactor) |
|
|
|
..cubicTo(453.338 * scaleFactor, 432.798 * scaleFactor, 458.209 * scaleFactor, 430.199 * scaleFactor, 461.686 * scaleFactor, 427.518 * scaleFactor) |
|
|
|
..cubicTo(465.181 * scaleFactor, 424.821 * scaleFactor, 467.024 * scaleFactor, 422.232 * scaleFactor, 467.636 * scaleFactor, 419.835 * scaleFactor) |
|
|
|
..cubicTo(471.161 * scaleFactor, 405.976 * scaleFactor, 473.704 * scaleFactor, 379.536 * scaleFactor, 475.24 * scaleFactor, 346.71 * scaleFactor) |
|
|
|
..cubicTo(476.772 * scaleFactor, 313.978 * scaleFactor, 477.293 * scaleFactor, 275.164 * scaleFactor, 476.847 * scaleFactor, 236.729 * scaleFactor) |
|
|
|
..cubicTo(476.401 * scaleFactor, 198.293 * scaleFactor, 474.989 * scaleFactor, 160.274 * scaleFactor, 472.661 * scaleFactor, 129.129 * scaleFactor) |
|
|
|
..cubicTo(471.497 * scaleFactor, 113.555 * scaleFactor, 470.106 * scaleFactor, 99.729 * scaleFactor, 468.498 * scaleFactor, 88.4443 * scaleFactor) |
|
|
|
..cubicTo(466.881 * scaleFactor, 77.0977 * scaleFactor, 465.07 * scaleFactor, 68.5213 * scaleFactor, 463.128 * scaleFactor, 63.3262 * scaleFactor) |
|
|
|
..cubicTo(460.15 * scaleFactor, 55.3421 * scaleFactor, 451.863 * scaleFactor, 47.7494 * scaleFactor, 438.653 * scaleFactor, 40.8027 * scaleFactor) |
|
|
|
..cubicTo(425.546 * scaleFactor, 33.9095 * scaleFactor, 408.099 * scaleFactor, 27.9176 * scaleFactor, 387.654 * scaleFactor, 22.8643 * scaleFactor) |
|
|
|
..cubicTo(346.784 * scaleFactor, 12.7625 * scaleFactor, 294.436 * scaleFactor, 6.53075 * scaleFactor, 242.081 * scaleFactor, 4.12988 * scaleFactor) |
|
|
|
..close(); |
|
|
|
|
|
|
|
return path; |
|
|
|
} |
|
|
|
|
|
|
|
@override |
|
|
|
bool shouldReclip(CustomClipper<Path> oldClipper) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class _SvgCustomPainter extends CustomPainter { |
|
|
|
_SvgCustomPainter(this.selected); |
|
|
|
|
|
|
|
final bool selected; |
|
|
|
|
|
|
|
class _CustomShapePainter extends CustomPainter { |
|
|
|
@override |
|
|
|
void paint(Canvas canvas, Size size) { |
|
|
|
double scaleFactor = 170.0 / 480.0; |
|
|
|
|
|
|
|
Path path = Path() |
|
|
|
..moveTo(242.081 * scaleFactor, 4.12988 * scaleFactor) |
|
|
|
..cubicTo(189.733 * scaleFactor, 1.72935 * scaleFactor, 137.532 * scaleFactor, 3.16507 * scaleFactor, 96.9766 * scaleFactor, 8.33887 * scaleFactor) |
|
|
|
..cubicTo(76.6855 * scaleFactor, 10.9275 * scaleFactor, 59.4247 * scaleFactor, 14.4382 * scaleFactor, 46.5547 * scaleFactor, 18.8203 * scaleFactor) |
|
|
|
..cubicTo(40.1188 * scaleFactor, 21.0117 * scaleFactor, 34.878 * scaleFactor, 23.3892 * scaleFactor, 30.9326 * scaleFactor, 25.916 * scaleFactor) |
|
|
|
..cubicTo(26.9611 * scaleFactor, 28.4595 * scaleFactor, 24.5168 * scaleFactor, 31.0171 * scaleFactor, 23.3438 * scaleFactor, 33.4795 * scaleFactor) |
|
|
|
..cubicTo(20.5038 * scaleFactor, 39.4409 * scaleFactor, 17.8387 * scaleFactor, 49.1133 * scaleFactor, 15.4463 * scaleFactor, 61.8105 * scaleFactor) |
|
|
|
..cubicTo(13.066 * scaleFactor, 74.4434 * scaleFactor, 10.9937 * scaleFactor, 89.8529 * scaleFactor, 9.25879 * scaleFactor, 107.15 * scaleFactor) |
|
|
|
..cubicTo(5.78933 * scaleFactor, 141.742 * scaleFactor, 3.68374 * scaleFactor, 183.74 * scaleFactor, 3.14062 * scaleFactor, 225.896 * scaleFactor) |
|
|
|
..cubicTo(2.5975 * scaleFactor, 268.052 * scaleFactor, 3.61795 * scaleFactor, 310.308 * scaleFactor, 6.3877 * scaleFactor, 345.416 * scaleFactor) |
|
|
|
..cubicTo(7.77271 * scaleFactor, 362.972 * scaleFactor, 9.59224 * scaleFactor, 378.701 * scaleFactor, 11.8633 * scaleFactor, 391.718 * scaleFactor) |
|
|
|
..cubicTo(14.1445 * scaleFactor, 404.793 * scaleFactor, 16.8465 * scaleFactor, 414.918 * scaleFactor, 19.9121 * scaleFactor, 421.396 * scaleFactor) |
|
|
|
..cubicTo(21.2125 * scaleFactor, 424.143 * scaleFactor, 23.8655 * scaleFactor, 426.967 * scaleFactor, 28.083 * scaleFactor, 429.773 * scaleFactor) |
|
|
|
..cubicTo(32.2774 * scaleFactor, 432.565 * scaleFactor, 37.8229 * scaleFactor, 435.209 * scaleFactor, 44.6045 * scaleFactor, 437.676 * scaleFactor) |
|
|
|
..cubicTo(58.1675 * scaleFactor, 442.609 * scaleFactor, 76.2991 * scaleFactor, 446.701 * scaleFactor, 97.542 * scaleFactor, 449.934 * scaleFactor) |
|
|
|
..cubicTo(140.002 * scaleFactor, 456.395 * scaleFactor, 194.428 * scaleFactor, 459.359 * scaleFactor, 248.533 * scaleFactor, 458.966 * scaleFactor) |
|
|
|
..cubicTo(302.639 * scaleFactor, 458.572 * scaleFactor, 356.282 * scaleFactor, 454.822 * scaleFactor, 397.177 * scaleFactor, 447.904 * scaleFactor) |
|
|
|
..cubicTo(417.642 * scaleFactor, 444.443 * scaleFactor, 434.779 * scaleFactor, 440.209 * scaleFactor, 447.149 * scaleFactor, 435.27 * scaleFactor) |
|
|
|
..cubicTo(453.338 * scaleFactor, 432.798 * scaleFactor, 458.209 * scaleFactor, 430.199 * scaleFactor, 461.686 * scaleFactor, 427.518 * scaleFactor) |
|
|
|
..cubicTo(465.181 * scaleFactor, 424.821 * scaleFactor, 467.024 * scaleFactor, 422.232 * scaleFactor, 467.636 * scaleFactor, 419.835 * scaleFactor) |
|
|
|
..cubicTo(471.161 * scaleFactor, 405.976 * scaleFactor, 473.704 * scaleFactor, 379.536 * scaleFactor, 475.24 * scaleFactor, 346.71 * scaleFactor) |
|
|
|
..cubicTo(476.772 * scaleFactor, 313.978 * scaleFactor, 477.293 * scaleFactor, 275.164 * scaleFactor, 476.847 * scaleFactor, 236.729 * scaleFactor) |
|
|
|
..cubicTo(476.401 * scaleFactor, 198.293 * scaleFactor, 474.989 * scaleFactor, 160.274 * scaleFactor, 472.661 * scaleFactor, 129.129 * scaleFactor) |
|
|
|
..cubicTo(471.497 * scaleFactor, 113.555 * scaleFactor, 470.106 * scaleFactor, 99.729 * scaleFactor, 468.498 * scaleFactor, 88.4443 * scaleFactor) |
|
|
|
..cubicTo(466.881 * scaleFactor, 77.0977 * scaleFactor, 465.07 * scaleFactor, 68.5213 * scaleFactor, 463.128 * scaleFactor, 63.3262 * scaleFactor) |
|
|
|
..cubicTo(460.15 * scaleFactor, 55.3421 * scaleFactor, 451.863 * scaleFactor, 47.7494 * scaleFactor, 438.653 * scaleFactor, 40.8027 * scaleFactor) |
|
|
|
..cubicTo(425.546 * scaleFactor, 33.9095 * scaleFactor, 408.099 * scaleFactor, 27.9176 * scaleFactor, 387.654 * scaleFactor, 22.8643 * scaleFactor) |
|
|
|
..cubicTo(346.784 * scaleFactor, 12.7625 * scaleFactor, 294.436 * scaleFactor, 6.53075 * scaleFactor, 242.081 * scaleFactor, 4.12988 * scaleFactor) |
|
|
|
..close(); |
|
|
|
|
|
|
|
Paint shadowPaint = Paint() |
|
|
|
..color = selected ? Colors.green.withValues(alpha: 0.5) : Colors |
|
|
|
.transparent |
|
|
|
..style = PaintingStyle.fill |
|
|
|
..maskFilter = MaskFilter.blur(BlurStyle.outer, 10); |
|
|
|
|
|
|
|
canvas.drawPath(path, shadowPaint); |
|
|
|
canvas.drawPath(path, shadowPaint); |
|
|
|
|
|
|
|
canvas.clipPath(path); |
|
|
|
|
|
|
|
Paint strokePaint = Paint() |
|
|
|
..color = selected ? Colors.green : Colors.white |
|
|
|
final Paint strokePaint = Paint() |
|
|
|
..color = Color(0XFFF2F7FF) |
|
|
|
..style = PaintingStyle.stroke |
|
|
|
..strokeWidth = 5; |
|
|
|
..strokeWidth = 4; |
|
|
|
|
|
|
|
final Path path = _CustomShapeClipper().getClip(size); |
|
|
|
canvas.drawPath(path, strokePaint); |
|
|
|
} |
|
|
|
|
|
|
|
@override |
|
|
|
bool shouldRepaint(CustomPainter oldDelegate) => true; |
|
|
|
bool shouldRepaint(covariant CustomPainter oldDelegate) { |
|
|
|
return this != oldDelegate; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class _CountClipper extends CustomClipper<Path> { |
|
|
|
class _CustomShapeClipper extends CustomClipper<Path> { |
|
|
|
@override |
|
|
|
Path getClip(Size size) { |
|
|
|
// Original SVG viewBox: width=34, height=33 |
|
|
|
final sx = size.width / 34.0; |
|
|
|
final sy = size.height / 33.0; |
|
|
|
// Original SVG dimensions to calculate the scaling factors. |
|
|
|
final double originalWidth = 193.0; |
|
|
|
final double originalHeight = 189.0; |
|
|
|
|
|
|
|
// Scaling factors to make the path responsive. |
|
|
|
final double scaleX = size.width / originalWidth; |
|
|
|
final double scaleY = size.height / originalHeight; |
|
|
|
|
|
|
|
// The path is defined using the scaled coordinates from the SVG. |
|
|
|
final Path path = Path() |
|
|
|
..moveTo(148.483 * scaleX, 4.10254 * scaleY) |
|
|
|
..cubicTo(131.624 * scaleX, 1.93333 * scaleY, 111.221 * scaleX, 1.00169 * scaleY, 91.2451 * scaleX, 1.2666 * scaleY) |
|
|
|
..cubicTo(71.2667 * scaleX, 1.53156 * scaleY, 51.7626 * scaleX, 2.99274 * scaleY, 36.6973 * scaleX, 5.59668 * scaleY) |
|
|
|
..cubicTo(29.1597 * scaleX, 6.8995 * scaleY, 22.7796 * scaleX, 8.48114 * scaleY, 18.0205 * scaleX, 10.3203 * scaleY) |
|
|
|
..cubicTo(15.641 * scaleX, 11.2399 * scaleY, 13.7026 * scaleX, 12.2101 * scaleY, 12.2383 * scaleX, 13.2188 * scaleY) |
|
|
|
..cubicTo(10.7653 * scaleX, 14.2333 * scaleY, 9.84633 * scaleX, 15.2359 * scaleY, 9.3916 * scaleX, 16.1904 * scaleY) |
|
|
|
..cubicTo(8.252 * scaleX, 18.5828 * scaleY, 7.18153 * scaleX, 22.466 * scaleY, 6.2207 * scaleX, 27.5654 * scaleY) |
|
|
|
..cubicTo(5.26481 * scaleX, 32.6387 * scaleY, 4.43215 * scaleX, 38.8273 * scaleY, 3.73535 * scaleX, 45.7744 * scaleY) |
|
|
|
..cubicTo(2.34189 * scaleX, 59.6675 * scaleY, 1.49647 * scaleX, 76.5363 * scaleY, 1.27832 * scaleX, 93.4678 * scaleY) |
|
|
|
..cubicTo(1.06017 * scaleX, 110.4 * scaleY, 1.47057 * scaleX, 127.372 * scaleY, 2.58301 * scaleX, 141.473 * scaleY) |
|
|
|
..cubicTo(3.13928 * scaleX, 148.524 * scaleY, 3.86921 * scaleX, 154.841 * scaleY, 4.78125 * scaleX, 160.068 * scaleY) |
|
|
|
..cubicTo(5.69748 * scaleX, 165.32 * scaleY, 6.78334 * scaleX, 169.385 * scaleY, 8.01367 * scaleX, 171.984 * scaleY) |
|
|
|
..cubicTo(8.53417 * scaleX, 173.084 * scaleY, 9.59654 * scaleX, 174.216 * scaleY, 11.2891 * scaleX, 175.343 * scaleY) |
|
|
|
..cubicTo(12.9722 * scaleX, 176.463 * scaleY, 15.1988 * scaleX, 177.524 * scaleY, 17.9219 * scaleX, 178.515 * scaleY) |
|
|
|
..cubicTo(23.3679 * scaleX, 180.496 * scaleY, 30.6491 * scaleX, 182.138 * scaleY, 39.1807 * scaleX, 183.437 * scaleY) |
|
|
|
..cubicTo(56.2336 * scaleX, 186.032 * scaleY, 78.0934 * scaleX, 187.222 * scaleY, 99.8242 * scaleX, 187.064 * scaleY) |
|
|
|
..cubicTo(121.556 * scaleX, 186.906 * scaleY, 143.101 * scaleX, 185.4 * scaleY, 159.525 * scaleX, 182.622 * scaleY) |
|
|
|
..cubicTo(167.745 * scaleX, 181.232 * scaleY, 174.627 * scaleX, 179.531 * scaleY, 179.594 * scaleX, 177.548 * scaleY) |
|
|
|
..cubicTo(182.079 * scaleX, 176.556 * scaleY, 184.034 * scaleX, 175.512 * scaleY, 185.429 * scaleX, 174.437 * scaleY) |
|
|
|
..cubicTo(186.83 * scaleX, 173.355 * scaleY, 187.568 * scaleX, 172.319 * scaleY, 187.812 * scaleX, 171.361 * scaleY) |
|
|
|
..lineTo(187.812 * scaleX, 171.361 * scaleY) // In SVG, this was H (horizontal line), equivalent to lineTo in Flutter |
|
|
|
..cubicTo(189.156 * scaleX, 166.074 * scaleY, 190.148 * scaleX, 155.525 * scaleY, 190.773 * scaleX, 142.157 * scaleY) |
|
|
|
..cubicTo(191.396 * scaleX, 128.832 * scaleY, 191.651 * scaleX, 112.822 * scaleY, 191.552 * scaleX, 96.6875 * scaleY) |
|
|
|
..cubicTo(191.453 * scaleX, 80.5539 * scaleY, 191.001 * scaleX, 64.3091 * scaleY, 190.213 * scaleX, 50.5156 * scaleY) |
|
|
|
..cubicTo(189.423 * scaleX, 36.6928 * scaleY, 188.299 * scaleX, 25.4153 * scaleY, 186.876 * scaleX, 19.167 * scaleY) |
|
|
|
..cubicTo(186.404 * scaleX, 17.0929 * scaleY, 185.566 * scaleX, 15.3424 * scaleY, 184.087 * scaleX, 14.1582 * scaleY) |
|
|
|
..cubicTo(181.343 * scaleX, 11.9613 * scaleY, 176.72 * scaleX, 9.98089 * scaleY, 170.561 * scaleX, 8.27539 * scaleY) |
|
|
|
..cubicTo(164.434 * scaleX, 6.579 * scaleY, 156.914 * scaleX, 5.18731 * scaleY, 148.483 * scaleX, 4.10254 * scaleY) |
|
|
|
..close(); // Closes the path to form a complete shape. |
|
|
|
|
|
|
|
final p = Path() |
|
|
|
..moveTo(33.3479 * sx, 14.8127 * sy) |
|
|
|
..cubicTo( |
|
|
|
33.3479 * sx, 23.7042 * sy, |
|
|
|
27.2015 * sx, 32.9501 * sy, |
|
|
|
17.8599 * sx, 32.9501 * sy, |
|
|
|
)..cubicTo( |
|
|
|
8.51818 * sx, 32.9501 * sy, |
|
|
|
0.945251 * sx, 25.7421 * sy, |
|
|
|
0.945251 * sx, 16.8507 * sy, |
|
|
|
)..cubicTo( |
|
|
|
0.945251 * sx, 7.95917 * sy, |
|
|
|
8.51818 * sx, 0.751205 * sy, |
|
|
|
17.8599 * sx, 0.751205 * sy, |
|
|
|
)..cubicTo( |
|
|
|
27.2015 * sx, 0.751205 * sy, |
|
|
|
33.3479 * sx, 5.92127 * sy, |
|
|
|
33.3479 * sx, 14.8127 * sy, |
|
|
|
)..close(); |
|
|
|
|
|
|
|
return p; |
|
|
|
return path; |
|
|
|
} |
|
|
|
|
|
|
|
@override |
|
|
|
bool shouldReclip(covariant CustomClipper<Path> oldClipper) => false; |
|
|
|
bool shouldReclip(covariant CustomClipper<Path> oldClipper) { |
|
|
|
return this != oldClipper; |
|
|
|
} |
|
|
|
} |