distance.dart 882 B

12345678910111213141516171819202122232425262728
  1. import 'package:fis_measure/interfaces/date_types/point.dart';
  2. import 'package:fis_measure/interfaces/process/calculators/output.dart';
  3. import 'package:fis_measure/interfaces/process/items/types.dart';
  4. import 'package:vid/us/vid_us_unit.dart';
  5. import '../primitives/straightline.dart';
  6. import 'calculator.dart';
  7. class DistanceCal extends Calculator<StraightLine, double> {
  8. DistanceCal(StraightLine ref) : super(ref);
  9. @override
  10. void calculate() {
  11. if (ref.feature == null) return;
  12. final feature = ref.feature!;
  13. // TODO:xxx
  14. final viewport = feature.hostVisualArea!.viewport!;
  15. final p1 = feature.startPoint;
  16. final p2 = feature.endPoint;
  17. final pp1 = viewport.convert(p1);
  18. final pp2 = viewport.convert(p2);
  19. final value = (pp2 - pp1).length.abs();
  20. final floatValue = updateFloatValue(value);
  21. floatValue!.name = ref.displayName;
  22. }
  23. }