本文整理汇总了C++中NetworkNode::addChild方法的典型用法代码示例。如果您正苦于以下问题:C++ NetworkNode::addChild方法的具体用法?C++ NetworkNode::addChild怎么用?C++ NetworkNode::addChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetworkNode
的用法示例。
在下文中一共展示了NetworkNode::addChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildExecutionNetwork
void Network::buildExecutionNetwork() {
E_DEBUG(ENetwork, "building execution network");
clearExecutionNetwork();
// 1- First build the visible network
E_DEBUG(ENetwork, " 1- build visible network");
E_DEBUG_INDENT;
FractalNode* executionNetworkRoot = visibleNetwork<FractalNode>(_generator);
FNodeVector visibleNodes = depthFirstSearch(executionNetworkRoot);
// 2- Expand all the nodes of this first graph
E_DEBUG_OUTDENT;
E_DEBUG(ENetwork, " 2- expand nodes");
E_DEBUG_INDENT;
expandNodes(visibleNodes);
// 3- connect the expanded versions of the nodes together
E_DEBUG_OUTDENT;
E_DEBUG(ENetwork, " 3- connect expanded network");
E_DEBUG_INDENT;
connectExpandedNodes(visibleNodes);
// 4- construct our "clean" execution network and clean up the FractalNodes
E_DEBUG_OUTDENT;
E_DEBUG(ENetwork, " 4- construct final network");
E_DEBUG_INDENT;
FNodeVector expandedNodes = depthFirstSearch(executionNetworkRoot->expanded);
E_DEBUG(ENetwork, "num connected expanded nodes: " << expandedNodes.size());
map<FractalNode*, NetworkNode*> falgoMap; // expanded → final network node
for (int i=0; i<(int)expandedNodes.size(); i++) {
falgoMap[expandedNodes[i]] = new NetworkNode(expandedNodes[i]->algorithm());
}
for (int i=0; i<(int)expandedNodes.size(); i++) {
NetworkNode* parent = falgoMap[expandedNodes[i]];
vector<FractalNode*> children = expandedNodes[i]->children();
for (int j=0; j<(int)children.size(); j++) {
E_DEBUG(ENetwork, " - " << parent->algorithm()->name() << " → " << falgoMap[children[j]]->algorithm()->name());
parent->addChild(falgoMap[children[j]]);
}
}
_executionNetworkRoot = falgoMap[executionNetworkRoot->expanded];
// delete the FractalNodes which we just used temporarily for building the network
E_DEBUG(ENetwork, "cleaning up temp visible fractal nodes");
for (int i=0; i<(int)visibleNodes.size(); i++) delete visibleNodes[i];
E_DEBUG(ENetwork, "cleaning up temp expanded fractal nodes");
for (int i=0; i<(int)expandedNodes.size(); i++) delete expandedNodes[i];
E_DEBUG_OUTDENT;
E_DEBUG(ENetwork, "execution network ok");
}