Метод IDirect3DDevice9::MultiplyTransform (d3d9helper.h)
Умножает матрицы мира, представления или проекции устройства на указанную матрицу.
Синтаксис
HRESULT MultiplyTransform(
[in] D3DTRANSFORMSTATETYPE unnamedParam1,
[in] const D3DMATRIX *unnamedParam2
);
Параметры
[in] unnamedParam1
Член D3DTRANSFORMSTATETYPE перечислимого типа или макрос D3DTS_WORLDMATRIX , определяющий, какую матрицу устройства следует изменить. Наиболее распространенный параметр , D3DTS_WORLDMATRIX(0), изменяет матрицу мира, но при необходимости можно указать, что метод изменяет матрицы представления или проекции.
[in] unnamedParam2
Тип: const D3DMATRIX*
Указатель на структуру D3DMATRIX , которая изменяет текущее преобразование.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK. D3DERR_INVALIDCALL, если один из аргументов является недопустимым.
Комментарии
Порядок умножения — pMatrix times State.
Приложение может использовать метод IDirect3DDevice9::MultiplyTransform для работы с иерархиями преобразований. Например, геометрия и преобразования, описывающие руку, могут быть расположены в следующей иерархии.
shoulder_transformation
upper_arm geometry
elbow transformation
lower_arm geometry
wrist transformation
hand geometry
Приложение может использовать следующую серию вызовов для отрисовки этой иерархии. Не все параметры отображаются в этом псевдокоде.
IDirect3DDevice9::SetTransform(D3DTS_WORLDMATRIX(0),
shoulder_transform)
IDirect3DDevice9::DrawPrimitive(upper_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0),
elbow_transform)
IDirect3DDevice9::DrawPrimitive(lower_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0),
wrist_transform)
IDirect3DDevice9::DrawPrimitive(hand)
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d9helper.h (включая D3D9.h) |
Библиотека | D3D9.lib |