two_location.dart 1.9 KB

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