urm_ab_ratio.dart 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. import 'package:fis_measure/interfaces/process/items/item.dart';
  2. import 'package:fis_measure/interfaces/process/items/item_metas.dart';
  3. import 'package:fis_measure/process/calcuators/urm_calcuators/urm_ab_ratio.dart';
  4. import 'package:fis_measure/process/items/top_item_feature.dart';
  5. import 'package:fis_measure/process/primitives/urm_measure/urm_ellipse_measure.dart';
  6. import 'package:fis_measure/process/primitives/urm_measure/urm_rect_measure.dart';
  7. import 'package:fis_measure/process/primitives/urm_measure/urm_trace_measure.dart';
  8. import 'package:fis_measure/process/items/item.dart';
  9. import 'package:fis_measure/process/items/item_feature.dart';
  10. import 'package:fis_measure/process/items/top_item.dart';
  11. class URMAbRatioFeature extends TopMeasureItemFeature {
  12. URMAbRatioFeature(
  13. ITopMeasureItem refItem,
  14. ) : super(refItem);
  15. }
  16. abstract class URMAbRatioAbstract<T extends MeasureItemFeature>
  17. extends TopMeasureItem<T> {
  18. URMAbRatioAbstract(ItemMeta meta) : super(meta);
  19. MeasureItem get child1;
  20. MeasureItem get child2;
  21. @override
  22. bool get finishAfterUnactive => true;
  23. }
  24. class TwoURMRectDen extends URMAbRatioAbstract<URMAbRatioFeature> {
  25. static const String _area1Key = "Roi1";
  26. static const String _area2Key = "Roi2";
  27. late final URMRectMeasure a1;
  28. late final URMRectMeasure a2;
  29. TwoURMRectDen(ItemMeta meta) : super(meta) {
  30. final metaA1 = meta.getChildByName(_area1Key)!;
  31. final metaA2 = meta.getChildByName(_area2Key)!;
  32. a1 = URMRectMeasure.createURMRectDensity(metaA1, this);
  33. a2 = URMRectMeasure.createURMRectDensity(metaA2, this);
  34. childItems.add(a1);
  35. childItems.add(a2);
  36. }
  37. @override
  38. URMRectMeasure get child1 => a1;
  39. @override
  40. URMRectMeasure get child2 => a2;
  41. @override
  42. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  43. @override
  44. void onCancelingOnce() {}
  45. static TwoURMRectDen createTwoURMRectDen(ItemMeta meta,
  46. [IMeasureItem? parent]) {
  47. var urmTwoURMRectDen = TwoURMRectDen(meta);
  48. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  49. return urmTwoURMRectDen;
  50. }
  51. }
  52. class TwoURMTraceDen extends URMAbRatioAbstract<URMAbRatioFeature> {
  53. static const String _area1Key = "Roi1";
  54. static const String _area2Key = "Roi2";
  55. late final URMTraceMeasure a1;
  56. late final URMTraceMeasure a2;
  57. TwoURMTraceDen(ItemMeta meta) : super(meta) {
  58. final metaA1 = meta.getChildByName(_area1Key)!;
  59. final metaA2 = meta.getChildByName(_area2Key)!;
  60. a1 = URMTraceMeasure.createURMTraceDensity(metaA1, this);
  61. a2 = URMTraceMeasure.createURMTraceDensity(metaA2, this);
  62. childItems.add(a1);
  63. childItems.add(a2);
  64. }
  65. @override
  66. URMTraceMeasure get child1 => a1;
  67. @override
  68. URMTraceMeasure get child2 => a2;
  69. @override
  70. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  71. @override
  72. void onCancelingOnce() {}
  73. static TwoURMTraceDen createTwoURMTraceDen(ItemMeta meta,
  74. [IMeasureItem? parent]) {
  75. var urmTwoURMRectDen = TwoURMTraceDen(meta);
  76. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  77. return urmTwoURMRectDen;
  78. }
  79. }
  80. class TwoURMEllipseDen extends URMAbRatioAbstract<URMAbRatioFeature> {
  81. static const String _area1Key = "Roi1";
  82. static const String _area2Key = "Roi2";
  83. late final URMEllipseMeasure a1;
  84. late final URMEllipseMeasure a2;
  85. TwoURMEllipseDen(ItemMeta meta) : super(meta) {
  86. final metaA1 = meta.getChildByName(_area1Key)!;
  87. final metaA2 = meta.getChildByName(_area2Key)!;
  88. a1 = URMEllipseMeasure.createURMEllipseDensity(metaA1, this);
  89. a2 = URMEllipseMeasure.createURMEllipseDensity(metaA2, this);
  90. childItems.add(a1);
  91. childItems.add(a2);
  92. }
  93. @override
  94. URMEllipseMeasure get child1 => a1;
  95. @override
  96. URMEllipseMeasure get child2 => a2;
  97. @override
  98. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  99. @override
  100. void onCancelingOnce() {}
  101. static TwoURMEllipseDen createTwoURMEllipseDen(ItemMeta meta,
  102. [IMeasureItem? parent]) {
  103. var urmTwoURMRectDen = TwoURMEllipseDen(meta);
  104. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  105. return urmTwoURMRectDen;
  106. }
  107. }
  108. class TwoURMRectFractal extends URMAbRatioAbstract<URMAbRatioFeature> {
  109. static const String _area1Key = "Roi1";
  110. static const String _area2Key = "Roi2";
  111. late final URMRectMeasure a1;
  112. late final URMRectMeasure a2;
  113. TwoURMRectFractal(ItemMeta meta) : super(meta) {
  114. final metaA1 = meta.getChildByName(_area1Key)!;
  115. final metaA2 = meta.getChildByName(_area2Key)!;
  116. a1 = URMRectMeasure.createURMRectFractalDim(metaA1, this);
  117. a2 = URMRectMeasure.createURMRectFractalDim(metaA2, this);
  118. childItems.add(a1);
  119. childItems.add(a2);
  120. }
  121. @override
  122. URMRectMeasure get child1 => a1;
  123. @override
  124. URMRectMeasure get child2 => a2;
  125. @override
  126. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  127. @override
  128. void onCancelingOnce() {}
  129. static TwoURMRectFractal createTwoURMRectFractal(ItemMeta meta,
  130. [IMeasureItem? parent]) {
  131. var urmTwoURMRectDen = TwoURMRectFractal(meta);
  132. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  133. return urmTwoURMRectDen;
  134. }
  135. }
  136. class TwoURMTraceFractal extends URMAbRatioAbstract<URMAbRatioFeature> {
  137. static const String _area1Key = "Roi1";
  138. static const String _area2Key = "Roi2";
  139. late final URMTraceMeasure a1;
  140. late final URMTraceMeasure a2;
  141. TwoURMTraceFractal(ItemMeta meta) : super(meta) {
  142. final metaA1 = meta.getChildByName(_area1Key)!;
  143. final metaA2 = meta.getChildByName(_area2Key)!;
  144. a1 = URMTraceMeasure.createURMTraceFractalDim(metaA1, this);
  145. a2 = URMTraceMeasure.createURMTraceFractalDim(metaA2, this);
  146. childItems.add(a1);
  147. childItems.add(a2);
  148. }
  149. @override
  150. URMTraceMeasure get child1 => a1;
  151. @override
  152. URMTraceMeasure get child2 => a2;
  153. @override
  154. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  155. @override
  156. void onCancelingOnce() {}
  157. static TwoURMTraceFractal createTwoURMTraceFractal(ItemMeta meta,
  158. [IMeasureItem? parent]) {
  159. var urmTwoURMRectDen = TwoURMTraceFractal(meta);
  160. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  161. return urmTwoURMRectDen;
  162. }
  163. }
  164. class TwoURMEllipseFractal extends URMAbRatioAbstract<URMAbRatioFeature> {
  165. static const String _area1Key = "Roi1";
  166. static const String _area2Key = "Roi2";
  167. late final URMEllipseMeasure a1;
  168. late final URMEllipseMeasure a2;
  169. TwoURMEllipseFractal(ItemMeta meta) : super(meta) {
  170. final metaA1 = meta.getChildByName(_area1Key)!;
  171. final metaA2 = meta.getChildByName(_area2Key)!;
  172. a1 = URMEllipseMeasure.createURMEllipseFractalDim(metaA1, this);
  173. a2 = URMEllipseMeasure.createURMEllipseFractalDim(metaA2, this);
  174. childItems.add(a1);
  175. childItems.add(a2);
  176. }
  177. @override
  178. URMEllipseMeasure get child1 => a1;
  179. @override
  180. URMEllipseMeasure get child2 => a2;
  181. @override
  182. URMAbRatioFeature buildFeature() => URMAbRatioFeature(this);
  183. @override
  184. void onCancelingOnce() {}
  185. static TwoURMEllipseFractal createTwoURMEllipseFractal(ItemMeta meta,
  186. [IMeasureItem? parent]) {
  187. var urmTwoURMRectDen = TwoURMEllipseFractal(meta);
  188. urmTwoURMRectDen.calculator = URMAbRatioCal(urmTwoURMRectDen);
  189. return urmTwoURMRectDen;
  190. }
  191. }