clampedY method

double clampedY(
  1. double newY, [
  2. double? scale
])

计算 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;
}