PhotoTexturingWidget::PhotoTexturingWidget(MeshEditInterface* plugin, PhotoTexturer* texturer,MeshModel &m,GLArea *gla): MeshlabEditDockWidget(gla) { lastDirectory = ""; connect(this,SIGNAL(updateGLAreaTextures()),gla,SLOT(updateTexture())); connect(this,SIGNAL(setGLAreaTextureMode(vcg::GLW::TextureMode)),gla,SLOT(setTextureMode(vcg::GLW::TextureMode))); connect(this,SIGNAL(updateMainWindowMenus()),gla,SIGNAL(updateMainWindowMenus())); ptPlugin = plugin; photoTexturer = texturer; PhotoTexturingWidget::ui.setupUi(this); this->setWidget(ui.main_frame); //this->setFeatures(QDockWidget::AllDockWidgetFeatures); this->setFeatures(QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetClosable); this->setAllowedAreas(Qt::NoDockWidgetArea); this->setFloating(true); mesh = &m; glarea = gla; //setting up the headers for the tblewidget //QStringList headers; //headers << "Camera" << "Image"; //ui.cameraTableWidget->setHorizontalHeaderLabels(headers); connect(ui.configurationLoadPushButton, SIGNAL(clicked()),this,SLOT(loadConfigurationFile())); connect(ui.configurationSavePushButton, SIGNAL(clicked()),this,SLOT(saveConfigurationFile())); connect(ui.exportToMaxScriptPushButton, SIGNAL(clicked()),this,SLOT(exportCamerasToMaxScript())); connect(ui.convertToTsaiCameraPushButton, SIGNAL(clicked()),this,SLOT(convertToTsaiCamera())); connect(ui.addCameraPushButton, SIGNAL(clicked()),this,SLOT(addCamera())); connect(ui.removeCameraPushButton, SIGNAL(clicked()),this,SLOT(removeCamera())); connect(ui.assignImagePushButton, SIGNAL(clicked()),this,SLOT(assignImage())); connect(ui.calculateTexturesPushButton, SIGNAL(clicked()),this,SLOT(calculateTextures())); connect(ui.combineTexturesPushButton, SIGNAL(clicked()),this,SLOT(combineTextures())); connect(ui.unprojectTexturePushButton, SIGNAL(clicked()),this,SLOT(unprojectTextures())); connect(ui.bakeTexturePushButton, SIGNAL(clicked()),this,SLOT(bakeTextures())); connect(ui.textureListWidget, SIGNAL(itemClicked(QListWidgetItem* )),this,SLOT(selectCurrentTexture())); connect(ui.resetPushButton, SIGNAL(clicked()),this,SLOT(reset())); connect(ui.closePushButton, SIGNAL(clicked()),this,SLOT(close())); //connect(ui.cancelPushButton, SIGNAL(clicked()),this,SLOT(cancel())); photoTexturer->storeOriginalTextureCoordinates(mesh); loadDefaultSettings(); update(); }
int GLArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGLWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: updateMainWindowMenus(); break; case 1: transmitViewDir((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 2: transmitViewPos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 3: transmitSurfacePos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 4: transmitCameraPos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 5: updateTexture(); break; case 6: setDrawMode((*reinterpret_cast< vcg::GLW::DrawMode(*)>(_a[1]))); break; case 7: setColorMode((*reinterpret_cast< vcg::GLW::ColorMode(*)>(_a[1]))); break; case 8: setTextureMode((*reinterpret_cast< vcg::GLW::TextureMode(*)>(_a[1]))); break; case 9: endEdit(); break; case 10: setSelectionRendering((*reinterpret_cast< bool(*)>(_a[1]))); break; case 11: suspendEditToggle(); break; case 12: setCurrentlyActiveLayer((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: sendViewPos((*reinterpret_cast< QString(*)>(_a[1]))); break; case 14: sendSurfacePos((*reinterpret_cast< QString(*)>(_a[1]))); break; case 15: sendViewDir((*reinterpret_cast< QString(*)>(_a[1]))); break; case 16: sendCameraPos((*reinterpret_cast< QString(*)>(_a[1]))); break; default: ; } _id -= 17; } return _id; }
void PhotoTexturingWidget::selectCurrentTexture(){ //int icam = ui.textureListWidget->currentRow(); QListWidgetItem* lwis = ui.textureListWidget->currentItem(); int textureID = lwis[0].type(); photoTexturer->applyTextureToMesh(mesh,textureID); glarea->setWindowModified(true); setGLAreaTextureMode(vcg::GLW::TMPerWedgeMulti); updateMainWindowMenus(); glarea->update(); }
void PhotoTexturingWidget::combineTextures(){ photoTexturer->combineTextures(mesh); //QListWidgetItem *item = new QListWidgetItem("combined",ui.textureListWidget,textureId); //item->setData(QVariant(textureId)); setGLAreaTextureMode(vcg::GLW::TMPerWedgeMulti); updateMainWindowMenus(); glarea->update(); update(); }
void PhotoTexturingWidget::calculateTextures(){ bool calcZBuffer =ui.checkBoxzBuffer->isChecked(); bool selectedCamOnly = ui.selectedCameraOnlyCheckBox->isChecked(); if (!selectedCamOnly){ photoTexturer->calculateMeshTextureForAllCameras(mesh,calcZBuffer); }else{ QList<QTableWidgetSelectionRange> ranges = ui.cameraTableWidget->selectedRanges(); for (int i=0;i<ranges.size();i++){ QTableWidgetSelectionRange range = ranges.at(i); for(int j=range.topRow();j<=range.bottomRow();j++){ Camera *cam = photoTexturer->cameras.at(j); photoTexturer->calculateMeshTextureForCamera(mesh,cam,calcZBuffer); } } } glarea->update(); update(); updateGLAreaTextures(); updateMainWindowMenus(); }