Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CTachyonObject::ApplyMatrix(CD3DDevice *pDevice)
- {
- LPANI pANI = GetCurANI();
- if (pANI && pANI->m_pANI)
- {
- pANI->m_pANI->m_fCurTime = m_fActTime;
- LPANIDATA pDATA = pANI->m_pANI->GetAniData();
- if (pDATA && pDATA->m_pAni)
- {
- D3DXMATRIX* vWORLD = new D3DXMATRIX[MAX_PIVOT + 1];
- FLOAT fBlendTime = FLOAT(m_dwBlendTick) / FLOAT(m_dwBlend);
- BYTE bBlend = (m_dwBlendTick < m_dwBlend ? TRUE : FALSE) && m_bBlend;
- LPD3DXMATRIX pInit = GetMeshMatrix();
- pDATA->m_pAni->GetFrameMatrix(
- m_pBone,
- bBlend ? m_pBlend : NULL,
- bBlend ? m_pBlendKEY : NULL,
- m_pPivot,
- m_vPosition, 0,
- pANI->m_pANI->m_fLocalTime,
- fBlendTime);
- int nNodes = pDATA->m_pAni->GetNodeCount();
- vWORLD[0] = m_pBone[0];
- for (int i = 0; i < nNodes; i++)
- vWORLD[1 + i] = pInit ? (pInit[i] * m_pBone[i + 1]) : m_pBone[i + 1];
- pDevice->SetTransforms(MAX_PIVOT + 1, vWORLD);
- delete[] vWORLD;
- vWORLD = NULL;
- }
- else
- {
- pDevice->SetTransforms(1, &m_vPosition);
- }
- }
- else
- {
- pDevice->SetTransforms(1, &m_vPosition);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement