void CTrack::MapOriginalRect(DISTORT* pDistort, CRect* pSrcRect, CRect* pDstRect) { CPoint p0(pSrcRect->left, pSrcRect->top); MapOriginalPoint(pDistort, &p0, &p0); CPoint p1(pSrcRect->right, pSrcRect->top); MapOriginalPoint(pDistort, &p1, &p1); CPoint p2(pSrcRect->right, pSrcRect->bottom); MapOriginalPoint(pDistort, &p2, &p2); CPoint p3(pSrcRect->left, pSrcRect->bottom); MapOriginalPoint(pDistort, &p3, &p3); pDstRect->left = min(min(min(p0.x, p1.x), p2.x), p3.x); pDstRect->right = max(max(max(p0.x, p1.x), p2.x), p3.x); pDstRect->top = min(min(min(p0.y, p1.y), p2.y), p3.y); pDstRect->bottom = max(max(max(p0.y, p1.y), p2.y), p3.y); }
void CTrack::MapOriginalRect(DISTORT* pDistort, RECT* pSrcRect, RECT* pDstRect) { POINT p0 = {pSrcRect->left, pSrcRect->top}; MapOriginalPoint(pDistort, &p0, &p0); POINT p1 = {pSrcRect->right, pSrcRect->top}; MapOriginalPoint(pDistort, &p1, &p1); POINT p2 = {pSrcRect->right, pSrcRect->bottom}; MapOriginalPoint(pDistort, &p2, &p2); POINT p3 = {pSrcRect->left, pSrcRect->bottom}; MapOriginalPoint(pDistort, &p3, &p3); pDstRect->left = min(min(min(p0.x, p1.x), p2.x), p3.x); pDstRect->right = max(max(max(p0.x, p1.x), p2.x), p3.x); pDstRect->top = min(min(min(p0.y, p1.y), p2.y), p3.y); pDstRect->bottom = max(max(max(p0.y, p1.y), p2.y), p3.y); }