pisa.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import 'package:fis_measure/interfaces/process/calculators/values.dart';
  2. import 'package:fis_measure/interfaces/process/items/item.dart';
  3. import 'package:fis_measure/interfaces/process/items/item_metas.dart';
  4. import 'package:fis_measure/interfaces/process/items/terms.dart';
  5. import 'package:fis_measure/process/calcuators/pisa.dart';
  6. import 'package:fis_measure/process/items/top_item.dart';
  7. import 'package:fis_measure/process/items/top_item_feature.dart';
  8. import 'package:vid/us/vid_us_unit.dart';
  9. import '../multi_method/multiple_trace.dart';
  10. import '../straightline.dart';
  11. class Pisa extends TopMeasureItem<PisaFeature> {
  12. late final StraightLine radius;
  13. late final MultiTrace trace;
  14. late final FloatValue _alsVel;
  15. Pisa(super.meta) {
  16. final metaRadius = meta.childItems[0];
  17. final metaTrace = meta.childItems[1];
  18. radius = StraightLine.createDistance(metaRadius, this);
  19. trace = MultiTrace.createTrace(metaTrace, this);
  20. childItems.add(radius);
  21. childItems.add(trace);
  22. isCrossAreaMode = true;
  23. canChildOutputSelf = false;
  24. final alsVelOutputMeta =
  25. ItemOutputMeta(MeasureTerms.AlsVel, "Als.Vel", VidUsUnit.cms);
  26. _alsVel = FloatValue(alsVelOutputMeta, 65.0, alsVelOutputMeta.unit);
  27. // _alsVel = FloatValue(alsVelOutputMeta, 65.9, alsVelOutputMeta.unit);
  28. }
  29. @override
  30. bool get finishAfterUnactive => true;
  31. FloatValue get alsVel => _alsVel;
  32. @override
  33. PisaFeature buildFeature() => PisaFeature(this);
  34. void updateAlsVel(double val) {
  35. _alsVel.value = val;
  36. calculator?.calculate();
  37. update();
  38. }
  39. static Pisa createPisa(ItemMeta meta, [IMeasureItem? parent]) {
  40. var pisa = Pisa(meta);
  41. pisa.calculator = PisaCal(pisa);
  42. return pisa;
  43. }
  44. }
  45. class PisaFeature extends TopMeasureItemFeature {
  46. PisaFeature(
  47. ITopMeasureItem refItem,
  48. ) : super(refItem);
  49. }