two_location.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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/a_b_ratio.dart';
  4. import 'package:fis_measure/process/calcuators/pg.dart';
  5. import 'package:fis_measure/process/calcuators/resistivity_index.dart';
  6. import 'package:fis_measure/process/calcuators/two_location.dart';
  7. import 'package:fis_measure/process/items/top_item_feature.dart';
  8. import 'package:fis_measure/process/primitives/location.dart';
  9. import 'two_length.dart';
  10. class TwoLocation extends TwoLengthAbstract<TwoLocationFeature> {
  11. @override
  12. bool get ifAutoFinish => true;
  13. @override
  14. bool get ifAutoStart => true;
  15. late final Location x;
  16. late final Location y;
  17. TwoLocation(ItemMeta meta) : super(meta) {
  18. final metaX = meta.childItems[0];
  19. final metaY = meta.childItems[1];
  20. x = Location.createVelocity(metaX, this);
  21. y = Location.createVelocity(metaY, this);
  22. childItems.add(x);
  23. childItems.add(y);
  24. }
  25. @override
  26. Location get child1 => x;
  27. @override
  28. Location get child2 => y;
  29. @override
  30. TwoLocationFeature buildFeature() => TwoLocationFeature(this);
  31. @override
  32. void onCancelingOnce() {}
  33. static TwoLocation createAbRatioTwoVelocity(ItemMeta meta,
  34. [IMeasureItem? parent]) {
  35. TwoLocation twoLocation = TwoLocation(meta);
  36. twoLocation.calculator = ABRatioCal(twoLocation);
  37. return twoLocation;
  38. }
  39. static TwoLocation createResistivityIndexTwoLocationByEd(ItemMeta meta,
  40. [IMeasureItem? parent]) {
  41. TwoLocation twoLocation = TwoLocation(meta);
  42. twoLocation.calculator = ResistivityIndexCal(twoLocation);
  43. return twoLocation;
  44. }
  45. static TwoLocation createMaxPgTwoLocation(ItemMeta meta,
  46. [IMeasureItem? parent]) {
  47. TwoLocation twoLocation = TwoLocation(meta);
  48. twoLocation.calculator = MaxPgCal(twoLocation);
  49. return twoLocation;
  50. }
  51. static TwoLocation createPulsatilityIndex(ItemMeta meta,
  52. [IMeasureItem? parent]) {
  53. TwoLocation twoLocation = TwoLocation(meta);
  54. twoLocation.calculator = PulsatilityIndexCal(twoLocation);
  55. return twoLocation;
  56. }
  57. }
  58. class TwoLocationFeature extends TopMeasureItemFeature {
  59. TwoLocationFeature(
  60. ITopMeasureItem refItem,
  61. ) : super(refItem);
  62. }