Changeset 167:4a9556a866ac

Show
Ignore:
Timestamp:
03/21/2012 11:19:14 PM (15 months ago)
Author:
Andreas Schaefer <gentryx@…>
Branch:
default
Message:

presentable version

Location:
src/examples/flowingcanvas
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • src/examples/flowingcanvas/canvascell.h

    r166 r167  
    5858    static inline unsigned nanoSteps() 
    5959    { 
    60         return 5; 
     60        return 8; 
    6161    } 
    6262 
  • src/examples/flowingcanvas/canvasinitializer.h

    r165 r167  
    1111public: 
    1212    CanvasInitializer() : 
    13         // SimpleInitializer<CanvasCell>(Coord<2>(240, 135), 100) 
    14         SimpleInitializer<CanvasCell>(Coord<2>(320, 180), 100) 
     13        SimpleInitializer<CanvasCell>(Coord<2>(240, 135), 100) 
     14        // SimpleInitializer<CanvasCell>(Coord<2>(320, 180), 100) 
    1515        // SimpleInitializer<CanvasCell>(Coord<2>(384, 216), 100) 
    1616        // SimpleInitializer<CanvasCell>(Coord<2>(640, 360), 100) 
  • src/examples/flowingcanvas/canvaswriter.h

    r166 r167  
    6363        Writer<CanvasCell>("foo", _sim, 1), 
    6464        outputFrame(_outputFrame), 
    65         mode(5) 
     65        particleMode(3), 
     66        cameraMode(1) 
    6667    {} 
    6768 
     
    7172    virtual void stepFinished() 
    7273    { 
    73         switch (mode) { 
     74        const typename Simulator<CanvasCell>::GridType *grid = sim->getGrid(); 
     75 
     76        switch (particleMode) { 
    7477        case 0: 
    75             drawAttribute(SelectCameraPixel()); 
     78            drawForce(grid, SelectForceVario()); 
    7679            break; 
    7780        case 1: 
    78             drawAttribute(SelectCameraLevel()); 
     81            drawForce(grid, SelectForceFixed()); 
    7982            break; 
    8083        case 2: 
    81             drawForce(SelectForceVario()); 
     84            drawForce(grid, SelectForceTotal()); 
    8285            break; 
    8386        case 3: 
    84             drawForce(SelectForceFixed()); 
    85             break; 
    86         case 4: 
    87             drawForce(SelectForceTotal()); 
    88             break; 
    89         case 5: 
    90             drawParticles(); 
     87            drawParticles(grid); 
    9188            break; 
    9289        default: 
    9390            break; 
    9491        } 
     92 
     93        switch (cameraMode) { 
     94        case 0: 
     95            drawAttribute(grid, SelectCameraPixel()); 
     96            break; 
     97        case 1: 
     98            drawAttribute(grid, SelectCameraLevel()); 
     99            break; 
     100        default: 
     101            break; 
     102        } 
    95103    } 
    96104 
     
    100108 
    101109public slots: 
    102     virtual void cycleViewMode() 
    103     { 
    104         mode = (mode + 1) % 6; 
     110    virtual void cycleViewModeParticle() 
     111    { 
     112        particleMode = (particleMode + 1) % 4; 
     113    } 
     114 
     115    virtual void cycleViewModeCamera() 
     116    { 
     117        cameraMode = (cameraMode + 1) % 3; 
    105118    } 
    106119 
    107120private: 
    108121    QImage **outputFrame; 
    109     int mode; 
     122    int particleMode; 
     123    int cameraMode; 
    110124 
    111125    template<typename SELECTOR> 
    112     void drawForce(const SELECTOR& selector) 
     126    void drawForce(const typename Simulator<CanvasCell>::GridType *grid, const SELECTOR& selector) 
    113127    { 
    114128        Coord<2> dim = sim->getInitializer()->gridDimensions(); 
    115         const typename Simulator<CanvasCell>::GridType *grid = sim->getGrid(); 
    116129        
    117130        int spacingX = 10; 
     
    147160    // fixme: scale to image size 
    148161    template<typename SELECTOR> 
    149     void drawAttribute(const SELECTOR& selector) 
     162    void drawAttribute(const typename Simulator<CanvasCell>::GridType *grid, const SELECTOR& selector) 
    150163    { 
    151164        Coord<2> dim = sim->getInitializer()->gridDimensions(); 
    152         const typename Simulator<CanvasCell>::GridType *grid = sim->getGrid(); 
    153165        
    154166        for (int y = 0; y < dim.y(); ++y) { 
     
    159171    } 
    160172 
    161     void drawParticles() 
     173    void drawParticles(const typename Simulator<CanvasCell>::GridType *grid) 
    162174    { 
    163175        Coord<2> dim = sim->getInitializer()->gridDimensions(); 
    164         const typename Simulator<CanvasCell>::GridType *grid = sim->getGrid(); 
    165  
    166176        float factorX = 1.0 * (*outputFrame)->width()  / dim.x(); 
    167177        float factorY = 1.0 * (*outputFrame)->height() / dim.y(); 
  • src/examples/flowingcanvas/flowwidget.h

    r158 r167  
    3636        std::cout << "got key " << event->key() << "\n"; 
    3737        if (event->key() == Qt::Key_Space) { 
    38             emit cycleViewMode(); 
     38            emit cycleViewModeParticle(); 
     39        } 
     40 
     41        if (event->key() == Qt::Key_Enter) { 
     42            emit cycleViewModeCamera(); 
    3943        } 
    4044    } 
     
    5761signals: 
    5862    void updateImage(QImage*); 
    59     void cycleViewMode(); 
     63    void cycleViewModeParticle(); 
     64    void cycleViewModeCamera(); 
    6065 
    6166private: 
  • src/examples/flowingcanvas/interactivesimulator.h

    r166 r167  
    5252        update(); 
    5353        incFrames(); 
    54         std::cout << getFrames() << " " << fps() << " FPS\r"; 
     54        // std::cout << "\r" << getFrames() << " " << fps() << " FPS"; 
    5555    } 
    5656 
  • src/examples/flowingcanvas/main.cu

    r166 r167  
    4444    QObject::connect(timerGrab, SIGNAL(timeout()),           grabber, SLOT(grab())); 
    4545 
    46     QObject::connect(&flow,     SIGNAL(cycleViewMode()),     writer,  SLOT(cycleViewMode())); 
     46    QObject::connect(&flow,     SIGNAL(cycleViewModeParticle()), writer,  SLOT(cycleViewModeParticle())); 
     47    QObject::connect(&flow,     SIGNAL(cycleViewModeCamera()),   writer,  SLOT(cycleViewModeCamera())); 
     48 
    4749    QObject::connect(grabber,   SIGNAL(newFrame(char*, unsigned, unsigned)),  
    4850                     sim,       SLOT(updateCam( char*, unsigned, unsigned))); 
    4951    QObject::connect(&flow,     SIGNAL(updateImage(QImage*)), 
    5052                     sim,       SLOT(renderImage(QImage*))); 
     53 
    5154    QObject::connect(&app,      SIGNAL(lastWindowClosed()),  sim,       SLOT(quit())); 
    5255    QObject::connect(&app,      SIGNAL(lastWindowClosed()),  timerFlow, SLOT(stop())); 
     
    6265    grabber->grab(); 
    6366    timerFlow->start(10); 
    64     timerGrab->start(200); 
     67    timerGrab->start(100); 
    6568    timerInfo->start(5000); 
    6669    flow.show();