straightline_group.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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/interfaces/process/items/types.dart';
  4. import 'package:fis_measure/process/calcuators/lv_study.dart';
  5. import 'package:fis_measure/process/items/top_item.dart';
  6. import 'package:fis_measure/process/items/top_item_feature.dart';
  7. import 'package:fis_measure/process/primitives/straightline.dart';
  8. class StraightLineGroup extends TopMeasureItem<StraightLineGroupFeature> {
  9. StraightLineGroup(ItemMeta meta) : super(meta) {
  10. for (final childMeta in meta.childItems) {
  11. final childItem = StraightLine.createDistance(childMeta, this);
  12. childItems.add(childItem);
  13. }
  14. }
  15. @override
  16. bool get finishAfterUnactive => true;
  17. @override
  18. StraightLineGroupFeature buildFeature() => StraightLineGroupFeature(this);
  19. static StraightLineGroup createLvStudy(ItemMeta meta,
  20. [IMeasureItem? parent]) {
  21. if (meta.measureType != MeasureTypes.LvStudyByLineGroupTissue) {
  22. throw ArgumentError();
  23. }
  24. var ins = StraightLineGroup(meta);
  25. ins.isCrossFrameMode = true;
  26. ins.calculator = LvStudyDistanceGroupCal(ins);
  27. return ins;
  28. }
  29. }
  30. class StraightLineGroupFeature extends TopMeasureItemFeature {
  31. StraightLineGroupFeature(
  32. ITopMeasureItem refItem,
  33. ) : super(refItem);
  34. }