Exemplo n.º 1
0
//==============================================================================
void Problem::setDimension(std::size_t _dim)
{
  if(_dim != mDimension)
  {
    mDimension = _dim;

    mInitialGuess = Eigen::VectorXd::Zero(mDimension);

    mLowerBounds = Eigen::VectorXd::Constant(
          mDimension, -std::numeric_limits<double>::infinity());

    mUpperBounds = Eigen::VectorXd::Constant(
          mDimension,  std::numeric_limits<double>::infinity());

    mOptimalSolution = Eigen::VectorXd::Zero(mDimension);
    clearAllSeeds();
  }
}
mainWindow::mainWindow( QWidget *parent) : QMainWindow( parent) {

    // Main window format
    this->setWindowState( Qt::WindowMaximized );

    // Workspace
    workspace = new QMdiArea( this );
    setCentralWidget( workspace );

    tabWidget = new CTabDockWidget( 0);
    addDockWidget(Qt::LeftDockWidgetArea,tabWidget);

    // Status widget
    printer = new CStatusPrinter();
    printer->textBuffer.enqueue(CStatusText("Initializing..."));
    statusWidget = new CStatusWidget(printer );
    statusUpdateTimer = new QTimer();
    addDockWidget(Qt::BottomDockWidgetArea, statusWidget);

    // Tools widget
    toolsWidget = new CToolsWidget( this );
    tabWidget->tabs->addTab( toolsWidget, "Tools");

    //Seeds widget
    seedsWidget = new CSeedSelectionWidget();
    tabWidget->tabs->addTab( seedsWidget, "Seed Selection");

    // Monitor widget
    monitorWidget = new CMonitorWidget( toolsWidget , this );
    monitorWidget->hide();

    // Viewer Widget
    viewer = new CViewerWidget( this);
    workspace->addSubWindow( viewer, Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
    viewer->setWindowState( Qt::WindowMaximized);

    // Link buttons with actions
    segTool = new CSegmentation( monitorWidget );

    segmentationThread = new QThread(this);
    segTool->moveToThread(segmentationThread);
    segmentationThread->start();

    statusUpdateTimer->setInterval(0.3);
    statusUpdateTimer->start();

    new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_D), this, SLOT(gTest()));

    connect( toolsWidget , SIGNAL( imageLoadedQPixmap( QPixmap, bool)) , monitorWidget , SLOT( updateImage( QPixmap ) ) );
    connect( toolsWidget , SIGNAL( imageLoadedQPixmap( QPixmap, bool)) , this, SLOT( addWidgetToViewer(QPixmap, bool)));
    connect( toolsWidget , SIGNAL( imageLoadedQImage( QImage)) , segTool , SLOT( setInputImage( QImage ) ), Qt::BlockingQueuedConnection );
    connect( toolsWidget->execBtn , SIGNAL( clicked() ) , segTool, SLOT( run()));
    connect( toolsWidget->clearSeedsBtn , SIGNAL( clicked()) , monitorWidget , SLOT( clearAllSeeds() ) );
    connect( toolsWidget->clearSeedsBtn , SIGNAL( clicked()) , seedsWidget, SLOT( removeSeeds()));
    connect( toolsWidget, SIGNAL( imageLoadedQPixmap( QPixmap, bool)), seedsWidget, SLOT( removeSeeds()));
    connect( toolsWidget, SIGNAL( imageLoadedQPixmap( QPixmap, bool)), monitorWidget, SLOT( clearAllSeeds()));
    connect( segTool , SIGNAL( sendImage( QPixmap, bool) ) , this, SLOT( addWidgetToViewer(QPixmap, bool)), Qt::BlockingQueuedConnection );
    connect( toolsWidget->bethaSlider, SIGNAL( valueChanged(int)), segTool, SLOT( setBetha(int)), Qt::BlockingQueuedConnection);
    connect( seedsWidget, SIGNAL( selectedSeedSignal(QString,QColor)), monitorWidget, SLOT(setCurrentSeed(QString,QColor)));
    connect( viewer, SIGNAL( imageSizeLimitSignal(QSize)), toolsWidget, SLOT( setImageSizeLimit(QSize)));
    connect( statusUpdateTimer, SIGNAL( timeout()), statusWidget, SLOT( update()));
    connect( viewer, SIGNAL( imageSizeLimitSignal(QSize)), statusWidget, SLOT( getSizeFromViewer(QSize)));
}