123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import 'dart:ui';
- import 'package:fis_measure/interfaces/process/items/item.dart';
- import 'package:fis_measure/interfaces/process/items/item_metas.dart';
- import 'package:fis_measure/interfaces/process/items/terms.dart';
- import 'package:fis_measure/interfaces/process/items/types.dart';
- import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
- import 'package:fis_measure/process/calcuators/three_distance.dart';
- import 'package:fis_measure/process/items/item.dart';
- import 'package:fis_measure/process/items/item_feature.dart';
- import 'package:fis_measure/process/items/top_item.dart';
- import 'package:fis_measure/process/items/top_item_feature.dart';
- import 'package:fis_measure/process/primitives/straightline.dart';
- import 'three_children.dart';
- class LWHStraightLine extends ThreeChildrenAbstract<LWHStraightlineFeature> {
- static const String _lineLKey = "L";
- static const String _lineWKey = "W";
- static const String _lineHKey = "H";
- late final StraightLine l;
- late final StraightLine w;
- late final StraightLine h;
- final bool ifVertical;
- final bool ifTimeSpan;
- LWHStraightLine(ItemMeta meta,
- {this.ifVertical = false, this.ifTimeSpan = false})
- : super(meta) {
- final metaL = meta.getChildByName(_lineLKey)!;
- final metaH = meta.getChildByName(_lineHKey)!;
- final metaW = meta.getChildByName(_lineWKey)!;
- if (ifVertical) {
- l = StraightLine.createVerticalDistance(metaL, this);
- w = StraightLine.createVerticalDistance(metaW, this);
- h = StraightLine.createVerticalDistance(metaH, this);
- } else if (ifTimeSpan) {
- l = StraightLine.createTimeSpan(metaL, this);
- w = StraightLine.createTimeSpan(metaW, this);
- h = StraightLine.createTimeSpan(metaH, this);
- } else {
- l = StraightLine.createDistance(metaL, this);
- w = StraightLine.createDistance(metaW, this);
- h = StraightLine.createDistance(metaH, this);
- }
- childItems.add(l);
- childItems.add(w);
- childItems.add(h);
- }
- @override
- bool get finishAfterUnactive => true;
- @override
- MeasureItem<MeasureItemFeature> get child1 => l;
- @override
- MeasureItem<MeasureItemFeature> get child2 => w;
- @override
- MeasureItem<MeasureItemFeature> get child3 => h;
- @override
- LWHStraightlineFeature buildFeature() => LWHStraightlineFeature(this);
- @override
- void onCancelingOnce() {}
- //ThreeDistMeanCalculator
- static LWHStraightLine createVolume(ItemMeta meta, [IMeasureItem? parent]) {
- if (meta.measureType != MeasureTypes.VolumeThreeDistance) {
- throw ArgumentError();
- }
- var lwh = LWHStraightLine(meta);
- lwh.calculator = VolumeThreeDistanceCal(lwh);
- return lwh;
- }
- static LWHStraightLine createMean(ItemMeta meta, [IMeasureItem? parent]) {
- if (meta.measureType != MeasureTypes.ThreeDistanceMean) {
- throw ArgumentError();
- }
- var lwh = LWHStraightLine(meta);
- lwh.calculator = ThreeDistMeanCalculator(lwh);
- return lwh;
- }
- static LWHStraightLine createMax(ItemMeta meta, [IMeasureItem? parent]) {
- var lwh = LWHStraightLine(meta);
- lwh.calculator = ThreeDistMaxCalculator(lwh);
- return lwh;
- }
- static LWHStraightLine createThreeVerticalDistance(ItemMeta meta,
- [IMeasureItem? parent]) {
- if (meta.measureType != MeasureTypes.ThreeVerticalDistance) {
- throw ArgumentError();
- }
- var lwh = LWHStraightLine(
- meta,
- ifVertical: true,
- );
- if (meta.name == MeasureTerms.PercentMAM) {
- lwh.calculator = PercentMAMCalculator(lwh);
- }
- return lwh;
- }
- }
- class LWHStraightlineFeature extends TopMeasureItemFeature {
- LWHStraightlineFeature(
- ITopMeasureItem refItem,
- ) : super(refItem);
- }
|