| 4688 | } |
| 4689 | |
| 4690 | inline void CalculateParentNodeTransform(HScene scene, InternalNode* n, Matrix4& out_transform) |
| 4691 | { |
| 4692 | Matrix4 parent_trans; |
| 4693 | if (n->m_ParentIndex != INVALID_INDEX) |
| 4694 | { |
| 4695 | InternalNode* parent = &scene->m_Nodes[n->m_ParentIndex]; |
| 4696 | CalculateParentNodeTransform(scene, parent, parent_trans); |
| 4697 | } |
| 4698 | |
| 4699 | const Node& node = n->m_Node; |
| 4700 | if (node.m_DirtyLocal || (scene->m_ResChanged && scene->m_AdjustReference != ADJUST_REFERENCE_DISABLED)) |
| 4701 | { |
| 4702 | UpdateLocalTransform(scene, n); |
| 4703 | } |
| 4704 | out_transform = node.m_LocalTransform; |
| 4705 | |
| 4706 | if (n->m_ParentIndex != INVALID_INDEX) |
| 4707 | { |
| 4708 | out_transform = parent_trans * out_transform; |
| 4709 | } |
| 4710 | } |
| 4711 | |
| 4712 | void CalculateNodeTransform(HScene scene, InternalNode* n, const CalculateNodeTransformFlags flags, Matrix4& out_transform) |
| 4713 | { |
no test coverage detected