Changeset 8634:4bbf64fed2d0 in orange


Ignore:
Timestamp:
08/09/11 11:43:53 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
d32b2b549f5dffcacab1826f55ea82264b475a7e
Message:
 
Location:
source/orangeplot
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source/orangeplot/networkcurve.cpp

    r8633 r8634  
    594594    QRectF data_r(rect[0], rect[1], rect[2]-rect[0], rect[3]-rect[1]); 
    595595    double area = data_r.width() * data_r.height(); 
    596     int updateCheckpoint = steps / 50; 
    597     if (updateCheckpoint == 0 || updateCheckpoint % 2 != 0) 
    598     { 
    599         updateCheckpoint += 1; 
    600     } 
    601     qDebug() << "updateCheckpoint " << updateCheckpoint; 
    602596    double k2 = area / m_nodes.size(); 
    603597    double k = sqrt(k2); 
     
    608602    temperature = sqrt(area) / 5; 
    609603    cooling = exp(log(k / 10 / temperature) / steps); 
     604 
    610605    if (steps > 20) 
    611606    { 
     
    633628 
    634629    // iterations 
     630    //clock_t refresh_time = clock() + 0.05 * CLOCKS_PER_SEC; 
     631 
     632    struct timeval time; 
     633    gettimeofday(&time, NULL); 
     634    double refresh_time = time.tv_sec * 1000000 + time.tv_usec + 10000; 
     635 
    635636    for (i = 0; i < steps; ++i) 
    636637    { 
     
    682683            } 
    683684        } 
    684  
    685685        // calculate attractive forces 
    686686        for (j = 0; j < m_edges.size(); ++j) 
     
    722722        } 
    723723 
    724         if (++count % updateCheckpoint == 0) 
     724        gettimeofday(&time, NULL); 
     725        if (time.tv_sec * 1000000 + time.tv_usec > refresh_time && i % 2 == 0) 
    725726        { 
    726727            update_properties(); 
    727             QCoreApplication::processEvents(); 
    728             Plot* p = plot(); 
    729             if (p) 
    730             { 
    731                 p->set_dirty(); 
    732                 p->replot(); 
    733             } 
    734         } 
    735  
     728 
     729            gettimeofday(&time, NULL); 
     730            double start_time = time.tv_sec * 1000000 + time.tv_usec; 
     731            QCoreApplication::processEvents(); 
     732            gettimeofday(&time, NULL); 
     733            double refresh_duration = time.tv_sec * 1000000 + time.tv_usec - start_time; 
     734            double next_refresh = qMax(refresh_duration * 2, 10000.0); 
     735            gettimeofday(&time, NULL); 
     736            //qDebug() << "next refresh: " << next_refresh; 
     737            refresh_time = time.tv_sec * 1000000 + time.tv_usec + next_refresh; 
     738        } 
    736739        if (m_stop_optimization) 
    737740        { 
    738741            return 0; 
    739742        } 
    740  
    741         //temperature = temperature * cooling; 
    742743        if (floor(temperature) > cooling_switch) 
    743744        { 
  • source/orangeplot/networkcurve.h

    r8633 r8634  
    77#include <deque> 
    88#include <algorithm> 
     9#include <sys/time.h> 
    910 
    1011class QueueVertex 
Note: See TracChangeset for help on using the changeset viewer.