| netlib.narod.ru | < Назад | Оглавление | Далее > |

Рис. 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;
| netlib.narod.ru | < Назад | Оглавление | Далее > |