Re[3]: текст в перспективной проэкции в OpenGL
От: Zuka Россия  
Дата: 06.01.04 07:40
Оценка:
case WM_MOUSEWHEEL :
        {
            short zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
            distance += zDelta / WHEEL_DELTA;
        }
        break;
    case WM_RBUTTONDOWN:
    case WM_MBUTTONDOWN:
        {
            oldXPos = GET_X_LPARAM(lParam); 
            oldYPos = GET_Y_LPARAM(lParam); 
            ShowCursor(false);
        }
        break;
    case WM_RBUTTONUP:
    case WM_MBUTTONUP:
        {
            oldXPos = GET_X_LPARAM(lParam); 
            oldYPos = GET_Y_LPARAM(lParam); 
            ShowCursor(true);
        }
        break;
    case WM_MOUSEMOVE:
        {
            if (wParam == 0)
                break;
            POINT p;
            GetCursorPos(&p);
            int xPos = p.x;//GET_X_LPARAM(lParam); 
            int yPos = p.y;//GET_Y_LPARAM(lParam); 
            if (wParam & MK_LBUTTON)
                break;
            if (wParam & MK_RBUTTON)
            {
                height_angle += (oldYPos - yPos) / 5.0f;
                azimuth_angle += (oldXPos - xPos) / 5.0f;
                
            }
            else
                if (wParam & MK_MBUTTON)
                {
                    float dx = -(oldXPos - xPos) / 10.0f;
                    float dy = +(oldYPos - yPos) / 10.0f;
                    camx += +dx * cosf(xangle*pid180) + dy * sinf(xangle*pid180);
                    camy += dx * sinf(xangle*pid180) - dy * cosf(xangle*pid180);
                }
            if ((yPos<400) || (yPos > 500))
                {                
                    yPos = 400;
                    SetCursorPos(xPos, yPos);                    
                    oldYPos = yPos;
                }
            if ((xPos < 400)|| (xPos>500))
            {
                xPos = 400;
                SetCursorPos(xPos, yPos);                    
                oldXPos = xPos;
            }
            oldXPos = xPos;
            oldYPos = yPos;
            
        }
        break;
... << RSDN@Home 1.0 beta 4 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.