clampedX method

double clampedX(
  1. double newX, [
  2. double? scale
])

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