import 'dart:typed_data'; import 'package:fis_measure/interfaces/date_types/rect_region.dart'; import 'package:fis_measure/interfaces/date_types/size.dart'; import 'package:fis_measure/interfaces/process/standard_line/pixel_space.dart'; import 'package:fis_measure/interfaces/process/visuals/visual.dart'; import 'package:vid/us/vid_us_probe.dart'; import '../application.dart'; import 'standard_line.dart'; import 'visual.dart'; /// 第三方应用 class ThirdPartApplication extends Application { ThirdPartApplication( VidUsProbe probe, Uint8List extendedData, ) : super(probe) { standardLine.loadFromVidExtData(extendedData); standardLine.pixelSpacingChanged.addListener(_onPixelSpacingChanged); } /// 参考线 final standardLine = StandardLine(); /// 是否请求过 将空的校准线填充 bool hasFillEmtpyStandardLineRequested = false; @override bool get isThirdPart => true; @override List<IVisual> convertVisuals() { final visualData = frameData!.visuals.first; final region = RectRegion.size(DSize(1, 1)); return [ThirdPartVisual(this, visualData, region)]; } void _onPixelSpacingChanged(Object sender, PixelSpacing? pixelSpacing) { loadVisuals(); } }