MCPcopy Create free account
hub / github.com/NVIDIA-RTX/RTXPT / UpdateTogglableNodes

Function UpdateTogglableNodes

Rtxpt/SampleUI.cpp:2299–2326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2297}
2298
2299void UpdateTogglableNodes(std::vector<TogglableNode>& togglableNodes, donut::engine::SceneGraphNode* node)
2300{
2301 auto addIfTogglable = [ & ](const std::string & token, SceneGraphNode* node) -> TogglableNode *
2302 {
2303 const size_t tokenLen = token.length();
2304 const std::string name = node->GetName(); const size_t nameLen = name.length();
2305 if (nameLen > tokenLen && name.substr(nameLen - tokenLen) == token)
2306 {
2307 TogglableNode tn;
2308 tn.SceneNode = node;
2309 tn.UIName = name.substr(0, nameLen - tokenLen);
2310 tn.OriginalTranslation = node->GetTranslation();
2311 togglableNodes.push_back(tn);
2312 return &togglableNodes.back();
2313 }
2314 return nullptr;
2315 };
2316 TogglableNode * justAdded = addIfTogglable("_togglable", node);
2317 if (justAdded==nullptr)
2318 {
2319 justAdded = addIfTogglable("_togglable_off", node);
2320 if( justAdded != nullptr )
2321 justAdded->SetSelected(false);
2322 }
2323
2324 for (int i = (int)node->GetNumChildren() - 1; i >= 0; i--)
2325 UpdateTogglableNodes( togglableNodes, node->GetChild(i) );
2326}

Callers 1

SceneLoadedMethod · 0.85

Calls 1

SetSelectedMethod · 0.45

Tested by

no test coverage detected