visual.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'package:fis_measure/interfaces/date_types/rect_region.dart';
  2. import 'package:fis_measure/interfaces/enums/display_mode.dart';
  3. import 'package:fis_measure/interfaces/enums/visual_area_type.dart';
  4. import 'package:fis_measure/interfaces/process/modes/mode.dart';
  5. import 'package:fis_common/event/event_type.dart';
  6. import 'package:fis_measure/interfaces/process/visuals/visual.dart';
  7. import 'package:fis_measure/process/layout/configuration.dart';
  8. import 'package:fis_measure/process/layout/section.dart';
  9. import 'package:fis_measure/process/modes/mode_base.dart';
  10. import 'package:flutter/foundation.dart';
  11. import 'package:get/get.dart';
  12. import 'package:vid/us/vid_us_2d_visual.dart';
  13. import 'package:vid/us/vid_us_display_mode.dart';
  14. import 'package:vid/us/vid_us_mode.dart';
  15. import 'package:vid/us/vid_us_visual.dart';
  16. import 'package:fis_measure/interfaces/process/visuals/visual_area.dart';
  17. import 'tissue_area.dart';
  18. import 'visual_area.dart';
  19. abstract class VisualBase implements IVisual {
  20. late final VidUsVisual _visualData;
  21. late final List<IVisualArea> _visualAreas;
  22. late final RectRegion _region;
  23. VisualBase(VidUsVisual visualData, RectRegion region) {
  24. _visualData = visualData;
  25. _region = region;
  26. _visualAreas = loadAreas();
  27. }
  28. /// 装载区域
  29. List<IVisualArea> loadAreas();
  30. @override
  31. bool get isActive => visualAreas.any((e) => e.isActive);
  32. @override
  33. IMode? get activeMode => activeArea?.mode;
  34. @override
  35. VidUsDisplayMode get displayMode => visualData.displayMode;
  36. @override
  37. List<IMode> get modes => visualAreas.map((e) => e.mode).toSet().toList();
  38. @override
  39. List<IVisualArea> get visualAreas => _visualAreas;
  40. @override
  41. RectRegion get region => _region;
  42. @override
  43. IVisualArea? get activeArea =>
  44. visualAreas.firstWhereOrNull((e) => e.isActive);
  45. @override
  46. VidUsVisual get visualData => _visualData;
  47. @override
  48. var activeChanged = FEventHandler<bool>();
  49. @override
  50. void setUnAcitve() {
  51. for (var area in visualAreas) {
  52. area.isActive = false;
  53. }
  54. }
  55. }