Ejemplo n.º 1
0
void MainWindow::on_generateEnvironment_clicked()
{
    if(!Directory.exists()&&save){QMessageBox::warning(0,"Error","No such directory.", QMessageBox::Ok);return;}


    for(int i=0;i<generations;i++)
    {


        environmentobject->regenerate();

        RefreshEnvironment();
        qApp->processEvents();

        if(save)
        {
            QImage saveImage(GRID_X,GRID_Y,QImage::Format_RGB32);
            for (int n=0; n<GRID_X; n++)
                for (int m=0; m<GRID_Y; m++)
                    saveImage.setPixel(n,m,qRgb(environmentobject->environment[n][m][0], environmentobject->environment[n][m][1], environmentobject->environment[n][m][2]));
            QString dir2;
            if(i<10)dir2 = QString(Directory.path() + "/000%1.bmp").arg(i);
            if(i>9&&i<100)dir2 = QString(Directory.path() + "/00%1.bmp").arg(i);
            if(i>99&&i<1000)dir2 = QString(Directory.path() + "/0%1.bmp").arg(i);
            if(i>999)dir2 = QString(Directory.path() + "/%1.bmp").arg(i);
            saveImage.save(dir2);
        }

    }
}
Ejemplo n.º 2
0
void MainWindow::on_generateEnvironment_clicked()
{
    if(!Directory.exists()&&save){QMessageBox::warning(0,"Error","No such directory.", QMessageBox::Ok);return;}

    newEnvironmentImage();

    if (ui->tabWidget->currentIndex()==0) //russellenv
        environmentobject = new russellenvironment;

    if (ui->tabWidget->currentIndex()==1) //markenv
        environmentobject = new markenvironment;

    if (ui->tabWidget->currentIndex()==2) //noise
    {
        environmentobject = new noiseenvironment;
        if(MainWin->ui->noiseMin->value()>=MainWin->ui->noiseMax->value())
        {
        QMessageBox::warning(0,"Error","Min is greater than Max - fix.", QMessageBox::Ok);
        return;
        }
    }

    if (ui->tabWidget->currentIndex()==3) //combine
        environmentobject = new combine;

    if (ui->tabWidget->currentIndex()==4) //colour
        environmentobject = new colour;

    if (ui->tabWidget->currentIndex()==5) //stack
        environmentobject = new makestack;

    generations=MainWin->ui->numGenerations->value();

    QProgressDialog prDialogue("Progress of generation","Cancel",0,generations);
    prDialogue.show();

    MainWin->ui->generateEnvironment->setEnabled(false);
    for(int i=0;i<generations;i++)
    {
        currentGeneration=i;
        environmentobject->regenerate();
        prDialogue.setValue(i);

        RefreshEnvironment();

        qApp->processEvents();
        if(save)
        {
            QImage saveImage(MainWin->ui->spinSize->value(),MainWin->ui->spinSize->value(),QImage::Format_RGB32);
            for (int n=0; n<MainWin->ui->spinSize->value(); n++)
                for (int m=0; m<MainWin->ui->spinSize->value(); m++)
                    saveImage.setPixel(n,m,qRgb(environmentobject->environment[n][m][0], environmentobject->environment[n][m][1], environmentobject->environment[n][m][2]));
            QString dir2;
            if(i<10)dir2 = QString(Directory.path() + "/000%1.bmp").arg(i);
            if(i>9&&i<100)dir2 = QString(Directory.path() + "/00%1.bmp").arg(i);
            if(i>99&&i<1000)dir2 = QString(Directory.path() + "/0%1.bmp").arg(i);
            if(i>999)dir2 = QString(Directory.path() + "/%1.bmp").arg(i);
            saveImage.save(dir2);
        }

        if (prDialogue.wasCanceled()) break;

    }
    MainWin->ui->generateEnvironment->setEnabled(true);

    delete environmentobject;
}