비공개2011. 9. 22. 10:44


※ 자신이 만든 클래스에서 다른 자료형과 호환되게 하기에 유용!

operator
 변환타입()

{

          /* code */ 

          return 변환타입;

}

예시) 

D3DXCOLOR -> DWORD 변환
 

D3DXCOLOR foo( 255.f, 123.f, 456.f, 255.f );

DWORD color = foo;


 
<d3dx9math.h>

typedef struct D3DXCOLOR


     ...
     
// casting
    

operator DWORD () const; 
     ... 

}

<dxdx9math.inl>

D3DXINLINE

D3DXCOLOR::operator DWORD () const

{

    DWORD dwR = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD) (r * 255.0f + 0.5f);

    DWORD dwG = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD) (g * 255.0f + 0.5f);

    DWORD dwB = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD) (b * 255.0f + 0.5f);

    DWORD dwA = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD) (a * 255.0f + 0.5f);


    return (dwA << 24) | (dwR << 16) | (dwG << 8) | dwB;

}

 

'비공개' 카테고리의 다른 글

log 파일 실시간 검사 Utility  (0) 2011.11.30
Tool 배포시 유의점  (0) 2011.10.13
Direct3D Device Lost  (0) 2011.09.09
memset 무심결에 잘 모르고 썻던 부분  (0) 2011.08.16
UNICODE와 MBCS 호환성 및 사용법  (0) 2011.08.11
Posted by 닭꽝