import 'package:fis_measure/interfaces/process/calculators/values.dart'; import 'package:fis_measure/process/calcuators/formulas/general.dart'; import 'package:fis_measure/process/items/item.dart'; import 'package:fis_measure/process/primitives/combos/two_length.dart'; import 'calculator.dart'; class MaxPgCal extends Calculator { MaxPgCal(TwoLengthAbstract ref) : super(ref); @override void calculate() { if (ref.feature == null) return; final a1 = _pickChildValue(ref.child1); final a2 = _pickChildValue(ref.child2); if (a1 != null && a2 != null) { final value = GeneralFormulas.countMaxPG( a1, a2, ); updateFloatValue(value); } } double? _pickChildValue(MeasureItem item) { if (item.calculator == null) return null; ValueBase? value; if (item.measuredFeatures.isNotEmpty) { value = item.measuredFeatures.first.value; } else if (item.feature != null) { value = item.feature!.value; } if (value != null) { return (value as FloatValue).value ?? 0; } return null; } }