pg.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:fis_measure/interfaces/process/calculators/values.dart';
  2. import 'package:fis_measure/process/calcuators/formulas/general.dart';
  3. import 'package:fis_measure/process/items/item.dart';
  4. import 'package:fis_measure/process/primitives/combos/two_length.dart';
  5. import 'calculator.dart';
  6. class MaxPgCal extends Calculator<TwoLengthAbstract, double> {
  7. MaxPgCal(TwoLengthAbstract ref) : super(ref);
  8. @override
  9. void calculate() {
  10. if (ref.feature == null) return;
  11. final a1 = _pickChildValue(ref.child1);
  12. final a2 = _pickChildValue(ref.child2);
  13. if (a1 != null && a2 != null) {
  14. final value = GeneralFormulas.countMaxPG(
  15. a1,
  16. a2,
  17. );
  18. updateFloatValue(value);
  19. }
  20. }
  21. double? _pickChildValue(MeasureItem item) {
  22. if (item.calculator == null) return null;
  23. ValueBase? value;
  24. if (item.measuredFeatures.isNotEmpty) {
  25. value = item.measuredFeatures.first.value;
  26. } else if (item.feature != null) {
  27. value = item.feature!.value;
  28. }
  29. if (value != null) {
  30. return (value as FloatValue).value ?? 0;
  31. }
  32. return null;
  33. }
  34. }