Função D3DXIntersectSubset
Intersecciona o raio especificado com o subconjunto de malha fornecido. Isso fornece funcionalidade semelhante à D3DXIntersect.
Sintaxe
HRESULT D3DXIntersectSubset(
_In_ LPD3DXBASEMESH pMesh,
_In_ DWORD AttribId,
_In_ const D3DXVECTOR3 *pRayPos,
_In_ const D3DXVECTOR3 *pRayDir,
_Out_ BOOL *pHit,
_Out_ DWORD *pFaceIndex,
_Out_ FLOAT *pU,
_Out_ FLOAT *pV,
_Out_ FLOAT *pDist,
_Out_ LPD3DXBUFFER *ppAllHits,
_Out_ DWORD *pCountOfHits
);
Parâmetros
-
pMesh [in]
-
Tipo: LPD3DXBASEMESH
Ponteiro para uma interface ID3DXBaseMesh , representando a malha a ser testada. A malha deve ser classificada por atributo.
-
AttribId [in]
-
Tipo: DWORD
Identificador de atributo do subconjunto com o qual interseccionar.
-
pRayPos [in]
-
Tipo: const D3DXVECTOR3*
Ponteiro para uma estrutura D3DXVECTOR3 , especificando o ponto em que o raio começa.
-
pRayDir [in]
-
Tipo: const D3DXVECTOR3*
Ponteiro para uma estrutura D3DXVECTOR3 , especificando a direção do raio.
-
pHit [out]
-
Tipo: BOOL*
Ponteiro para um BOOL. Se o raio interseccionar uma face triangular na malha, esse valor será definido como TRUE. Caso contrário, esse valor será definido como FALSE.
-
pFaceIndex [out]
-
Tipo: DWORD*
Ponteiro para um valor de índice da face mais próxima da origem do raio, se pHit for TRUE.
-
pU [out]
-
Tipo: FLOAT*
Ponteiro para uma coordenada de clique barycentric, U.
-
pV [out]
-
Tipo: FLOAT*
Ponteiro para uma coordenada de clique barycentric, V.
-
pDist [out]
-
Tipo: FLOAT*
Ponteiro para uma distância de parâmetro de interseção de raios.
-
ppAllHits [out]
-
Tipo: LPD3DXBUFFER*
Matriz de estruturas D3DXINTERSECTINFO , representando todas as ocorrências, não apenas as ocorrências mais próximas.
-
pCountOfHits [out]
-
Tipo: DWORD*
Número de elementos na matriz retornados de ppAllHits.
Valor retornado
Tipo: HRESULT
Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser o seguinte valor: E_OUTOFMEMORY.
Comentários
A função D3DXIntersectSubset fornece uma maneira de entender pontos dentro e ao redor de um triângulo, independentemente de onde o triângulo está realmente localizado. Essa função retorna o ponto resultante usando a seguinte equação: V1 + U(V2 - V1) + V(V3 - V1).
Qualquer ponto no plano V1V2V3 pode ser representado pela coordenada barycentrica (U,V). O parâmetro U controla a quantidade de V2 ponderada no resultado e o parâmetro V controla a quantidade de V3 ponderada no resultado. Por fim, o valor de [1 - (U + V)] controla a quantidade de V1 ponderada no resultado.
As coordenadas barycentricas são uma forma de coordenadas gerais. Nesse contexto, o uso de coordenadas barycentricas representa uma alteração nos sistemas de coordenadas. O que vale para coordenadas cartesianas é verdadeiro para coordenadas barycentricas.
As coordenadas barycentricas definem um ponto dentro de um triângulo em termos dos vértices do triângulo. Para obter uma descrição mais detalhada das coordenadas barycentricas, confira Descrição das Coordenadas Barycentricas do Mathworld.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também