clampedY method
计算 Y 坐标范围限制
Implementation
double clampedY(double newY, [double? scale]) {
final bg = backgroundBitmap;
final bgHeight = bg.height * (scale ?? viewportScale);
if (schema.align == 'center') {
final y1 = bgHeight / 2;
final y2 = stageHeight - bgHeight / 2;
final minY = y2 > y1 ? y1 : y2;
final maxY = y2 > y1 ? y2 : y1;
return newY.clamp(minY, maxY);
} else if (schema.align == 'left-top') {
final y1 = 0.0;
final y2 = stageHeight - bgHeight;
final minY = y2 > y1 ? y1 : y2;
final maxY = y2 > y1 ? y2 : y1;
return newY.clamp(minY, maxY);
}
return 0.0;
}