denormalizePoint static method
Offset
denormalizePoint({
- required Offset normalized,
- required Size widgetSize,
- required UCameraSize previewSize,
- BoxFit fit = BoxFit.cover,
- bool mirrored = false,
Inverse of normalizePoint: places a normalized point back on the widget.
Implementation
static Offset denormalizePoint({
required Offset normalized,
required Size widgetSize,
required UCameraSize previewSize,
BoxFit fit = BoxFit.cover,
bool mirrored = false,
}) {
if (widgetSize.width <= 0 || previewSize.width <= 0) return Offset.zero;
final double previewAspect = previewSize.aspectRatio;
final double widgetAspect = widgetSize.width / widgetSize.height;
double scale;
if (fit == BoxFit.contain) {
scale = previewAspect > widgetAspect ? widgetSize.width / previewSize.width : widgetSize.height / previewSize.height;
} else {
scale = previewAspect > widgetAspect ? widgetSize.height / previewSize.height : widgetSize.width / previewSize.width;
}
final double renderedWidth = previewSize.width * scale;
final double renderedHeight = previewSize.height * scale;
final double x = mirrored ? 1 - normalized.dx : normalized.dx;
return Offset(
(widgetSize.width - renderedWidth) / 2 + x * renderedWidth,
(widgetSize.height - renderedHeight) / 2 + normalized.dy * renderedHeight,
);
}