| 534 | |
| 535 | template <typename TCallback> |
| 536 | void forEachNode( |
| 537 | const glm::dmat4x4& transform, |
| 538 | const Model& model, |
| 539 | const Node& node, |
| 540 | TCallback& callback) { |
| 541 | |
| 542 | glm::dmat4x4 nodeTransform = |
| 543 | transform * getNodeTransform(node).value_or(glm::dmat4x4(1.0)); |
| 544 | |
| 545 | callback(model, node, nodeTransform); |
| 546 | |
| 547 | for (const int32_t childNodeId : node.children) { |
| 548 | if (childNodeId >= 0 && size_t(childNodeId) < model.nodes.size()) { |
| 549 | forEachNode( |
| 550 | nodeTransform, |
| 551 | model, |
| 552 | model.nodes[size_t(childNodeId)], |
| 553 | callback); |
| 554 | } |
| 555 | } |
| 556 | } |
| 557 | |
| 558 | template <typename TCallback> |
| 559 | void forEachNodeInSceneObject( |
no test coverage detected