Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
C.1 Conjunto <strong>de</strong> funções <strong>de</strong> interação 191<br />
<strong>de</strong>fine a semântica do atributo do ponto <strong>de</strong> vista da arquitetura <strong>de</strong> interação, po<strong>de</strong>ndo ser<br />
INTSEMANTIC_TEXCOORD para indicar as coor<strong>de</strong>nadas <strong>de</strong> textura utilizadas no cálculo das<br />
bases tangentes, INTSEMANTIC_VERTEXID para indicar o atributo que contém o i<strong>de</strong>ntifi-<br />
cador <strong>de</strong> cada vértice (atributo necessário para estimar os elementos <strong>de</strong> geometria diferencial e<br />
atualizar a geometria do mo<strong>de</strong>lo), INTSEMANTIC_USERDEFI para indicar um valor <strong>de</strong>finido<br />
pela aplicação para geometria in<strong>de</strong>xada, e INTSEMANTIC_USERDEFNI para indicar um valor<br />
<strong>de</strong>finido pela aplicação para geometria não in<strong>de</strong>xada. O arranjo é finalizado com uma estrutura<br />
SEMANTICBINDING especial chamada <strong>de</strong> SEMANTIC_END.<br />
Funções <strong>de</strong> configuração dos mo<strong>de</strong>los<br />
• Sintaxe: CIntObj::SetVertexBuffer( float *pVtPos, float<br />
pVtTexCoord, float *pVtNormal, int iSize ).<br />
Descrição: informa os atributos dos vértices da geometria original, em particular a posição <strong>3D</strong>,<br />
as coor<strong>de</strong>nadas <strong>de</strong> textura e o vetor normal.<br />
Parâmetros:<br />
– pVtPos: ponteiro a um arranjo <strong>de</strong> coor<strong>de</strong>nadas <strong>3D</strong> contendo a posição <strong>de</strong> cada vértice,<br />
em coor<strong>de</strong>nadas relativas ao sistema <strong>de</strong> coor<strong>de</strong>nadas local. Cada seqüência <strong>de</strong> três valores<br />
correspon<strong>de</strong> às coor<strong>de</strong>nadas <strong>de</strong> um vértice.<br />
– pVtTexCoord: ponteiro a um arranjo <strong>de</strong> coor<strong>de</strong>nadas <strong>de</strong> textura. Cada seqüência <strong>de</strong><br />
dois valores correspon<strong>de</strong> a um par <strong>de</strong> coor<strong>de</strong>nadas UV <strong>de</strong> um vértice. Este parâmetro é<br />
opcional (i.e., po<strong>de</strong> ser NULL), exceto quando a estimativa <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria<br />
diferencial envolva o cálculo <strong>de</strong> bases tangentes.<br />
– pVtNormal: ponteiro a um arranjo <strong>de</strong> vetores normais. Cada seqüência <strong>de</strong> três valores<br />
correspon<strong>de</strong> a às coor<strong>de</strong>nadas do vetor normal <strong>de</strong> um vértice. Este parâmetro é opcional.<br />
– iSize: número <strong>de</strong> vértices da geometria.<br />
• Sintaxe: CIntObj::SetIn<strong>de</strong>xBuffer( int *pFaceIdx, int iSize ).<br />
Descrição: informa o buffer <strong>de</strong> índices aos vértices do buffer <strong>de</strong> vértices. Os índices serão<br />
utilizados para calcular a vizinhança <strong>de</strong> 1-anel <strong>de</strong> cada vértice.<br />
Parâmetros:<br />
– pFaceIdx: ponteiro ao buffer <strong>de</strong> índices. Cada elemento do buffer <strong>de</strong> índices é um<br />
índice numérico a um vértice contido no buffer <strong>de</strong> vértices informado com CIntObj::