예제 #1
0
//노드를 추가한다.
int SparseGraph::AddNode(NavGraphNode node)
{
    if (node.GetIndex() < (int)m_Nodes.size())
    {
        //같은 인덱스를 가진 노드가 이미 있는지 확인한다.
        assert(m_Nodes[node.GetIndex()].GetIndex() == -1 &&
               "<SparseGraph::AddNode>: Attempting to add a node with a duplicate ID");
        
        m_Nodes[node.GetIndex()] = node;
        
        return m_iNextNodeIndex;
    }
    
    else
    {
        //노드 리스트 맨 뒤에 추가하는지 확인한다.
        assert(node.GetIndex() == m_iNextNodeIndex && "<SparseGraph::AddNode>:invalid index");
        
        m_Nodes.push_back(node);
        m_Edges.push_back(EdgeList());
        
        return m_iNextNodeIndex++;
    }
}
예제 #2
0
EdgeList graph500ToEdgeList(const packed_edge* graph, int64_t edges){
    return EdgeList(graph,edges);
}