first commit

This commit is contained in:
2026-02-21 17:11:31 +09:00
commit 18b4338361
4001 changed files with 365464 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
#include "rm_math.h"
#include <qmath.h>
float QAspectScaleFit(QSize sourceSize, QRect destRect)
{
QSize destSize = destRect.size();
float scaleW = (float)destSize.width() / (float)sourceSize.width();
float scaleH = (float)destSize.height() / (float)sourceSize.height();
return qMin(scaleW, scaleH);
}
QRect QRectFRound(QRectF r)
{
double xmin = floor(r.left());
double ymin = floor(r.top());
double width = ceil(r.width() + (r.left()-xmin));
double height = ceil(r.height() + (r.top()-ymin));
return QRect(xmin,ymin,width,height);
}
// Fit
QRect QRectAspectFitRect(QSize sourceSize, QRect destRect)
{
QSize destSize = destRect.size();
float destScale = QAspectScaleFit(sourceSize, destRect);
float newWidth = (float)sourceSize.width() * destScale;
float newHeight = (float)sourceSize.height() * destScale;
float dWidth = (((float)destSize.width() - newWidth) / 2.0f);
float dHeight = (((float)destSize.height() - newHeight) / 2.0f);
QRect rect = QRect(dWidth + destRect.left(), dHeight + destRect.top(), newWidth, newHeight);
return rect;
}
QRect QRectCenter(QSize sourceSize, QRect destRect)
{
int xo = (destRect.width() - sourceSize.width()) / 2;
int yo = (destRect.height() - sourceSize.height()) / 2;
return QRect(destRect.left()+xo,destRect.top()+yo,sourceSize.width(),sourceSize.height());
}
QRect QRectAspectFillRect(QSize sourceSize, QRect destRect)
{
QSize destSize = destRect.size();
float destScale = QAspectScaleFill(sourceSize, destRect);
float newWidth = (float)sourceSize.width() * destScale;
float newHeight = (float)sourceSize.height() * destScale;
float dWidth = (((float)destSize.width() - newWidth) / 2.0f);
float dHeight = (((float)destSize.height() - newHeight) / 2.0f);
// l,t,r,b
QRect rect = QRect(dWidth + destRect.left(), dHeight + destRect.top(), newWidth, newHeight);
return rect;
}
float QAspectScaleFill(QSize sourceSize, QRect destRect)
{
QSize destSize = destRect.size();
float scaleW = (float)destSize.width() / (float)sourceSize.width();
float scaleH = (float)destSize.height() / (float)sourceSize.height();
return qMax(scaleW, scaleH);
}