//노드를 추가한다. 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++; } }
EdgeList graph500ToEdgeList(const packed_edge* graph, int64_t edges){ return EdgeList(graph,edges); }