Changeset 4032:21df3a5d5053 in orange


Ignore:
Timestamp:
08/01/07 09:48:28 (7 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
bec3927c8bf61921c411c8971ac97978333aad47
Message:

fixed memory leek

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/orangeom/networkoptimization.cpp

    r4031 r4032  
    557557            //cout  << " min: " << levelMin[v] << " max: " << levelMax[v] << "r: " << v * radius << endl; 
    558558        } 
    559         //* 
     559         
    560560        for (v = 0; v < nVertices; v++) 
    561561        { 
     
    589589                    else if ((x == 0) && (y < 0)) 
    590590                        fi = 3 * PI / 2; 
    591                     /* 
    592                     cout << "width: " << width << " height: " << height << endl; 
    593                     cout << "r: " << distance << endl; 
    594                     cout << "x: " << pos[v][0] << " y: " << pos[v][1] << endl; 
    595                     cout << "x-500: " << pos[v][0]-500 << " y-500: " << pos[v][1]-500 << endl; 
    596                     cout << "x-500^2: " << (pos[v][0]-5000)*(pos[v][0]-5000) << " y-500^2: " << (pos[v][1]-5000)*(pos[v][1]-5000) << endl; 
    597                     cout << "x-500^2 + y-500^2: " << (pos[v][0]-5000)*(pos[v][0]-5000) + (pos[v][1]-5000)*(pos[v][1]-5000) << endl; 
    598                     pos[v][0] = distance * cos(fi) + (width / 2); 
    599                     pos[v][1] = distance * sin(fi) + (height / 2); 
    600                     cout << "x: " << pos[v][0] << " y: " << pos[v][1] << endl; 
    601                     */ 
     591                     
    602592                    pos[v][0] = levelMax[level[v]] * distance * cos(fi) + (width / 2); 
    603593                    pos[v][1] = levelMax[level[v]] * distance * sin(fi) + (height / 2); 
     
    625615                    else if ((x == 0) && (y < 0)) 
    626616                        fi = 3 * PI / 2; 
    627                      
    628                     //pos[v][0] = distance * cos(fi) + (width / 2); 
    629                     //pos[v][1] = distance * sin(fi) + (height / 2); 
    630617 
    631618                    pos[v][0] = levelMin[level[v]] * distance * cos(fi) + (width / 2); 
     
    636623            } 
    637624        } 
    638         /**/ 
    639         /* 
    640         for (v = 0; v < nVertices; v++) 
    641         { 
    642  
    643             double dif = sqrt(disp[v][0] * disp[v][0] + disp[v][1] * disp[v][1]); 
    644  
    645             if (dif == 0) 
    646                 dif = 1; 
    647  
    648             pos[v][0] = pos[v][0] + (disp[v][0] * min(fabs(disp[v][0]), temperature) / dif); 
    649             pos[v][1] = pos[v][1] + (disp[v][1] * min(fabs(disp[v][1]), temperature) / dif); 
    650              
    651             double distance = (pos[v][0] - (width/2)) * (pos[v][0] - (width/2)) + (pos[v][1] - (height/2)) * (pos[v][1] - (height/2)); 
    652              
    653             //cout << "x: " << pos[v][0] << " y: " << pos[v][1] << " width: " << width << " height: " << height << endl; 
    654             //cout << "distance: " << distance << " radius: " << (level[v] * radius) * (level[v] * radius) << endl; 
    655             if (level[v] == 0) 
    656             { 
    657                 // move to center 
    658                 pos[v][0] = width / 2; 
    659                 pos[v][1] = height / 2; 
    660  
    661                 //cout << "center, x: " << pos[v][0] << " y: " << pos[v][1] << endl; 
    662             } 
    663             //* 
    664             else if (distance > ((level[v] * radius) * (level[v] * radius))) 
    665             { 
    666                 // move to outer ring 
    667                 double fi = atan((pos[v][1] - (height / 2)) / (pos[v][0] - (width / 2))); 
    668  
    669                 pos[v][0] = level[v] * radius * cos(fi) + (width / 2); 
    670                 pos[v][1] = level[v] * radius * sin(fi) + (height / 2); 
    671  
    672                 //cout << "outer, x: " << pos[v][0] << " y: " << pos[v][1] << " radius: " << radius << " fi: " << fi << " level: " << level[v] << " v: " << v << endl; 
    673             } 
    674             else if (distance < (((level[v] - 1) * radius) * ((level[v] - 1) * radius))) 
    675             { 
    676                 // move to inner ring 
    677                 double fi = atan((pos[v][1] - (height / 2)) / (pos[v][0] - (width / 2))); 
    678  
    679                 pos[v][0] = (level[v] - 1) * radius * cos(fi) + (width / 2); 
    680                 pos[v][1] = (level[v] - 1) * radius * sin(fi) + (height / 2); 
    681  
    682                 //cout << "inner, x: " << pos[v][0] << " y: " << pos[v][1] << endl; 
    683             } 
    684              
    685         } 
    686         /**/ 
    687625        //cout << temperature << ", "; 
    688626        temperature = temperature * coolFactor; 
     
    1043981    for (i = 0; i < graph->nVertices; i++) 
    1044982    { 
     983        if (graph->level[i] >= nCircles) 
     984            graph->level[i] = nCircles - 1; 
     985 
    1045986        graph->kVector[graph->level[i]]++; 
    1046987    } 
Note: See TracChangeset for help on using the changeset viewer.