two_sv.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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/items/item_feature.dart';
  5. import 'package:fis_measure/process/items/item.dart';
  6. import 'package:fis_measure/process/items/top_item_feature.dart';
  7. import 'package:fis_measure/process/primitives/combos/sv.dart';
  8. import 'two_length.dart';
  9. class TwoSv extends TwoLengthAbstract<TwoSvFeature> {
  10. late final Sv qp;
  11. late final Sv qs;
  12. TwoSv(super.meta) {
  13. {
  14. final metaQp = meta.childItems[0];
  15. final metaQs = meta.childItems[1];
  16. qp = Sv.createSV(metaQp, this);
  17. qs = Sv.createSV(metaQs, this);
  18. childItems.add(qp);
  19. childItems.add(qs);
  20. isCrossAreaMode = true;
  21. }
  22. }
  23. @override
  24. MeasureItem<MeasureItemFeature> get child1 => qp;
  25. @override
  26. MeasureItem<MeasureItemFeature> get child2 => qs;
  27. @override
  28. bool get finishAfterUnactive => true;
  29. @override
  30. TwoSvFeature buildFeature() => TwoSvFeature(this);
  31. static TwoSv crateQpQs(ItemMeta meta, [IMeasureItem? parent]) {
  32. var ins = TwoSv(meta);
  33. ins.calculator = QpQsCal(ins);
  34. return ins;
  35. }
  36. }
  37. class TwoSvFeature extends TopMeasureItemFeature {
  38. TwoSvFeature(
  39. ITopMeasureItem refItem,
  40. ) : super(refItem);
  41. }