two_location.dart 1.7 KB

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