Método IDirect3DDevice9::MultiplyTransform (d3d9helper.h)
Multiplica o mundo, a exibição ou as matrizes de projeção de um dispositivo por uma matriz especificada.
Sintaxe
HRESULT MultiplyTransform(
[in] D3DTRANSFORMSTATETYPE unnamedParam1,
[in] const D3DMATRIX *unnamedParam2
);
Parâmetros
[in] unnamedParam1
Tipo: D3DTRANSFORMSTATETYPE
Membro do D3DTRANSFORMSTATETYPE tipo enumerado ou a macro D3DTS_WORLDMATRIX que identifica qual matriz de dispositivos deve ser modificada. A configuração mais comum, D3DTS_WORLDMATRIX(0), modifica a matriz mundial, mas você pode especificar que o método modifique as matrizes de exibição ou projeção, se necessário.
[in] unnamedParam2
Tipo: const D3DMATRIX*
Ponteiro para uma estrutura D3DMATRIX que modifica a transformação atual.
Retornar valor
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. D3DERR_INVALIDCALL se um dos argumentos for inválido.
Comentários
A ordem de multiplicação é pMatrix times State.
Um aplicativo pode usar o método IDirect3DDevice9::MultiplyTransform para trabalhar com hierarquias de transformações. Por exemplo, a geometria e as transformações que descrevem um braço podem ser organizadas na hierarquia a seguir.
shoulder_transformation
upper_arm geometry
elbow transformation
lower_arm geometry
wrist transformation
hand geometry
Um aplicativo pode usar a série de chamadas a seguir para renderizar essa hierarquia. Nem todos os parâmetros são mostrados neste pseudocódigo.
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)
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d3d9helper.h (inclua D3D9.h) |
Biblioteca | D3D9.lib |