diff --git a/src/meshlab/stdpardialog.cpp b/src/meshlab/stdpardialog.cpp index 1ce99d853..1a3cdc81d 100644 --- a/src/meshlab/stdpardialog.cpp +++ b/src/meshlab/stdpardialog.cpp @@ -402,8 +402,7 @@ MeshlabStdDialog::~MeshlabStdDialog() QLabel *absLab=new QLabel(" world unit"); QLabel *percLab=new QLabel(" perc on"+QString("(%1 .. %2)").arg(m_min).arg(m_max)+""); - //int row = gridLay->rowCount() - 1; - gridLay->addWidget(fieldDesc,row,0,Qt::AlignHCenter); + gridLay->addWidget(fieldDesc,row,0,Qt::AlignHCenter); QGridLayout* lay = new QGridLayout(p); lay->addWidget(absLab,0,0,Qt::AlignHCenter); @@ -585,9 +584,9 @@ void Point3fWidget::setWidgetValue( const Value& nv ) coordSB[ii]->setText(QString::number(nv.getPoint3f()[ii],'g',3)); } /********************/ -// ShotdWidget Implementation +// ShotfWidget Implementation -ShotdWidget::ShotdWidget(QWidget *p, RichShotd* rpf, QWidget *gla_curr): MeshLabWidget(p,rpf) +ShotfWidget::ShotfWidget(QWidget *p, RichShotf* rpf, QWidget *gla_curr): MeshLabWidget(p,rpf) { paramName = rpf->name; @@ -600,27 +599,40 @@ ShotdWidget::ShotdWidget(QWidget *p, RichShotd* rpf, QWidget *gla_curr): MeshLab QHBoxLayout* lay = new QHBoxLayout(p); - this->setValue(paramName,rp->val->getShotd()); + this->setValue(paramName,rp->val->getShotf()); if(gla_curr) // if we have a connection to the current glarea we can setup the additional button for getting the current view direction. { getShotButton = new QPushButton("Get shot",p); lay->addWidget(getShotButton); + QStringList names; + names << "Current Trackball"; + names << "Current Raster"; + + getShotCombo = new QComboBox(p); + getShotCombo->addItems(names); + lay->addWidget(getShotCombo); + connect(getShotCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(getShot())); connect(getShotButton,SIGNAL(clicked()),this,SLOT(getShot())); - connect(gla_curr,SIGNAL(transmitShot(QString,vcg::Shotd)),this,SLOT(setValue(QString,vcg::Shotd))); - connect(this,SIGNAL(askShot(QString)),gla_curr,SLOT(sendShot(QString))); + connect(gla_curr,SIGNAL(transmitShot(QString,vcg::Shotf)),this,SLOT(setValue(QString,vcg::Shotf))); + connect(this,SIGNAL(askViewerShot(QString)),gla_curr,SLOT(sendViewerShot(QString))); + connect(this,SIGNAL(askRasterShot(QString)),gla_curr,SLOT(sendRasterShot(QString))); } gridLay->addLayout(lay,row,1,Qt::AlignTop); } -void ShotdWidget::getShot() +void ShotfWidget::getShot() { - emit askShot(paramName); + int index = getShotCombo->currentIndex(); + if(index==0) + emit askViewerShot(paramName); + else + emit askRasterShot(paramName); } -ShotdWidget::~ShotdWidget() {} +ShotfWidget::~ShotfWidget() {} -void ShotdWidget::setValue(QString name,Shotd newVal) +void ShotfWidget::setValue(QString name,Shotf newVal) { if(name==paramName) { @@ -628,24 +640,24 @@ void ShotdWidget::setValue(QString name,Shotd newVal) } } -vcg::Shotd ShotdWidget::getValue() +vcg::Shotf ShotfWidget::getValue() { return curShot; } -void ShotdWidget::collectWidgetValue() +void ShotfWidget::collectWidgetValue() { - rp->val->set(ShotdValue(curShot)); + rp->val->set(ShotfValue(curShot)); } -void ShotdWidget::resetWidgetValue() +void ShotfWidget::resetWidgetValue() { - curShot = rp->pd->defVal->getShotd(); + curShot = rp->pd->defVal->getShotf(); } -void ShotdWidget::setWidgetValue( const Value& nv ) +void ShotfWidget::setWidgetValue( const Value& nv ) { - curShot = nv.getShotd(); + curShot = nv.getShotf(); } /********************/ @@ -735,7 +747,7 @@ MeshWidget::MeshWidget(QWidget *p, RichMesh* rpar) for(int i=0;imeshList.size();++i) { - QString shortName = md->meshList.at(i)->shortName(); + QString shortName = md->meshList.at(i)->shortName(); meshNames.push_back(shortName); if(md->meshList.at(i) == rp->pd->defVal->getMesh()) defaultMeshIndex = i; } @@ -1423,7 +1435,7 @@ void RichParameterToQTableWidgetItemConstructor::visit( RichPoint3f& pd ) lastCreated = new QTableWidgetItem(pst/*,lst*/); } -void RichParameterToQTableWidgetItemConstructor::visit( RichShotd& pd ) +void RichParameterToQTableWidgetItemConstructor::visit( RichShotf& pd ) { assert(0); /// lastCreated = new QTableWidgetItem(QString("TODO")/*,lst*/); diff --git a/src/meshlab/stdpardialog.h b/src/meshlab/stdpardialog.h index 58c56ef17..3543cc63e 100644 --- a/src/meshlab/stdpardialog.h +++ b/src/meshlab/stdpardialog.h @@ -262,16 +262,19 @@ protected: }; -//public QHBoxLayout, -class ShotdWidget : public MeshLabWidget +/// Widget to enter a Shot, +/// if at the creation you provide a pointer to a GLArea (the mesh viewing window) +/// the widget has a combo and a button to get shot from different places. + +class ShotfWidget : public MeshLabWidget { Q_OBJECT public: - ShotdWidget(QWidget *p, RichShotd* rpf, QWidget *gla); - ~ShotdWidget(); + ShotfWidget(QWidget *p, RichShotf* rpf, QWidget *gla); + ~ShotfWidget(); QString paramName; - vcg::Shotd getValue(); + vcg::Shotf getValue(); void collectWidgetValue(); void resetWidgetValue(); @@ -279,14 +282,16 @@ public: public slots: void getShot(); - void setValue(QString name, vcg::Shotd val); + void setValue(QString name, vcg::Shotf val); signals: - void askShot(QString); + void askRasterShot(QString); + void askViewerShot(QString); protected: - vcg::Shotd curShot; + vcg::Shotf curShot; QLineEdit * shotLE; QPushButton *getShotButton; + QComboBox *getShotCombo; QLabel* descLab; }; @@ -645,7 +650,7 @@ public: void visit(RichString& pd){lastCreated = new StringWidget(par,&pd);}; void visit(RichMatrix44f& /*pd*/){assert(0);/*TO BE IMPLEMENTED*/ /*lastCreated = new Matrix44fWidget(par,&pd);*/}; void visit(RichPoint3f& pd){lastCreated = new Point3fWidget(par,&pd,reinterpret_cast(par)->gla);}; - void visit(RichShotd& pd){lastCreated = new ShotdWidget(par,&pd,reinterpret_cast(par)->gla);}; + void visit(RichShotf& pd){lastCreated = new ShotfWidget(par,&pd,reinterpret_cast(par)->gla);}; void visit(RichColor& pd){lastCreated = new ColorWidget(par,&pd);}; void visit(RichAbsPerc& pd){lastCreated = new AbsPercWidget(par,&pd);}; void visit(RichEnum& pd){lastCreated = new EnumWidget(par,&pd);}; @@ -675,7 +680,7 @@ public: void visit(RichString& pd); void visit(RichMatrix44f& /*pd*/){assert(0);}; void visit(RichPoint3f& pd); - void visit(RichShotd& pd); + void visit(RichShotf& pd); void visit(RichColor& pd); void visit(RichAbsPerc& pd); void visit(RichEnum& pd);