urm_vel.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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_vel.dart';
  4. import 'package:fis_measure/process/items/top_item_feature.dart';
  5. import 'package:fis_measure/process/primitives/straightline.dart';
  6. import 'package:fis_measure/process/items/item.dart';
  7. import 'package:fis_measure/process/items/item_feature.dart';
  8. import 'package:fis_measure/process/items/top_item.dart';
  9. import 'package:fis_measure/process/primitives/urm_measure/urm_location_vel.dart';
  10. class URMVel extends URMVelAbstract<URMVelFeature> {
  11. static const String _area1Key = "URMLocationVel";
  12. static const String _area2Key = "Vessel diameter";
  13. static const String _area3Key = "Vessel distance";
  14. late final URMLocationVelMeasure a1;
  15. late final StraightLine a2;
  16. late final StraightLine a3;
  17. URMVel(ItemMeta meta) : super(meta) {
  18. final metaA1 = meta.getChildByName(_area1Key)!;
  19. final metaA2 = meta.getChildByName(_area2Key)!;
  20. final metaA3 = meta.getChildByName(_area3Key)!;
  21. a1 = URMLocationVelMeasure.createURMLocationVelMeasure(metaA1, this);
  22. a2 = StraightLine.createDistance(metaA2, this);
  23. a3 = StraightLine.createDistance(metaA3, this);
  24. childItems.add(a1);
  25. childItems.add(a2);
  26. childItems.add(a3);
  27. }
  28. @override
  29. URMLocationVelMeasure get child1 => a1;
  30. @override
  31. StraightLine get child2 => a2;
  32. @override
  33. StraightLine get child3 => a3;
  34. @override
  35. URMVelFeature buildFeature() => URMVelFeature(this);
  36. @override
  37. void onCancelingOnce() {}
  38. static URMVel create(ItemMeta meta, [IMeasureItem? parent]) {
  39. var urmVel = URMVel(meta);
  40. urmVel.calculator = URMVelCal(urmVel);
  41. return urmVel;
  42. }
  43. }
  44. class URMVelFeature extends TopMeasureItemFeature {
  45. URMVelFeature(
  46. ITopMeasureItem refItem,
  47. ) : super(refItem);
  48. }
  49. abstract class URMVelAbstract<T extends MeasureItemFeature>
  50. extends TopMeasureItem<T> {
  51. URMVelAbstract(ItemMeta meta) : super(meta);
  52. MeasureItem get child1;
  53. MeasureItem get child2;
  54. MeasureItem get child3;
  55. @override
  56. bool get finishAfterUnactive => true;
  57. }