MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / recursiveLoadStep

Method recursiveLoadStep

bt_editor/graphic_container.cpp:599–644  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

597}
598
599void GraphicContainer::recursiveLoadStep(QPointF& cursor,
600 AbsBehaviorTree& tree,
601 AbstractTreeNode* abs_node,
602 Node* parent_node, int nest_level)
603{
604 Node& new_node = _scene->createNodeAtPos( abs_node->model.registration_ID,
605 abs_node->instance_name,
606 cursor);
607 BehaviorTreeDataModel* bt_node = dynamic_cast<BehaviorTreeDataModel*>( new_node.nodeDataModel() );
608
609 for (auto& port_it: abs_node->ports_mapping)
610 {
611 bt_node->setPortMapping( port_it.first, port_it.second );
612 }
613 bt_node->initWidget();
614
615 new_node.nodeGeometry().recalculateSize();
616
617 abs_node->pos = cursor;
618 abs_node->size = _scene->getNodeSize( new_node );
619 abs_node->graphic_node = &new_node;
620
621 // Special case for node Subtree. Expand if necessary
622 if( abs_node->model.type == NodeType::SUBTREE &&
623 abs_node->children_index.size() == 1 )
624 {
625 if( auto subtree_node = dynamic_cast<SubtreeNodeModel*>( bt_node ) )
626 {
627 subtree_node->setExpanded(true);
628 new_node.nodeState().getEntries(PortType::Out).resize(1);
629 subtree_node->expandButton()->setHidden( true );
630 emit subtree_node->updateNodeSize();
631 }
632 }
633
634 _scene->createConnection( *abs_node->graphic_node, 0,
635 *parent_node, 0 );
636
637 for ( int index: abs_node->children_index)
638 {
639 cursor.setX( cursor.x() + abs_node->size.width() );
640 cursor.setY( cursor.y() + abs_node->size.height() );
641 AbstractTreeNode* child = tree.node(index);
642 recursiveLoadStep(cursor, tree, child, abs_node->graphic_node, nest_level+1 );
643 }
644}
645
646
647void GraphicContainer::loadSceneFromTree(const AbsBehaviorTree &tree)

Callers

nothing calls this directly

Calls 5

setPortMappingMethod · 0.80
initWidgetMethod · 0.80
setExpandedMethod · 0.80
expandButtonMethod · 0.80
nodeMethod · 0.80

Tested by

no test coverage detected