dash_line.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'package:fis_measure/utils/canvas.dart';
  2. import 'package:fis_measure/view/paint/ai_patint_controller.dart';
  3. import 'package:fis_measure/view/paint/ai_patint_state.dart';
  4. import 'package:fis_measure/view/paint/parts/index.dart';
  5. import 'package:flutter/material.dart';
  6. import 'package:get/get.dart';
  7. /// ai的虚线部分
  8. class PaintAIDashLine extends CustomPainter {
  9. final AiDotsResults aiDotsResults;
  10. late final aiPatintController = Get.find<AiPatintController>();
  11. bool get isSelected =>
  12. aiPatintController.state.aiResultIndex == aiDotsResults.aiResultsIndex;
  13. PaintAIDashLine(
  14. this.aiDotsResults,
  15. );
  16. @override
  17. void paint(Canvas canvas, Size size) {
  18. canvas.drawDashLine(
  19. aiDotsResults.p1 ?? Offset.zero,
  20. aiDotsResults.p2 ?? Offset.zero,
  21. 2,
  22. 5,
  23. isSelected ? aiPaintSelected : aiPaint,
  24. );
  25. canvas.drawDashLine(
  26. aiDotsResults.p3 ?? Offset.zero,
  27. aiDotsResults.p4 ?? Offset.zero,
  28. 2,
  29. 5,
  30. isSelected ? aiPaintSelected : aiPaint,
  31. );
  32. canvas.drawVertex(
  33. aiDotsResults.p1 ?? Offset.zero,
  34. 10,
  35. active: isSelected,
  36. );
  37. canvas.drawVertex(
  38. aiDotsResults.p2 ?? Offset.zero,
  39. 10,
  40. active: isSelected,
  41. );
  42. canvas.drawVertex(
  43. aiDotsResults.p3 ?? Offset.zero,
  44. 10,
  45. active: isSelected,
  46. );
  47. canvas.drawVertex(
  48. aiDotsResults.p4 ?? Offset.zero,
  49. 10,
  50. active: isSelected,
  51. );
  52. }
  53. @override
  54. bool shouldRepaint(CustomPainter oldDelegate) {
  55. return false;
  56. }
  57. }