|
@@ -1,3 +1,4 @@
|
|
|
+import 'package:fis_measure/interfaces/date_types/rect_region.dart';
|
|
|
import 'package:fis_measure/interfaces/enums/annotation.dart';
|
|
|
import 'package:fis_measure/interfaces/enums/operate.dart';
|
|
|
import 'package:fis_measure/interfaces/process/annotations/annotation.dart';
|
|
@@ -123,6 +124,13 @@ class Application implements IApplication {
|
|
|
|
|
|
@override
|
|
|
double get displayScaleRatio {
|
|
|
+ if (isAdaptiveCarotid2D) {
|
|
|
+ final firstScale = min(displaySize.width / frameData!.width,
|
|
|
+ displaySize.height / frameData!.height);
|
|
|
+ final secondScale = min(frameData!.width / carotid2DSize.width,
|
|
|
+ frameData!.height / carotid2DSize.height);
|
|
|
+ return firstScale * secondScale;
|
|
|
+ }
|
|
|
if (frameData != null) {
|
|
|
return min(displaySize.width / frameData!.width,
|
|
|
displaySize.height / frameData!.height);
|
|
@@ -145,6 +153,14 @@ class Application implements IApplication {
|
|
|
set isAdaptiveCarotid2D(bool value) {
|
|
|
if (value != _isAdaptiveCarotid2D) {
|
|
|
_isAdaptiveCarotid2D = value;
|
|
|
+ //如果颈动脉2D图像超出范围需要缩放,利用 layoutRegion 参数改变缩放比
|
|
|
+ if (value) {
|
|
|
+ final scale = min(frameData!.width / carotid2DSize.width,
|
|
|
+ frameData!.height / carotid2DSize.height);
|
|
|
+ currentVisualArea.layoutRegion = RectRegion.fill(0, 0, scale, scale);
|
|
|
+ } else {
|
|
|
+ currentVisualArea.layoutRegion = RectRegion.fill(0, 0, 1, 1);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|