12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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<TwoLengthAbstract, double> {
- 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;
- }
- }
|