void Face::ExtractMeshes(D3DXFRAME *frame) { if (frame == NULL) return; //Extract Mesh if (frame->pMeshContainer != NULL) { ID3DXMesh *mesh = frame->pMeshContainer->MeshData.pMesh; if (frame->Name != NULL) { if (strcmp(frame->Name, "Base") == 0) { //Base Mesh m_pBaseMesh = mesh; mesh->AddRef(); } else if (strcmp(frame->Name, "Blink") == 0) { //Blink Mesh m_pBlinkMesh = mesh; mesh->AddRef(); } else if (strcmp(frame->Name, "Emotion") == 0) { //Emotion Mesh m_emotionMeshes.push_back(mesh); mesh->AddRef(); } else if (strcmp(frame->Name, "Speech") == 0) { //Speech Mesh m_speechMeshes.push_back(mesh); mesh->AddRef(); } } } //Check siblings and children ExtractMeshes(frame->pFrameSibling); ExtractMeshes(frame->pFrameFirstChild); }