Beispiel #1
0
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);
}
Beispiel #2
0
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);
}