clampedX method
计算 X 坐标范围限制
Implementation
double clampedX(double newX, [double? scale]) {
final bg = backgroundBitmap;
final bgWidth = bg.width * (scale ?? viewportScale);
if (schema.align == 'center') {
final x1 = bgWidth / 2;
final x2 = stageWidth - bgWidth / 2;
final minX = x2 > x1 ? x1 : x2;
final maxX = x2 > x1 ? x2 : x1;
return newX.clamp(minX, maxX);
} else if (schema.align == 'left-top') {
final x1 = 0.0;
final x2 = stageWidth - bgWidth;
final minX = x2 > x1 ? x1 : x2;
final maxX = x2 > x1 ? x2 : x1;
return newX.clamp(minX, maxX);
}
return 0.0;
}