12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import 'package:fis_measure/interfaces/process/calculators/output.dart';
- 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/lwh_straightline.dart';
- import 'package:fis_measure/process/primitives/ellipse.dart';
- import 'package:fis_measure/process/primitives/straightline.dart';
- import 'package:vid/us/vid_us_unit.dart';
- import 'calculator.dart';
- import 'formulas/obstetrics.dart';
- class VolumeThreeDistanceCal extends Calculator<LWHStraightLine, double> {
- VolumeThreeDistanceCal(LWHStraightLine ref) : super(ref);
- @override
- void calculate() {
- if (ref.feature == null) return;
- final l = pickChildFloatValue(ref.l);
- final w = pickChildFloatValue(ref.w);
- final h = pickChildFloatValue(ref.h);
- final feature = ref.feature!;
- final viewport = feature.hostVisualArea!.viewport!;
- if (l != null && w != null && h != null) {
- final value = GeneralFormulas.volumeWithCoefficient(
- l,
- w,
- h,
- GeneralFormulas.VolumeCofficient,
- );
- updateFloatValue(value);
- }
- }
- }
- class ThreeDistMeanCalculator extends Calculator<LWHStraightLine, double> {
- ThreeDistMeanCalculator(LWHStraightLine ref) : super(ref);
- @override
- void calculate() {
- if (ref.feature == null) return;
- final l = pickChildFloatValue(ref.l);
- final w = pickChildFloatValue(ref.w);
- final h = pickChildFloatValue(ref.h);
- if (l != null && w != null && h != null) {
- final value = ObstetricsFormulas.gsMean(l, w, h);
- updateFloatValue(value);
- }
- }
- }
- class ThreeDistMaxCalculator extends Calculator<LWHStraightLine, double> {
- ThreeDistMaxCalculator(LWHStraightLine ref) : super(ref);
- @override
- void calculate() {
- if (ref.feature == null) return;
- final l = findChildFeature(ref.l);
- final w = findChildFeature(ref.w);
- final h = findChildFeature(ref.h);
- if (l == null && w == null && h == null) return;
- double lineL = 0;
- double lineW = 0;
- double lineH = 0;
- if (l != null) lineL = l.value?.pickFloat() ?? 0;
- if (w != null) lineW = w.value?.pickFloat() ?? 0;
- if (h != null) lineH = h.value?.pickFloat() ?? 0;
- double gs = ObstetricsFormulas.gsMax(lineL, lineW, lineH);
- updateFloatValue(gs, unit: VidUsUnit.cm, useRound: true);
- }
- }
|