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/items/top_item.dart'; import 'package:fis_measure/process/items/top_item_feature.dart'; import 'package:fis_measure/process/primitives/multi_method/multiple_trace.dart'; import 'package:fis_measure/process/primitives/straightline.dart'; class FlowAreaByVti extends TopMeasureItem { late final StraightLine l; late final MultiTrace trace1; late final MultiTrace trace2; FlowAreaByVti(super.meta) { final metaDiam = meta.childItems[0]; final metaTrace1 = meta.childItems[1]; final metaTrace2 = meta.childItems[2]; l = StraightLine.createDistance(metaDiam, this); trace1 = MultiTrace.createTrace(metaTrace1, this); trace2 = MultiTrace.createTrace(metaTrace2, this); childItems.add(l); childItems.add(trace1); childItems.add(trace2); isCrossAreaMode = true; } @override bool get finishAfterUnactive => true; @override FlowAreaByVtiFeature buildFeature() => FlowAreaByVtiFeature(this); static FlowAreaByVti createFlowAreaByVti(ItemMeta meta, [IMeasureItem? parent]) { var ins = FlowAreaByVti(meta); ins.canChildOutputSelf = false; ins.calculator = FlowAreaByVTICal(ins); return ins; } } class FlowAreaByVtiFeature extends TopMeasureItemFeature { FlowAreaByVtiFeature( ITopMeasureItem refItem, ) : super(refItem); }