Changeset 8174:fe46554feda2 in orange


Ignore:
Timestamp:
08/16/11 12:26:11 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
7d2e77ea1139b82fe8ed3ae57613f3afbf681386
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/orangeom/graph_layout.cpp

    r7960 r8174  
    638638    disp[1].resize(nVertices, 0); 
    639639 
     640    // iterate all nodes 
     641    PyObject *key, *value; 
     642    Py_ssize_t pos = 0; 
     643    vector<int> nodes_vec; 
     644    while (PyDict_Next(nodes, &pos, &key, &value)) { 
     645        int node = PyInt_AS_LONG(key); 
     646        nodes_vec.push_back(node); 
     647    } 
     648 
     649    // create a dict of node id | node index 
     650    sort(nodes_vec.begin(), nodes_vec.end()); 
     651    map<int, int> nodes_map; 
     652    for (i = 0; i < nodes_vec.size(); i++) { 
     653        nodes_map[nodes_vec[i]] = i; 
     654    } 
     655 
     656    // iterate all edges 
    640657    PyObject *key_u, *value_u, *key_v, *value_v; 
    641658    Py_ssize_t pos_u = 0; 
    642  
    643659    while (PyDict_Next(adj, &pos_u, &key_u, &value_u)) { 
    644660        int u = PyInt_AS_LONG(key_u); 
     
    647663        while (PyDict_Next(value_u, &pos_v, &key_v, &value_v)) { 
    648664            int v = PyInt_AS_LONG(key_v); 
    649             links[0].push_back(u); 
    650             links[1].push_back(v); 
     665            links[0].push_back(nodes_map[u]); 
     666            links[1].push_back(nodes_map[v]); 
    651667            weights.push_back(1); // TODO: compute weight 
    652668            nLinks++; 
Note: See TracChangeset for help on using the changeset viewer.