This commit is contained in:
parent
b24507a479
commit
207bdf845c
|
@ -49,11 +49,11 @@ std::shared_ptr<DAGLayerHelper> dags::DAGOrderHelper::layerNode() const {
|
|||
return this->layer_bind;
|
||||
}
|
||||
|
||||
std::shared_ptr<DAGLayerHelper> dags::DAGOrderHelper::relateNode() const {
|
||||
std::shared_ptr<DAGLayerHelper> dags::DAGOrderHelper::tailsNode() const {
|
||||
return this->relate_bind;
|
||||
}
|
||||
|
||||
std::shared_ptr<DAGLayerHelper> dags::DAGOrderHelper::towardsNode() const {
|
||||
std::shared_ptr<DAGLayerHelper> dags::DAGOrderHelper::headsNode() const {
|
||||
return this->towards_to;
|
||||
}
|
||||
|
||||
|
@ -313,6 +313,36 @@ void dags::DAGGraph::above_nodes_sort(int layer_index, const QList<std::shared_p
|
|||
}
|
||||
}
|
||||
|
||||
void dags::DAGGraph::graph_adjust_after_layout(const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes)
|
||||
{
|
||||
int curr_layer = 0;
|
||||
while (layer_adjust_after_layout(curr_layer++, total_nodes)) {
|
||||
this->above_nodes_sort(curr_layer, total_nodes);
|
||||
}
|
||||
}
|
||||
|
||||
bool dags::DAGGraph::layer_adjust_after_layout(int curr_layer, const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes)
|
||||
{
|
||||
QList<std::shared_ptr<DAGOrderHelper>> nodes_within_current_layer;
|
||||
std::copy_if(total_nodes.begin(), total_nodes.end(), std::back_inserter(nodes_within_current_layer),
|
||||
[&](std::shared_ptr<DAGOrderHelper> ins) { return ins->layerNumber() == curr_layer; });
|
||||
|
||||
if (!nodes_within_current_layer.size())
|
||||
return false;
|
||||
|
||||
for (auto node : nodes_within_current_layer) {
|
||||
this->node_adjust_after_layout(node, total_nodes);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void dags::DAGGraph::node_adjust_after_layout(std::shared_ptr<DAGOrderHelper> curr_node, const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes)
|
||||
{
|
||||
auto next_data = curr_node->headsNode();
|
||||
|
||||
auto upstream_nodes = curr_node->getUpstreamNodes();
|
||||
}
|
||||
|
||||
void dags::DAGGraph::graphLayout() {
|
||||
QList<std::shared_ptr<DAGLayerHelper>> sort_seqs;
|
||||
QList<std::shared_ptr<DAGLayerHelper>> refs;
|
||||
|
|
|
@ -54,8 +54,8 @@ namespace dags {
|
|||
bool isFakeNode() const;
|
||||
|
||||
std::shared_ptr<DAGLayerHelper> layerNode() const;
|
||||
std::shared_ptr<DAGLayerHelper> relateNode() const;
|
||||
std::shared_ptr<DAGLayerHelper> towardsNode() const;
|
||||
std::shared_ptr<DAGLayerHelper> tailsNode() const;
|
||||
std::shared_ptr<DAGLayerHelper> headsNode() const;
|
||||
|
||||
int layerNumber() const;
|
||||
void setLayerNumber(int v);
|
||||
|
@ -88,5 +88,9 @@ namespace dags {
|
|||
QList<std::shared_ptr<DAGOrderHelper>> tidy_graph_nodes();
|
||||
void graph_layer_nodes_sort(int layer_index, const QList<std::shared_ptr<DAGOrderHelper>> &nodes);
|
||||
void above_nodes_sort(int curr_layer, const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes);
|
||||
|
||||
void graph_adjust_after_layout(const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes);
|
||||
bool layer_adjust_after_layout(int curr_layer, const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes);
|
||||
void node_adjust_after_layout(std::shared_ptr<DAGOrderHelper> curr_node, const QList<std::shared_ptr<DAGOrderHelper>>& total_nodes);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -172,8 +172,8 @@ QList<IGraphNode*> DAGActiveView::layer_nodes_construction(const QHash<IGraphNod
|
|||
// 构建当前层次图形节点
|
||||
for (auto& data_node : current_layer_datas) {
|
||||
if (data_node->isFakeNode()) {
|
||||
auto from = data_node->relateNode()->bindPoint().name();
|
||||
auto to = data_node->towardsNode()->bindPoint().name();
|
||||
auto from = data_node->tailsNode()->bindPoint().name();
|
||||
auto to = data_node->headsNode()->bindPoint().name();
|
||||
auto curr_gnode = new PenetrateNode(20, from, to);
|
||||
this->scene_bind.addItem(curr_gnode);
|
||||
curr_gnode->setPos(prev_layer_end, data_node->sortNumber() * (this->node_span + this->font().pointSizeF()) * 7);
|
||||
|
|
Loading…
Reference in New Issue