Окно примера к данной главе
Рисунок 15.5. Окно примера к данной главе
На Рисунок 15.5 показано окно приложения, созданного для данной главы. Чайник перемещается по экрану, а вы должны попытаться щелкнуть по нему мышкой. Если вы попали в ограничивающую сферу чайника, на экран будет выведено сообщающее об этом диалоговое окно. Мы обрабатываем событие щелчка кнопки мыши проверяя сообщение WM_LBUTTONDOWN:
case WM_LBUTTONDOWN: // Вычисляем луч в пространстве вида на основании // координат указателя мыши в момент щелчка d3d::Ray ray = CalcPickingRay(LOWORD(lParam), HIWORD(lParam));
// Преобразуем луч в мировое пространство D3DXMATRIX view; Device->GetTransform(D3DTS_VIEW, &view);
D3DXMATRIX viewInverse; D3DXMatrixInverse(&viewInverse, 0, &view);
TransformRay(&ray, &viewInverse);
// Проверяем попадание if(RaySphereIntTest(&ray, &BSphere)) ::MessageBox(0, "Hit!", "HIT", 0);
break;