|
@@ -0,0 +1,255 @@
|
|
|
+import 'package:fis_measure/interfaces/process/items/item.dart';
|
|
|
+import 'package:fis_measure/interfaces/process/items/item_metas.dart';
|
|
|
+import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ab_ratio.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/urm_measure/urm_ellipse_measure.dart';
|
|
|
+import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
|
|
|
+import 'package:fis_measure/process/primitives/urm_measure/urm_trace_measure.dart';
|
|
|
+
|
|
|
+/// TODO 暂时这样写 -需要优化一下下
|
|
|
+///
|
|
|
+class TwoURMRectDen extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMRectMeasure a1;
|
|
|
+ late final URMRectMeasure a2;
|
|
|
+
|
|
|
+ TwoURMRectDen(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMRectMeasure.createURMRectDensity(metaA1, this);
|
|
|
+ a2 = URMRectMeasure.createURMRectDensity(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMRectMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMRectMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMRectDen createTwoURMRectDen(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMRectDen(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMRectDenCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class TwoURMTraceDen extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMTraceMeasure a1;
|
|
|
+ late final URMTraceMeasure a2;
|
|
|
+
|
|
|
+ TwoURMTraceDen(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMTraceMeasure.createURMTraceDensity(metaA1, this);
|
|
|
+ a2 = URMTraceMeasure.createURMTraceDensity(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTraceMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTraceMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMTraceDen createTwoURMTraceDen(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMTraceDen(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMTraceDenCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class TwoURMEllipseDen
|
|
|
+ extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMEllipseMeasure a1;
|
|
|
+ late final URMEllipseMeasure a2;
|
|
|
+
|
|
|
+ TwoURMEllipseDen(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMEllipseMeasure.createURMEllipseDensity(metaA1, this);
|
|
|
+ a2 = URMEllipseMeasure.createURMEllipseDensity(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMEllipseMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMEllipseMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMEllipseDen createTwoURMEllipseDen(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMEllipseDen(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMEllipseDenCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class TwoURMRectFractal
|
|
|
+ extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMRectMeasure a1;
|
|
|
+ late final URMRectMeasure a2;
|
|
|
+
|
|
|
+ TwoURMRectFractal(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMRectMeasure.createURMRectFractalDim(metaA1, this);
|
|
|
+ a2 = URMRectMeasure.createURMRectFractalDim(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMRectMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMRectMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMRectFractal createTwoURMRectFractal(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMRectFractal(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMRectFractalCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class TwoURMTraceFractal
|
|
|
+ extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMTraceMeasure a1;
|
|
|
+ late final URMTraceMeasure a2;
|
|
|
+
|
|
|
+ TwoURMTraceFractal(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMTraceMeasure.createURMTraceFractalDim(metaA1, this);
|
|
|
+ a2 = URMTraceMeasure.createURMTraceFractalDim(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTraceMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTraceMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMTraceFractal createTwoURMTraceFractal(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMTraceFractal(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMTraceFractalCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+class TwoURMEllipseFractal
|
|
|
+ extends URMTwoURMRectDenAbstract<URMTwoURMRectDenFeature> {
|
|
|
+ static const String _area1Key = "Roi1";
|
|
|
+ static const String _area2Key = "Roi2";
|
|
|
+
|
|
|
+ late final URMEllipseMeasure a1;
|
|
|
+ late final URMEllipseMeasure a2;
|
|
|
+
|
|
|
+ TwoURMEllipseFractal(ItemMeta meta) : super(meta) {
|
|
|
+ final metaA1 = meta.getChildByName(_area1Key)!;
|
|
|
+ final metaA2 = meta.getChildByName(_area2Key)!;
|
|
|
+ a1 = URMEllipseMeasure.createURMEllipseFractalDim(metaA1, this);
|
|
|
+ a2 = URMEllipseMeasure.createURMEllipseFractalDim(metaA2, this);
|
|
|
+ childItems.add(a1);
|
|
|
+ childItems.add(a2);
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMEllipseMeasure get child1 => a1;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMEllipseMeasure get child2 => a2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ URMTwoURMRectDenFeature buildFeature() => URMTwoURMRectDenFeature(this);
|
|
|
+
|
|
|
+ @override
|
|
|
+ void onCancelingOnce() {}
|
|
|
+
|
|
|
+ static TwoURMEllipseFractal createTwoURMEllipseFractal(ItemMeta meta,
|
|
|
+ [IMeasureItem? parent]) {
|
|
|
+ var urmTwoURMRectDen = TwoURMEllipseFractal(meta);
|
|
|
+ urmTwoURMRectDen.calculator = TwoURMEllipseFractalCal(urmTwoURMRectDen);
|
|
|
+
|
|
|
+ return urmTwoURMRectDen;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+abstract class URMTwoURMRectDenAbstract<T extends MeasureItemFeature>
|
|
|
+ extends TopMeasureItem<T> {
|
|
|
+ URMTwoURMRectDenAbstract(ItemMeta meta) : super(meta);
|
|
|
+
|
|
|
+ MeasureItem get child1;
|
|
|
+ MeasureItem get child2;
|
|
|
+
|
|
|
+ @override
|
|
|
+ bool get finishAfterUnactive => true;
|
|
|
+}
|
|
|
+
|
|
|
+class URMTwoURMRectDenFeature extends TopMeasureItemFeature {
|
|
|
+ URMTwoURMRectDenFeature(
|
|
|
+ ITopMeasureItem refItem,
|
|
|
+ ) : super(refItem);
|
|
|
+}
|