import 'package:fis_measure/interfaces/process/calculators/values.dart'; import 'package:fis_measure/interfaces/process/items/item.dart'; import 'package:fis_measure/interfaces/process/items/item_metas.dart'; import 'package:fis_measure/interfaces/process/items/terms.dart'; import 'package:fis_measure/process/calcuators/pisa.dart'; import 'package:fis_measure/process/items/top_item.dart'; import 'package:fis_measure/process/items/top_item_feature.dart'; import 'package:vid/us/vid_us_unit.dart'; import '../multi_method/multiple_trace.dart'; import '../straightline.dart'; class Pisa extends TopMeasureItem { late final StraightLine radius; late final MultiTrace trace; late final FloatValue _alsVel; Pisa(super.meta) { final metaRadius = meta.childItems[0]; final metaTrace = meta.childItems[1]; radius = StraightLine.createDistance(metaRadius, this); trace = MultiTrace.createTrace(metaTrace, this); childItems.add(radius); childItems.add(trace); isCrossAreaMode = true; canChildOutputSelf = false; final alsVelOutputMeta = ItemOutputMeta(MeasureTerms.AlsVel, "Als.Vel", VidUsUnit.cms); _alsVel = FloatValue(alsVelOutputMeta, 65.0, alsVelOutputMeta.unit); // _alsVel = FloatValue(alsVelOutputMeta, 65.9, alsVelOutputMeta.unit); } @override bool get finishAfterUnactive => true; FloatValue get alsVel => _alsVel; @override PisaFeature buildFeature() => PisaFeature(this); void updateAlsVel(double val) { _alsVel.value = val; calculator?.calculate(); update(); } static Pisa createPisa(ItemMeta meta, [IMeasureItem? parent]) { var pisa = Pisa(meta); pisa.calculator = PisaCal(pisa); return pisa; } } class PisaFeature extends TopMeasureItemFeature { PisaFeature( ITopMeasureItem refItem, ) : super(refItem); }