| 397 | } |
| 398 | |
| 399 | bool ColladaAppMesh::animatesFrame(const AppSequence* appSeq) |
| 400 | { |
| 401 | // Collada <morph>s ALWAYS contain vert positions, so just need to check if |
| 402 | // the morph weights are animated within the sequence interval |
| 403 | bool animated = false; |
| 404 | if (const domMorph* morph = getMorph()) { |
| 405 | for (S32 iInput = 0; iInput < morph->getTargets()->getInput_array().getCount(); iInput++) { |
| 406 | const domInputLocal* input = morph->getTargets()->getInput_array()[iInput]; |
| 407 | if (dStrEqual(input->getSemantic(), "MORPH_WEIGHT")) { |
| 408 | const domSource* source = daeSafeCast<domSource>(findInputSource(input)); |
| 409 | AnimatedFloatList weights(source ? source->getFloat_array() : 0); |
| 410 | animated = weights.isAnimated(appSeq->getStart(), appSeq->getEnd()); |
| 411 | break; |
| 412 | } |
| 413 | } |
| 414 | } |
| 415 | return animated; |
| 416 | } |
| 417 | |
| 418 | F32 ColladaAppMesh::getVisValue(F32 t) |
| 419 | { |
nothing calls this directly
no test coverage detected