示例#1
0
void ViewCluster::setInstance(CCP::Instance *inst){
    double maxX, maxY, minX, minY;
    clearSolution();
    this->scene()->clear();

    if (inst == 0){
        return;
    }
    _sol = 0;
    minY = minX = 1e10;

    for (unsigned short i = 0; i < inst->numPoints(); i++){
        CCP::Point * p = inst->point(i);
        minX = qMin(minX, p->position().x());
        minY = qMin(minY, p->position().y());
        maxX = qMax(maxX, p->position().x());
        maxY = qMax(maxY, p->position().y());

    }
    for (unsigned short i = 0; i < inst->numPoints(); i++){
        CCP::Point * p = inst->point(i);
        scene()->addEllipse(p->position().x() - 2 ,
                            p->position().y() - 2 ,
                            4, 4);
    }

    _instance = inst;
    _instanceSize.setCoords(minX-10, minY-10, maxX+10, maxY+10);

    this->scene( )->setSceneRect(_instanceSize);
    this->fitInView(scene()->sceneRect(), Qt::KeepAspectRatio);

}
示例#2
0
文件: problem.cpp 项目: dcm3c/agros2d
Problem::Problem()
{
    // m_timeStep = 0;
    m_lastTimeElapsed = QTime(0, 0);
    m_isSolving = false;
    m_isMeshing = false;
    m_abort = false;

    m_config = new ProblemConfig();
    m_setting = new ProblemSetting();
    m_calculationThread = new CalculationThread();

    m_isNonlinear = false;

    actMesh = new QAction(icon("scene-meshgen"), tr("&Mesh area"), this);
    actMesh->setShortcut(QKeySequence(tr("Alt+W")));
    connect(actMesh, SIGNAL(triggered()), this, SLOT(doMeshWithGUI()));

    actSolve = new QAction(icon("run"), tr("&Solve"), this);
    actSolve->setShortcut(QKeySequence(tr("Alt+S")));
    connect(actSolve, SIGNAL(triggered()), this, SLOT(doSolveWithGUI()));

    actSolveAdaptiveStep = new QAction(icon("run-step"), tr("Adaptive step"), this);
    connect(actSolveAdaptiveStep, SIGNAL(triggered()), this, SLOT(doSolveAdaptiveStepWithGUI()));

    connect(m_config, SIGNAL(changed()), this, SLOT(clearSolution()));
}
示例#3
0
文件: problem.cpp 项目: dcm3c/agros2d
Problem::~Problem()
{
    clearSolution();
    clearFieldsAndConfig();

    delete m_config;
    delete m_setting;
    delete m_calculationThread;
}
示例#4
0
Agros2D::Agros2D()
{
    clearAgros2DCache();

    m_problem = new Problem();
    m_scene = new Scene();

    QObject::connect(m_problem, SIGNAL(fieldsChanged()), m_scene, SLOT(doFieldsChanged()));
    QObject::connect(m_scene, SIGNAL(invalidated()), m_problem, SLOT(clearSolution()));

    initLists();

    m_solutionStore = new SolutionStore();

    m_configComputer = new Config();
    m_configComputer->load();

    // log
    m_log = new Log();

    // memory monitor
    m_memoryMonitor = new MemoryMonitor();
}