Any Suggestion please.
// Mause Capture
BOOL m_bCapture;
D3DXMATRIXA16 m_matTrackBall;
m_bCapture = FALSE;
HRESULT My3DApplication::OneTimeSceneInit()
{
D3DXMatrixIdentity( &m_matTrackBall );
return S_OK;
}
HRESULT My3DApplication::FrameMove()
{
// When the window has focus, let the mouse adjust the camera view
if( m_bCapture )
{
D3DXMATRIXA16 matCursor;
D3DXQUATERNION qCursor=D3DUtil_GetRotationFromCursor( m_hWnd );
D3DXMatrixRotationQuaternion( &matCursor, &qCursor );
D3DXMatrixMultiply( &m_matView, &m_matTrackBall, &matCursor );
D3DXMATRIXA16 matTrans;
D3DXMatrixTranslation( &matTrans, 0.0f, 0.0f, 3.0f );
D3DXMatrixMultiply( &m_matView, &m_matView, &matTrans );
}
}
LRESULT My3DApplication::MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam,
LPARAM lParam )
{
// Capture mouse when clicked
if( WM_LBUTTONDOWN == uMsg )
{
D3DXMATRIXA16 matCursor;
D3DXQUATERNION qCursor=D3DUtil_GetRotationFromCursor( m_hWnd );
D3DXMatrixRotationQuaternion( &matCursor, &qCursor );
D3DXMatrixTranspose( &matCursor, &matCursor );
D3DXMatrixMultiply( &m_matTrackBall, &m_matTrackBall, &matCursor );
SetCapture( m_hWnd );
m_bCapture = TRUE;
return 0;
}
if( WM_LBUTTONUP == uMsg )
{
D3DXMATRIXA16 matCursor;
D3DXQUATERNION qCursor=D3DUtil_GetRotationFromCursor( m_hWnd );
D3DXMatrixRotationQuaternion( &matCursor, &qCursor );
D3DXMatrixMultiply( &m_matTrackBall, &m_matTrackBall, &matCursor );
ReleaseCapture();
m_bCapture = FALSE;
return 0;
}
}












