void ofxFaceTracker2Instance::loadPoseMatrix(){ if(!poseCalculated){ calculatePoseMatrix(); } ofMatrix4x4 matrix = getPoseMatrix(); loadPoseProjectionMatrix(); ofLoadMatrix(matrix); }
FbxAMatrix LoaderFbxMesh::getGlobalPosition(FbxNode* node, FbxTime time, FbxPose* pose, FbxAMatrix* parentGlobalPosition) { FbxAMatrix globalPosition; bool positionFound = false; if(pose) { int nodeIndex = pose->Find(node); if(nodeIndex > -1) { if(pose->IsBindPose() || !pose->IsLocalMatrix(nodeIndex)) globalPosition = getPoseMatrix(pose, nodeIndex); else { FbxAMatrix localParentGlobalPosition; if(parentGlobalPosition) localParentGlobalPosition = *parentGlobalPosition; else { if(node->GetParent()) localParentGlobalPosition = getGlobalPosition(node->GetParent(), time, pose, nullptr); } FbxAMatrix localPosition = getPoseMatrix(pose, nodeIndex); globalPosition = localParentGlobalPosition * localPosition; } positionFound = true; } } if(!positionFound) globalPosition = node->EvaluateGlobalTransform(time); return globalPosition; }