urm_den.dart 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import 'package:fis_measure/interfaces/process/items/item.dart';
  2. import 'package:fis_measure/interfaces/process/items/item_metas.dart';
  3. import 'package:fis_measure/process/calcuators/urm_calcuators/urm_den.dart';
  4. import 'package:fis_measure/process/items/top_item_feature.dart';
  5. import 'package:fis_measure/process/primitives/straightline.dart';
  6. import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
  7. import 'package:fis_measure/process/primitives/urm_measure/urm_straight_curvature_line_measure.dart';
  8. import 'package:fis_measure/process/items/item.dart';
  9. import 'package:fis_measure/process/items/item_feature.dart';
  10. import 'package:fis_measure/process/items/top_item.dart';
  11. // import 'package:fis_measure/process/primitives/urm_straightline.dart';
  12. class URMDen extends URMDenAbstract<URMDenFeature> {
  13. static const String _area1Key = "URMCurvature";
  14. static const String _area2Key = "URMRectDensity";
  15. static const String _area3Key = "URMRectFractalDim";
  16. static const String _area4Key = "Vessel diameter";
  17. static const String _area5Key = "Vessel distance";
  18. late final URMStraightCurvatureLineMeasure a1;
  19. late final URMRectMeasure a2;
  20. late final URMRectMeasure a3;
  21. late final StraightLine a4;
  22. late final StraightLine a5;
  23. URMDen(ItemMeta meta) : super(meta) {
  24. final metaA1 = meta.getChildByName(_area1Key)!;
  25. final metaA2 = meta.getChildByName(_area2Key)!;
  26. final metaA3 = meta.getChildByName(_area3Key)!;
  27. final metaA4 = meta.getChildByName(_area4Key)!;
  28. final metaA5 = meta.getChildByName(_area5Key)!;
  29. a1 = URMStraightCurvatureLineMeasure.createURMStraightCurvatureLineMeasure(
  30. metaA1, this);
  31. a2 = URMRectMeasure.createURMRectDensity(metaA2, this);
  32. a3 = URMRectMeasure.createURMRectFractalDim(metaA3, this);
  33. a4 = StraightLine.createDistance(metaA4, this);
  34. a5 = StraightLine.createDistance(metaA5, this);
  35. childItems.add(a1);
  36. childItems.add(a2);
  37. childItems.add(a3);
  38. childItems.add(a4);
  39. childItems.add(a5);
  40. }
  41. @override
  42. StraightLine get child1 => a1;
  43. @override
  44. URMRectMeasure get child2 => a2;
  45. @override
  46. URMRectMeasure get child3 => a3;
  47. @override
  48. StraightLine get child4 => a4;
  49. @override
  50. StraightLine get child5 => a5;
  51. @override
  52. URMDenFeature buildFeature() => URMDenFeature(this);
  53. @override
  54. void onCancelingOnce() {}
  55. static URMDen create(ItemMeta meta, [IMeasureItem? parent]) {
  56. var urmDen = URMDen(meta);
  57. urmDen.calculator = URMDenCal(urmDen);
  58. return urmDen;
  59. }
  60. }
  61. abstract class URMDenAbstract<T extends MeasureItemFeature>
  62. extends TopMeasureItem<T> {
  63. URMDenAbstract(ItemMeta meta) : super(meta);
  64. MeasureItem get child1;
  65. MeasureItem get child2;
  66. MeasureItem get child3;
  67. MeasureItem get child4;
  68. MeasureItem get child5;
  69. @override
  70. bool get finishAfterUnactive => true;
  71. }
  72. class URMDenFeature extends TopMeasureItemFeature {
  73. URMDenFeature(
  74. ITopMeasureItem refItem,
  75. ) : super(refItem);
  76. }