import 'package:fis_measure/interfaces/process/items/item.dart'; import 'package:fis_measure/interfaces/process/items/item_metas.dart'; import 'package:fis_measure/process/calcuators/flow.dart'; import 'package:fis_measure/process/calcuators/sv.dart'; import 'package:fis_measure/process/items/top_item.dart'; import 'package:fis_measure/process/items/top_item_feature.dart'; import '../multi_method/multiple_trace.dart'; import '../straightline.dart'; class Sv extends TopMeasureItem { late final StraightLine l; late final MultiTrace trace; Sv(super.meta) { final metaDiam = meta.childItems[0]; final metaTA = meta.childItems[1]; l = StraightLine.createDistance(metaDiam, this); trace = MultiTrace.createTrace(metaTA, this); childItems.add(l); childItems.add(trace); isCrossAreaMode = true; // canChildOutputSelf = false; } @override bool get finishAfterUnactive => true; @override SvFeature buildFeature() => SvFeature(this); static Sv createSV(ItemMeta meta, [IMeasureItem? parent]) { var sv = Sv(meta); sv.calculator = SvCal(sv); return sv; } static Sv createFlowVol(ItemMeta meta, [IMeasureItem? parent]) { var sv = Sv(meta); sv.calculator = FlowVolumeCal(sv); return sv; } } class SvFeature extends TopMeasureItemFeature { SvFeature( ITopMeasureItem refItem, ) : super(refItem); }