Поделиться через


Метод IDirect3DDevice9::MultiplyTransform (d3d9.h)

Умножает мир, представление или матрицы проекции устройства на указанную матрицу.

Синтаксис

HRESULT MultiplyTransform(
  [in] D3DTRANSFORMSTATETYPE unnamedParam1,
  [in] const D3DMATRIX       *unnamedParam2
);

Параметры

[in] unnamedParam1

Тип: D3DTRANSFORMSTATETYPE

Член перечисленного типа 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 d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

D3DTS_WORLD

D3DTS_WORLDMATRIX

D3DTS_WORLDn

IDirect3DDevice9

IDirect3DDevice9::DrawPrimitive

IDirect3DDevice9::SetTransform