GEdge::~GEdge() { if(v0) v0->delEdge(this); if(v1 && v1 != v0) v1->delEdge(this); deleteMesh(); }
void ResourceManager::cleanup() { std::cout << "################ ResourceManager::cleanup ################" << std::endl; // textures std::cout << "---------- Delete Textures ----------" << std::endl; std::map<std::string, Texture*>::iterator text_it; for (text_it=_textures.begin(); text_it!=_textures.end(); ++text_it) { if (text_it->second != NULL) { //std::cout << text_it->first << " => " << text_it->second << '\n'; deleteTexture(text_it->first); } } _textures.clear(); // meshes std::cout << "---------- Delete Meshes ----------" << std::endl; std::map<std::string, Mesh*>::iterator mesh_it; for (mesh_it=_meshes.begin(); mesh_it!=_meshes.end(); ++mesh_it) { if (mesh_it->second != NULL) { //std::cout << mesh_it->first << " => " << mesh_it->second << '\n'; deleteMesh(mesh_it->first); } } _meshes.clear(); }
GRegion::~GRegion() { std::list<GFace*>::iterator it = l_faces.begin(); while(it != l_faces.end()){ (*it)->delRegion(this); ++it; } deleteMesh(); }
extern "C" void init(void) { //Read and send off mesh data: CkPrintf("Reading mesh...\n"); MeshData mesh; readMesh(&mesh,"crck_bar.inp"); CkPrintf("Uploading mesh to FEM...\n"); sendMesh(&mesh,FEM_Mesh_default_write()); deleteMesh(&mesh); CkPrintf("Partitioning mesh...\n"); }
SWViewerInterface::SWViewerInterface(QApplication *parent) : m_uiViewer(new Ui::SWUI_Viewer), m_bDesactiveUpdateParameters(false), m_bGLFullScreen(false) { // set absolute path m_absolutePath = QDir::currentPath() + "/"; // init main widget m_uiViewer->setupUi(this); this->setWindowTitle(QString("SWoOz : Viewer")); this->setWindowIcon(QIcon(m_absolutePath + "../data/images/logos/icon_swooz_viewer.png")); // middle container QHBoxLayout *l_pGLContainerLayout = new QHBoxLayout(); m_pGLContainer = new QWidget(); QGLFormat l_glFormat; l_glFormat.setVersion( 4, 3 ); l_glFormat.setProfile( QGLFormat::CompatibilityProfile); l_glFormat.setSampleBuffers( true ); QGLContext *l_glContext = new QGLContext(l_glFormat); m_pGLMultiObject = new SWGLMultiObjectWidget(l_glContext, m_pGLContainer); l_pGLContainerLayout->addWidget(m_pGLMultiObject); l_pGLContainerLayout->layout()->setContentsMargins(0,0,0,0); m_pGLContainer->setLayout(l_pGLContainerLayout); m_uiViewer->glScene->addWidget(m_pGLContainer); // init worker m_pWViewer = new SWViewerWorker(); // init connections // menu QObject::connect(m_uiViewer->actionExit, SIGNAL(triggered()), parent, SLOT(quit())); QObject::connect(m_uiViewer->actionOnline_documentation, SIGNAL(triggered()), this, SLOT(openOnlineDocumentation())); QObject::connect(m_uiViewer->actionAbout, SIGNAL(triggered()), this, SLOT(openAboutWindow())); QObject::connect(m_uiViewer->pbLoadCloud, SIGNAL(clicked()), this, SLOT(loadCloud())); QObject::connect(m_uiViewer->pbLoadMesh, SIGNAL(clicked()), this, SLOT(loadMesh())); QObject::connect(m_uiViewer->pbDeleteCloud, SIGNAL(clicked()), this, SLOT(deleteCloud())); QObject::connect(m_uiViewer->pbDeleteMesh, SIGNAL(clicked()), this, SLOT(deleteMesh())); QObject::connect(m_uiViewer->pbSetTexture, SIGNAL(clicked()), this, SLOT(setTexture())); QObject::connect(m_uiViewer->lwClouds, SIGNAL(currentRowChanged(int)), this, SLOT(updateCloudInterfaceParameters())); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(currentRowChanged(int)), this, SLOT(updateMeshInterfaceParameters())); QObject::connect(m_uiViewer->lwClouds, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateCloudInterfaceParameters(QListWidgetItem*))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateMeshInterfaceParameters(QListWidgetItem*))); QObject::connect(m_uiViewer->lwClouds, SIGNAL(currentRowChanged(int)), m_pWViewer, SLOT(updateCloudAnimationPath(int))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(currentRowChanged(int)), m_pWViewer, SLOT(updateMeshAnimationPath(int))); QObject::connect(this, SIGNAL(cloudCurrentRowChanged(int)), m_pWViewer, SLOT(updateCloudAnimationPath(int))); QObject::connect(this, SIGNAL(meshCurrentRowChanged(int)), m_pWViewer, SLOT(updateMeshAnimationPath(int))); QObject::connect(m_uiViewer->lwClouds, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateCloudAnimationPath(QListWidgetItem*))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateMeshAnimationPath(QListWidgetItem*))); // update interface QObject::connect(m_uiViewer->dsbRX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbRY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbRZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbScaling, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->cbDisplayLines, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->cbVisible, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayOriginalColor, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayTexture, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayUnicolor, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->sbColorB, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->sbColorG, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->sbColorR, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->dsbLightX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbLightY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbLightZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->leTexturePath, SIGNAL(textChanged(QString)), this, SLOT(updateParameters(QString))); QObject::connect(m_uiViewer->dsbAmbiantLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularP, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); // push buttons QObject::connect(m_uiViewer->pbSetCamera, SIGNAL(clicked()), this, SLOT(setCameraToCurrentItem())); QObject::connect(m_uiViewer->pbResetCamera, SIGNAL(clicked()), m_pGLMultiObject, SLOT(resetCamera())); QObject::connect(m_uiViewer->pbLaunchAllAnim, SIGNAL(clicked()), m_pWViewer, SLOT(startLoop())); QObject::connect(m_uiViewer->pbSetModFile, SIGNAL(clicked()), this, SLOT(loadModFile())); QObject::connect(m_uiViewer->pbSetSeqFile, SIGNAL(clicked()), this, SLOT(loadSeqFile())); QObject::connect(m_uiViewer->pbSetMeshCorr, SIGNAL(clicked()), this, SLOT(loadMeshCorrFile())); // fullscreen QObject::connect(m_pGLMultiObject, SIGNAL(enableFullScreen()), this, SLOT(enableGLFullScreen())); QObject::connect(m_pGLMultiObject, SIGNAL(disableFullScreen()), this, SLOT(disableGLFullScreen())); // worker QObject::connect(this, SIGNAL(stopLoop()), m_pWViewer, SLOT(stopLoop())); QObject::connect(this, SIGNAL(setModFilePath(bool,int,QString)), m_pWViewer, SLOT(setModFile(bool,int,QString))); QObject::connect(this, SIGNAL(setSeqFilePath(bool,int,QString)), m_pWViewer, SLOT(setSeqFile(bool,int,QString))); QObject::connect(this, SIGNAL(setCorrFilePath(bool,int,QString)), m_pWViewer, SLOT(setCorrFilePath(bool,int,QString))); QObject::connect(m_pWViewer, SIGNAL(sendAnimationPathFile(QString,QString,QString)), this, SLOT(updateAnimationPathFileDisplay(QString,QString,QString))); QObject::connect(this, SIGNAL(deleteAnimation(bool,int)), m_pWViewer, SLOT(deleteAnimation(bool,int))); QObject::connect(this, SIGNAL(addAnimation(bool)), m_pWViewer, SLOT(addAnimation(bool))); QObject::connect(m_pWViewer, SIGNAL(sendOffsetAnimation(SWAnimationSendDataPtr)),m_pGLMultiObject, SLOT(setAnimationOffset(SWAnimationSendDataPtr)),Qt::DirectConnection); // QObject::connect(m_pWViewer, SIGNAL(sendOffsetAnimation(SWAnimationSendDataPtr)),m_pGLMultiObject, SLOT(setAnimationOffset(SWAnimationSendDataPtr))); QObject::connect(m_pWViewer, SIGNAL(startAnimation(bool,int)), m_pGLMultiObject, SLOT(beginAnimation(bool,int))); QObject::connect(m_pWViewer, SIGNAL(drawSceneSignal()), m_pGLMultiObject, SLOT(updateGL())); setStyleSheet("QGroupBox { padding: 10 0px 0 0px; color: blue; border: 1px solid gray; border-radius: 5px; margin-top: 1ex; /* leave space at the top for the title */}"); // init thread m_pWViewer->moveToThread(&m_TViewer); m_TViewer.start(); }
void Microphone::replaceMesh(MIC_PART part, MESH3D& m) { deleteMesh(part); addMesh(part, m); }
int l_deleteMesh(lua_State *L) { deleteMesh(*(ofMesh **)lua_touserdata(L, 1)); return 0; }
bool SIMULATION_core::adaptation(){ bool adapt; if ( pSimPar->userRequiresAdaptation() ){ // performs an error estimation on saturation and/or pressure solution and verifies if tolerances are obeyed. // If error is greater than tolerance then mesh will be adapted to improve solution quality adapt = calculate_ErrorAnalysis(pErrorAnalysis,theMesh,pSimPar,pGCData,pPPData->get_FuncPointer_GetGradient()); if (adapt){ // retrieve cumulative simulation time pSimPar->retrieveSimulationTime(); pIData->m1 = theMesh; // auxiliary pointer pIData->m2 = MS_newMesh(0); // initialize auxiliary pointer PADMEC_mesh *pm = new PADMEC_mesh; // temporary pointer // preserves current mesh and create a new one adapted makeMeshCopy2(pIData->m1,pm,pPPData->getPressure,pPPData->getSw_old); // mesh adaptation (adapted mesh saved in file. Bad, bad, bad!) pMeshAdapt->rodar(pErrorAnalysis,pIData->m1); // delete any trace of FMDB data structure deleteMesh(theMesh); theMesh = 0; //create a new FMDB data structure with data in file pIData->m1 = MS_newMesh(0); readmesh(pIData->m1,"Final_01.msh"); theMesh = pIData->m1; // take mesh (coords and connectivities) from temporary matrix to m2 (avoid conflicts with FMDB when deleting m1 and theMesh) makeMeshCopy2(pm,pIData->m2,pPPData->setPressure,pPPData->setSaturation); // must be vanished from code in very near future PADMEC_GAMBIARRA(pIData->m1); // structure allocation must be done for saturation and pressure for the new mesh // it will receive interpolated data from m2 to m1 pPPData->allocateTemporaryData(M_numVertices(pIData->m1)); // interpolate data from m2 to m1 interpolation(pIData,pSimPar->getInterpolationMethod()); // transfer Sw and pressure from tmp to main struct pPPData->transferTmpData(); //pSimPar->printOutVTK(theMesh,pPPData,pErrorAnalysis,pSimPar,pGCData,exportSolutionToVTK); // waste old data and get ready for new data pGCData->deallocatePointers(); pGCData->initilize(theMesh); // mesh pre-processor EBFV1_preprocessor(pIData->m1,pGCData); // objects (pSimPar, pMData, pGCData, pPPData) must store new data updatePointersData(theMesh); // data transfer from FMDB to matrices pGCData->dataTransfer(theMesh); // temporary mesh not necessary any more (goodbye!) deleteMesh(pm); delete pm; pm = 0; deleteMesh(pIData->m2); delete pIData->m2; pIData->m2 = 0; } } return adapt; }
bool SIMULATION_core::adaptation(){ // let's suppose adaptation will not be necessary bool adapt = false; pSimPar->set_adapt_occur(false); // temporary for debug purposes string filename("simulation-parameters/FS-2D-homogeneo/pp-data-files/adapted_mesh_on_wells.msh"); if ( pSimPar->userRequiresAdaptation() ){ // performs an error estimation on saturation and/or pressure solution and verifies if tolerances are obeyed. // If error is greater than tolerance then mesh will be adapted to improve solution quality std::list<int> elemList; std::map<int,double> nodeMap; bool adapt = calculate_ErrorAnalysis(pErrorAnalysis,pSimPar,pGCData,PhysicPropData::getGradient,elemList,nodeMap); pSimPar->printOutVTK(theMesh,pPPData,pErrorAnalysis,pSimPar,pGCData,exportSolutionToVTK); if (adapt){ // let other simulation code parts aware of the occurrence of the adaptation process pSimPar->set_adapt_occur(true); // retrieve cumulative simulation time pSimPar->retrieveSimulationTime(); pIData->m2 = theMesh; // auxiliary pointer //pIData->m2 = MS_newMesh(0); // initialize auxiliary pointer //PADMEC_mesh *pm = new PADMEC_mesh; // temporary pointer // preserves current mesh and create a new one adapted //makeMeshCopy2(pIData->m1,pm,pPPData->getPressure,pPPData->getSw_old); // mesh adaptation (adapted mesh saved in file. Bad, bad, bad!) //pMeshAdapt->run(pIData->m1,elemList,nodeMap); // clean up //elemList.clear(); //nodeMap.clear(); // delete any trace of FMDB data structure //deleteMesh(theMesh); theMesh = 0; //create a new FMDB data structure with data in file pIData->m1 = MS_newMesh(0); readmesh(pIData->m1,filename.c_str()); theMesh = pIData->m1; // take mesh (coords and connectivities) from temporary matrix to m2 (avoid conflicts with FMDB when deleting m1 and theMesh) //makeMeshCopy2(pm,pIData->m2,pPPData->setPressure,pPPData->setSaturation); // before interpolate data from the old to the new mesh, vectors where pressure and saturation are stored // must be allocated for the new mesh (it has just to be created) pPPData->allocateTemporaryData(M_numVertices(pIData->m1)); // interpolate data from m2 to m1 interpolation(pIData,pSimPar->getInterpolationMethod()); // transfer Sw and pressure from tmp to main struct pPPData->transferTmpData(); // waste old data and get ready for new data pGCData->deallocatePointers(0); // mesh pre-processor EBFV1_preprocessor(pIData->m1,pGCData); // initialize geometric coefficients pointer pGCData->initilize(theMesh); // objects (pSimPar, pMData, pGCData, pPPData) must store new data updatePointersData(theMesh); // data transfer from FMDB to matrices pGCData->dataTransfer(theMesh); pSimPar->printOutVTK(pIData->m1,pPPData,pErrorAnalysis,pSimPar,pGCData,exportSolutionToVTK); STOP(); // temporary mesh not necessary any more (goodbye!) //deleteMesh(pm); //delete pm; pm = 0; deleteMesh(pIData->m2); delete pIData->m2; pIData->m2 = 0; } } return adapt; }
void GamePlay::loadMesh() { deleteMesh(); mesh=grid->get_mesh(); game_physic.set_world_mesh(mesh); }