From 9aa3a8ff940e89bb0b5c75bc8abd0864e4c85874 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 화, 17 8월 2021 10:00:15 +0900 Subject: [PATCH] 이전 머지간 누락된 코드 삽입 --- ReviewHistory/include/akSTL/inl/akRectT.inl | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 368 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/include/akSTL/inl/akRectT.inl b/ReviewHistory/include/akSTL/inl/akRectT.inl new file mode 100644 index 0000000..a0f0a7f --- /dev/null +++ b/ReviewHistory/include/akSTL/inl/akRectT.inl @@ -0,0 +1,368 @@ + +#define AKINLINE inline + +template<typename T> AKINLINE +CakRectT<T>::CakRectT( void ) +{ + +} + +// template<typename T> AKINLINE +// CakRectT<T>::CakRectT( T l, T t, T r, T b ) +// { +// left = l; +// top = t; +// right = r; +// bottom = b; +// } + +// template<typename T> AKINLINE +// CakRectT<T>::CakRectT( CakRectT<T> rect ) +// { +// left = rect.left; +// top = rect.top; +// right = rect.right; +// bottom = rect.bottom; +// } + +template<typename T> AKINLINE +CakRectT<T>::~CakRectT( void ) +{ + +} + +template<typename T> AKINLINE +T CakRectT<T>::Width() const throw() +{ + return right - left; +} + +template<typename T> AKINLINE +T CakRectT<T>::Height() const throw() +{ + return bottom - top; +} + + + + + +template<typename T> AKINLINE +bool CakRectT<T>::PtInRect( T x, T y ) const throw() +{ + if( x <= left || x >= right || + y <= top || y >= bottom ) + { + return false; + } + + return true; +} + +template<typename T> AKINLINE +bool CakRectT<T>::IsRectEmpty() const throw() +{ + if(left-right == 0) return true; + if(top-bottom == 0) return true; + + return false; +} + +template<typename T> AKINLINE +bool CakRectT<T>::IsRectNull() const throw() +{ + return (left == 0 && right == 0 && top == 0 && bottom == 0); +} + + +template<typename T> AKINLINE +void CakRectT<T>::SwapLeftRight() throw() +{ + T temp = left; + left = right; + right = temp; +} + +template<typename T> AKINLINE +void CakRectT<T>::SwapTopBottom() throw() +{ + T temp = top; + top = bottom; + bottom = temp; +} + +template<typename T> AKINLINE +bool CakRectT<T>::EqualRect(const CakRectT<T>* lpRect ) const throw() +{ + if((left == lpRect->left && + top == lpRect->top && + right == lpRect->right && + bottom == lpRect->bottom) == true) + return true; + + return false; +} + +template<typename T> AKINLINE +void CakRectT<T>::SetRect( T x1, T y1, T x2, T y2 ) throw() +{ + left = x1; + top = y1; + right = x2; + bottom = y2; +} + + +template<typename T> AKINLINE +void CakRectT<T>::SetRectEmpty() throw() +{ + left = 0; + top = 0; + right = 0; + bottom = 0; +} + + + + +template<typename T> AKINLINE +void CakRectT<T>::CopyRect(const CakRectT<T>* lpSrcRect ) throw() +{ + left = lpSrcRect->left ; + top = lpSrcRect->top ; + right = lpSrcRect->right ; + bottom = lpSrcRect->bottom ; +} + + +template<typename T> AKINLINE +void CakRectT<T>::InflateRect( T x, T y ) throw() +{ + left -= x; + top -= y; + right += x; + bottom += y; +} + +template<typename T> AKINLINE +void CakRectT<T>::InflateRect( T l, T t, T r, T b ) throw() +{ + left -= l; + top -= t; + right += r; + bottom += b; +} + + + +template<typename T> AKINLINE +void CakRectT<T>::DeflateRect( T x, T y ) throw() +{ + left += x; + top += y; + right -= x; + bottom -= y; +} + +template<typename T> AKINLINE +void CakRectT<T>::DeflateRect( T l, T t, T r, T b ) throw() +{ + left += l; + top += t; + right -= r; + bottom -= b; +} + + +template<typename T> AKINLINE +void CakRectT<T>::OffsetRect( T x, T y ) throw() +{ + left += x; + top += y; + right += x; + bottom += y; +} + + + +template<typename T> AKINLINE +void CakRectT<T>::NormalizeRect() throw() +{ + T nTemp; + if (left > right) + { + nTemp = left; + left = right; + right = nTemp; + } + if (top > bottom) + { + nTemp = top; + top = bottom; + bottom = nTemp; + } +} + +template<typename T> AKINLINE +void CakRectT<T>::MoveToY( T y ) throw() +{ + bottom = Height() + y; top = y; +} + +template<typename T> AKINLINE +void CakRectT<T>::MoveToX( T x ) throw() +{ + right = Width() + x; left = x; +} + +template<typename T> AKINLINE +void CakRectT<T>::MoveToXY( T x, T y ) throw() +{ + MoveToX(x); MoveToY(y); +} + +template<typename T> AKINLINE +void CakRectT<T>::DeflateRect( CakRectT<T>* lpRect ) throw() +{ + left += lpRect->left; top += lpRect->top; + right -= lpRect->right; bottom -= lpRect->bottom; +} + +template<typename T> AKINLINE +void CakRectT<T>::InflateRect( CakRectT<T>* lpRect ) throw() +{ + left -= lpRect->left; top -= lpRect->top; + right += lpRect->right; bottom += lpRect->bottom; +} + +template<typename T> AKINLINE +void CakRectT<T>::operator=( const CakRectT<T>& srcRect ) throw() +{ + CopyRect(&srcRect); +} +template<typename T> AKINLINE +bool CakRectT<T>::operator==( const CakRectT<T>& rect ) const throw() +{ + return EqualRect(&rect); +} + +template<typename T> AKINLINE +bool CakRectT<T>::operator!=( const CakRectT<T>& rect ) const throw() +{ + return !EqualRect(&rect); +} + +template<typename T> AKINLINE +void CakRectT<T>::operator+=( CakRectT<T>* lpRect ) throw() +{ + InflateRect(lpRect); +} + + +template<typename T> AKINLINE +void CakRectT<T>::operator-=( CakRectT<T>* lpRect ) throw() +{ + DeflateRect(lpRect); +} +template<typename T> AKINLINE +CakRectT<T> CakRectT<T>::operator+( CakRectT<T>* lpRect ) const throw() +{ + CakRectT<T> rect(left,top,right,bottom); + rect.InflateRect(lpRect); return rect; +} + +template<typename T> AKINLINE +CakRectT<T> CakRectT<T>::operator-( CakRectT<T>* lpRect ) const throw() +{ + CakRectT<T> rect(left,top,right,bottom); + rect.DeflateRect(lpRect); + return rect; +} + + + + +template<typename T> AKINLINE +CakRectT<T> CakRectT<T>::MulDiv( T nMultiplier, T nDivisor ) const throw() +{ + //나중에 다시 보자!! + return CakRectT<T>( + T((float)left*(float)nMultiplier/(float)nDivisor), + T((float)top*(float)nMultiplier/(float)nDivisor), + T((float)right*(float)nMultiplier/(float)nDivisor), + T((float)bottom*(float)nMultiplier/(float)nDivisor) + ); + //::MulDiv(left, nMultiplier, nDivisor), + //::MulDiv(top, nMultiplier, nDivisor), + //::MulDiv(right, nMultiplier, nDivisor), + //::MulDiv(bottom, nMultiplier, nDivisor)); +} + +// template<typename T> AKINLINE +// CakRectT<T>& CakRectT<T>::operator=(const CakRectT<T>& rect) +// { +// left = rect.left ; +// top = rect.top ; +// right = rect.right ; +// bottom = rect.bottom ; +// +// return *this; +// } + + +template<typename T> +bool CakRectT<T>::getCheckHeightIn( double p1 ) +{ + if(top < bottom) + { + if( (top <= p1 && bottom >= p1 ) ) + { + return true; + } + } + else + { + if( (bottom <= p1 && top >= p1 ) ) + { + return true; + } + } + + return false; +} + +template<typename T> +bool CakRectT<T>::getCheckWidthIn( double p1 ) +{ + if(left < right) + { + if( (left <= p1 && right >= p1 ) ) + { + return true; + } + } + else + { + if( (right <= p1 && left >= p1 ) ) + { + return true; + } + } + return false; +} + +template<typename T> +bool CakRectT<T>::getCheckAreaIn( double x, double y ) +{ + CakRectT<T> rectTemp = *this; + rectTemp.NormalizeRect(); + + + if( (rectTemp.left <= x && rectTemp.right >= x ) + && (rectTemp.top <= y && rectTemp.bottom >= y )) + { + return true; + } + + return false; +} -- Gitblit v1.9.3