sv.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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/flow.dart';
  4. import 'package:fis_measure/process/calcuators/sv.dart';
  5. import 'package:fis_measure/process/items/top_item.dart';
  6. import 'package:fis_measure/process/items/top_item_feature.dart';
  7. import '../multi_method/multiple_trace.dart';
  8. import '../straightline.dart';
  9. class Sv extends TopMeasureItem<SvFeature> {
  10. late final StraightLine l;
  11. late final MultiTrace trace;
  12. Sv(super.meta) {
  13. final metaDiam = meta.childItems[0];
  14. final metaTA = meta.childItems[1];
  15. l = StraightLine.createDistance(metaDiam, this);
  16. trace = MultiTrace.createTrace(metaTA, this);
  17. childItems.add(l);
  18. childItems.add(trace);
  19. isCrossAreaMode = true;
  20. // canChildOutputSelf = false;
  21. }
  22. @override
  23. bool get finishAfterUnactive => true;
  24. @override
  25. SvFeature buildFeature() => SvFeature(this);
  26. static Sv createSV(ItemMeta meta, [IMeasureItem? parent]) {
  27. var sv = Sv(meta);
  28. sv.calculator = SvCal(sv);
  29. return sv;
  30. }
  31. static Sv createFlowVol(ItemMeta meta, [IMeasureItem? parent]) {
  32. var sv = Sv(meta);
  33. sv.calculator = FlowVolumeCal(sv);
  34. return sv;
  35. }
  36. }
  37. class SvFeature extends TopMeasureItemFeature {
  38. SvFeature(
  39. ITopMeasureItem refItem,
  40. ) : super(refItem);
  41. }