| 586 | } |
| 587 | |
| 588 | Vector3 Renderer::GetMoveableBonePosition(int itemNumber, int boneID, const Vector3& relOffset) |
| 589 | { |
| 590 | auto* rendererItem = &_items[itemNumber]; |
| 591 | rendererItem->ItemNumber = itemNumber; |
| 592 | |
| 593 | if (rendererItem == nullptr) |
| 594 | return Vector3::Zero; |
| 595 | |
| 596 | if (!rendererItem->DoneAnimations) |
| 597 | (itemNumber == LaraItem->Index) ? UpdateLaraAnimations(false) : UpdateItemAnimations(itemNumber, false); |
| 598 | |
| 599 | if (boneID >= MAX_BONES) |
| 600 | boneID = 0; |
| 601 | |
| 602 | auto world = rendererItem->AnimTransforms[boneID] * rendererItem->World; |
| 603 | |
| 604 | return Vector3::Transform(relOffset, world); |
| 605 | } |
| 606 | |
| 607 | Quaternion Renderer::GetMoveableBoneOrientation(int itemNumber, int boneID) |
| 608 | { |