2016-12-02 2 views

답변

0

이것은 내 해결책이며, 새로운 ID와 그 가장자리를 가진 노드 사본을 만듭니다. 그런 다음 이전 노드를 제거하십시오.

changeId(current, newId) { 
    let g = this.getGraph(); 

    // Change on graph 
    let node = g.node(current); 
    let inEdges = g.inEdges(current); 
    let outEdges = g.outEdges(current); 

    // Create new node 
    node.id = newId; 
    g.setNode(newId, node); 
    // Create new edges 
    for (let i = 0; i < inEdges.length; i++) { 
     let edge = inEdges[i]; 
     let conn = g.edge(edge.v, current); 
     conn.target = newId; 
     g.setEdge(edge.v, newId, conn); 
    } 
    for (let i = 0; i < outEdges.length; i++) { 
     let edge = outEdges[i]; 
     let conn = g.edge(current, edge.w); 
     conn.source = newId; 
     g.setEdge(newId, edge.w, conn); 
    } 
    // Remove old node 
    g.removeNode(current); 
} 
관련 문제