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); }
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())); }
Problem::~Problem() { clearSolution(); clearFieldsAndConfig(); delete m_config; delete m_setting; delete m_calculationThread; }
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(); }