mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-18 18:44:39 +00:00
- first reasonable instance of the new rendering gui
- billions of bugs - all the user defined color pickers miss!
This commit is contained in:
parent
8cd7a93a7a
commit
dffcd6e07b
@ -373,7 +373,8 @@ void LayerDialog::updateTable(const MLSceneGLSharedDataContext::PerMeshRendering
|
||||
rendertb->setIconSize(QSize(16,16));
|
||||
rendertb->setAccordingToRenderingData((*rdit));
|
||||
connect(rendertb,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SLOT(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
MeshTreeWidgetItem* item = new MeshTreeWidgetItem(mmd,ui->meshTreeWidget,rendertb);
|
||||
connect(rendertb,SIGNAL(activatedAction(MLRenderingAction*)),this,SLOT(actionActivated(MLRenderingAction*)));
|
||||
MeshTreeWidgetItem* item = new MeshTreeWidgetItem(mmd,ui->meshTreeWidget,rendertb);
|
||||
item->setExpanded(expandedMap.value(qMakePair(item->_meshid,-1)));
|
||||
/* QTreeWidgetItem* childitem = new QTreeWidgetItem();
|
||||
item->addChild(childitem);
|
||||
@ -732,6 +733,15 @@ void LayerDialog::updateRenderingDataAccordingToActions(int meshid,const QList<M
|
||||
mw->GLA()->update();
|
||||
}
|
||||
|
||||
void LayerDialog::actionActivated( MLRenderingAction* ract )
|
||||
{
|
||||
if ((mw == NULL) || (ract == NULL))
|
||||
return;
|
||||
MLRenderingData dt;
|
||||
mw->getRenderingData(ract->meshId(),dt);
|
||||
tabw->switchTab(ract->meshId(),ract->text(),dt);
|
||||
}
|
||||
|
||||
MeshTreeWidgetItem::MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,MLRenderingToolbar* rendertoolbar)
|
||||
:QTreeWidgetItem(tree),_rendertoolbar(rendertoolbar)
|
||||
{
|
||||
@ -751,16 +761,6 @@ MeshTreeWidgetItem::MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,ML
|
||||
}
|
||||
}
|
||||
|
||||
MeshTreeWidgetItem::MeshTreeWidgetItem(QTreeWidget* tree,MLRenderingToolbar* rendertoolbar)
|
||||
:QTreeWidgetItem(tree),_rendertoolbar(rendertoolbar)
|
||||
{
|
||||
setIcon(0,QIcon(":/images/layer_eye_open.png"));
|
||||
|
||||
if (rendertoolbar != NULL)
|
||||
tree->setItemWidget(this,3,_rendertoolbar);
|
||||
_meshid = -1;
|
||||
}
|
||||
|
||||
MeshTreeWidgetItem::~MeshTreeWidgetItem()
|
||||
{
|
||||
/*if (addwid->parent() == NULL)
|
||||
|
||||
@ -56,7 +56,6 @@ class MeshTreeWidgetItem : public QTreeWidgetItem
|
||||
{
|
||||
public:
|
||||
MeshTreeWidgetItem(MeshModel* meshmodel,QTreeWidget* tree,MLRenderingToolbar* rendertoolbar);
|
||||
MeshTreeWidgetItem(QTreeWidget* tree,MLRenderingToolbar* rendertoolbar);
|
||||
~MeshTreeWidgetItem();
|
||||
void updateVisibility(bool isvisible);
|
||||
|
||||
@ -123,6 +122,7 @@ public slots:
|
||||
void showContextMenu(const QPoint& pos);
|
||||
void adaptLayout(QTreeWidgetItem * item);
|
||||
void updateRenderingDataAccordingToActions(int meshid,const QList<MLRenderingAction*>&);
|
||||
void actionActivated(MLRenderingAction* ract);
|
||||
|
||||
private:
|
||||
Ui::layerDialog* ui;
|
||||
|
||||
@ -56,7 +56,11 @@ void MLRenderingToolbar::toggle( QAction* act)
|
||||
}
|
||||
}
|
||||
if (ract != NULL)
|
||||
{
|
||||
emit updateRenderingDataAccordingToActions(_meshid,_acts);
|
||||
if (ract->isChecked())
|
||||
emit activatedAction(ract);
|
||||
}
|
||||
}
|
||||
|
||||
void MLRenderingToolbar::setAccordingToRenderingData(const MLRenderingData& dt)
|
||||
@ -89,88 +93,6 @@ QList<MLRenderingAction*>& MLRenderingToolbar::getRenderingActions()
|
||||
}
|
||||
|
||||
|
||||
|
||||
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame(QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
|
||||
QLabel* shadelab = new QLabel("Shading",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
shadelab->setFont(boldfont);
|
||||
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
|
||||
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
|
||||
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
|
||||
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
|
||||
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* colorlab = new QLabel("Color",this);
|
||||
colorlab->setFont(boldfont);
|
||||
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
|
||||
_colortool = new MLRenderingToolbar(_meshid,true,this);
|
||||
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_SOLID,_meshid,this));
|
||||
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
|
||||
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* textlab = new QLabel("Texture Coord",this);
|
||||
textlab->setFont(boldfont);
|
||||
layout->addWidget(textlab,2,0,Qt::AlignLeft);
|
||||
_texttool = new MLRenderingToolbar(this);
|
||||
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
|
||||
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
|
||||
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
|
||||
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_shadingtool->setAccordingToRenderingData(dt);
|
||||
_colortool->setAccordingToRenderingData(dt);
|
||||
_texttool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_shadingtool->setAssociatedMeshId(meshid);
|
||||
_colortool->setAssociatedMeshId(meshid);
|
||||
_texttool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
MLRenderingSolidParametersFrame::~MLRenderingSolidParametersFrame()
|
||||
{
|
||||
delete _shadingtool;
|
||||
delete _colortool;
|
||||
delete _texttool;
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::getAllRenderingActions( QList<MLRenderingAction*>& acts )
|
||||
{
|
||||
acts.append(_shadingtool->getRenderingActions());
|
||||
acts.append(_colortool->getRenderingActions());
|
||||
acts.append(_texttool->getRenderingActions());
|
||||
}
|
||||
|
||||
//MLRenderingParametersFrame::~MLRenderingParametersFrame()
|
||||
//{
|
||||
//
|
||||
@ -231,6 +153,9 @@ void MLRenderingSideToolbar::initGui()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
MLRenderingParametersFrame::MLRenderingParametersFrame( int meshid,QWidget* parent )
|
||||
:QFrame(parent),_meshid(-1)
|
||||
{
|
||||
@ -247,21 +172,359 @@ MLRenderingParametersFrame* MLRenderingParametersFrame::factory( MLRenderingActi
|
||||
if (qobject_cast<MLRenderingSolidAction*>(act) != NULL)
|
||||
return new MLRenderingSolidParametersFrame(meshid,parent);
|
||||
|
||||
/*if (qobject_cast<MLRenderingPointsAction*>(act) != NULL)
|
||||
if (qobject_cast<MLRenderingPointsAction*>(act) != NULL)
|
||||
return new MLRenderingPointsParametersFrame(meshid,parent);
|
||||
|
||||
if (qobject_cast<MLRenderingWireAction*>(act) != NULL)
|
||||
return new MLRenderingWireParametersFrame(meshid,parent);
|
||||
|
||||
if (qobject_cast<MLRenderingLightOnOffAction*>(act) != NULL)
|
||||
return new MLRenderingLightingParametersFrame(meshid,parent);*/
|
||||
return new MLRenderingLightingParametersFrame(meshid,parent);
|
||||
|
||||
/*if (qobject_cast<MLRenderingLightOnOffAction*>(act) != NULL)
|
||||
return new MLRenderingSolidParametersFrame(meshid,parent);*/
|
||||
if (qobject_cast<MLRenderingBBoxAction*>(act) != NULL)
|
||||
return new MLRenderingBBoxParametersFrame(meshid,parent);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame(QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingSolidParametersFrame::MLRenderingSolidParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
|
||||
QLabel* shadelab = new QLabel("Shading",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
shadelab->setFont(boldfont);
|
||||
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
|
||||
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
|
||||
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
|
||||
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
|
||||
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
|
||||
QLabel* colorlab = new QLabel("Color",this);
|
||||
colorlab->setFont(boldfont);
|
||||
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
|
||||
_colortool = new MLRenderingToolbar(_meshid,true,this);
|
||||
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_SOLID,_meshid,this));
|
||||
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
|
||||
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
|
||||
QLabel* textlab = new QLabel("Texture Coord",this);
|
||||
textlab->setFont(boldfont);
|
||||
layout->addWidget(textlab,2,0,Qt::AlignLeft);
|
||||
_texttool = new MLRenderingToolbar(this);
|
||||
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
|
||||
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
|
||||
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
|
||||
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_shadingtool->setAccordingToRenderingData(dt);
|
||||
_colortool->setAccordingToRenderingData(dt);
|
||||
_texttool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingSolidParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_shadingtool->setAssociatedMeshId(meshid);
|
||||
_colortool->setAssociatedMeshId(meshid);
|
||||
_texttool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
MLRenderingSolidParametersFrame::~MLRenderingSolidParametersFrame()
|
||||
{
|
||||
delete _shadingtool;
|
||||
delete _colortool;
|
||||
delete _texttool;
|
||||
}
|
||||
|
||||
MLRenderingWireParametersFrame::MLRenderingWireParametersFrame( QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingWireParametersFrame::MLRenderingWireParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingWireParametersFrame::~MLRenderingWireParametersFrame()
|
||||
{
|
||||
delete _wiretool;
|
||||
delete _shadingtool;
|
||||
delete _colortool;
|
||||
delete _texttool;
|
||||
}
|
||||
|
||||
void MLRenderingWireParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_shadingtool->setAccordingToRenderingData(dt);
|
||||
_colortool->setAccordingToRenderingData(dt);
|
||||
_texttool->setAccordingToRenderingData(dt);
|
||||
_wiretool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingWireParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_shadingtool->setAssociatedMeshId(meshid);
|
||||
_colortool->setAssociatedMeshId(meshid);
|
||||
_texttool->setAssociatedMeshId(meshid);
|
||||
_wiretool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
void MLRenderingWireParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
|
||||
QLabel* shadelab = new QLabel("Shading",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
shadelab->setFont(boldfont);
|
||||
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
|
||||
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
|
||||
_shadingtool->addRenderingAction(new MLRenderingFlatAction(_meshid,this));
|
||||
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
|
||||
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* colorlab = new QLabel("Color",this);
|
||||
colorlab->setFont(boldfont);
|
||||
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
|
||||
_colortool = new MLRenderingToolbar(_meshid,true,this);
|
||||
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerFaceColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_WIREFRAME_TRIANGLES,_meshid,this));
|
||||
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
|
||||
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* textlab = new QLabel("Texture Coord",this);
|
||||
textlab->setFont(boldfont);
|
||||
layout->addWidget(textlab,2,0,Qt::AlignLeft);
|
||||
_texttool = new MLRenderingToolbar(this);
|
||||
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
|
||||
_texttool->addRenderingAction(new MLRenderingPerWedgeTextCoordAction(_meshid,this));
|
||||
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
|
||||
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* wirelab = new QLabel("Wire Modality",this);
|
||||
wirelab->setFont(boldfont);
|
||||
layout->addWidget(wirelab,3,0,Qt::AlignLeft);
|
||||
_wiretool = new MLRenderingToolbar(this);
|
||||
_wiretool->setToolButtonStyle(Qt::ToolButtonTextOnly);
|
||||
_wiretool->addRenderingAction(new MLRenderingWireAction(_meshid,this));
|
||||
_wiretool->addRenderingAction(new MLRenderingEdgeWireAction(_meshid,this));
|
||||
layout->addWidget(_wiretool,3,1,Qt::AlignLeft);
|
||||
connect(_wiretool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
MLRenderingPointsParametersFrame::MLRenderingPointsParametersFrame( QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
|
||||
MLRenderingPointsParametersFrame::MLRenderingPointsParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingPointsParametersFrame::~MLRenderingPointsParametersFrame()
|
||||
{
|
||||
delete _shadingtool;
|
||||
delete _colortool;
|
||||
delete _texttool;
|
||||
}
|
||||
|
||||
void MLRenderingPointsParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_shadingtool->setAccordingToRenderingData(dt);
|
||||
_colortool->setAccordingToRenderingData(dt);
|
||||
_texttool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingPointsParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_shadingtool->setAssociatedMeshId(meshid);
|
||||
_colortool->setAssociatedMeshId(meshid);
|
||||
_texttool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
void MLRenderingPointsParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
_shadingtool = new MLRenderingToolbar(_meshid,true,this);
|
||||
QLabel* shadelab = new QLabel("Shading",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
shadelab->setFont(boldfont);
|
||||
layout->addWidget(shadelab,0,0,Qt::AlignLeft);
|
||||
_shadingtool->addRenderingAction(new MLRenderingSmoothAction(_meshid,this));
|
||||
layout->addWidget(_shadingtool,0,1,Qt::AlignLeft);
|
||||
connect(_shadingtool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* colorlab = new QLabel("Color",this);
|
||||
colorlab->setFont(boldfont);
|
||||
layout->addWidget(colorlab,1,0,Qt::AlignLeft);
|
||||
_colortool = new MLRenderingToolbar(_meshid,true,this);
|
||||
_colortool->addRenderingAction(new MLRenderingPerVertexColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_POINTS,_meshid,this));
|
||||
layout->addWidget(_colortool,1,1,Qt::AlignLeft);
|
||||
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
QLabel* textlab = new QLabel("Texture Coord",this);
|
||||
textlab->setFont(boldfont);
|
||||
layout->addWidget(textlab,2,0,Qt::AlignLeft);
|
||||
_texttool = new MLRenderingToolbar(this);
|
||||
_texttool->addRenderingAction(new MLRenderingPerVertTextCoordAction(_meshid,this));
|
||||
layout->addWidget(_texttool,2,1,Qt::AlignLeft);
|
||||
connect(_texttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
MLRenderingLightingParametersFrame::MLRenderingLightingParametersFrame( QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingLightingParametersFrame::MLRenderingLightingParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
|
||||
MLRenderingLightingParametersFrame::~MLRenderingLightingParametersFrame()
|
||||
{
|
||||
delete _lighttool;
|
||||
}
|
||||
|
||||
void MLRenderingLightingParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_lighttool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingLightingParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_lighttool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
void MLRenderingLightingParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
_lighttool = new MLRenderingToolbar(_meshid,true,this);
|
||||
QLabel* lightlab = new QLabel("Lighting Options",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
lightlab->setFont(boldfont);
|
||||
layout->addWidget(lightlab,0,0,Qt::AlignLeft);
|
||||
_lighttool->addRenderingAction(new MLRenderingFancyLightingAction(_meshid,this));
|
||||
_lighttool->addRenderingAction(new MLRenderingDoubleLightingAction(_meshid,this));
|
||||
layout->addWidget(_lighttool,0,1,Qt::AlignLeft);
|
||||
connect(_lighttool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
MLRenderingBBoxParametersFrame::MLRenderingBBoxParametersFrame( QWidget* parent )
|
||||
:MLRenderingParametersFrame(-1,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingBBoxParametersFrame::MLRenderingBBoxParametersFrame( int meshid,QWidget* parent )
|
||||
:MLRenderingParametersFrame(meshid,parent)
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
MLRenderingBBoxParametersFrame::~MLRenderingBBoxParametersFrame()
|
||||
{
|
||||
delete _colortool;
|
||||
}
|
||||
|
||||
void MLRenderingBBoxParametersFrame::setPrimitiveButtonStatesAccordingToRenderingData( const MLRenderingData& dt )
|
||||
{
|
||||
_colortool->setAccordingToRenderingData(dt);
|
||||
}
|
||||
|
||||
void MLRenderingBBoxParametersFrame::setAssociatedMeshId( int meshid )
|
||||
{
|
||||
_meshid = meshid;
|
||||
_colortool->setAssociatedMeshId(meshid);
|
||||
}
|
||||
|
||||
void MLRenderingBBoxParametersFrame::initGui()
|
||||
{
|
||||
setAutoFillBackground(true);
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
QLabel* colorlab = new QLabel("Color",this);
|
||||
QFont boldfont;
|
||||
boldfont.setBold(true);
|
||||
colorlab->setFont(boldfont);
|
||||
layout->addWidget(colorlab,0,0,Qt::AlignLeft);
|
||||
_colortool = new MLRenderingToolbar(_meshid,true,this);
|
||||
_colortool->addRenderingAction(new MLRenderingPerMeshColorAction(_meshid,this));
|
||||
_colortool->addRenderingAction(new MLRenderingUserDefinedColorAction(vcg::GLMeshAttributesInfo::PR_BBOX,_meshid,this));
|
||||
layout->addWidget(_colortool,0,1,Qt::AlignLeft);
|
||||
connect(_colortool,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>&)));
|
||||
|
||||
setMinimumSize(layout->sizeHint());
|
||||
setLayout(layout);
|
||||
showNormal();
|
||||
adjustSize();
|
||||
}
|
||||
|
||||
|
||||
MLRenderingParametersTab::MLRenderingParametersTab( int meshid,const QList<MLRenderingAction*>& tab, QWidget* parent )
|
||||
:QTabWidget(parent),_meshid(meshid)
|
||||
{
|
||||
@ -276,11 +539,12 @@ void MLRenderingParametersTab::setAssociatedMeshId( int meshid )
|
||||
}
|
||||
|
||||
|
||||
void MLRenderingParametersTab::switchTab( const QString& name )
|
||||
void MLRenderingParametersTab::switchTab(int meshid,const QString& tabname,const MLRenderingData& dt)
|
||||
{
|
||||
QMap<QString,MLRenderingParametersFrame*>::iterator itt = _parframe.find(name);
|
||||
QMap<QString,MLRenderingParametersFrame*>::iterator itt = _parframe.find(tabname);
|
||||
if (itt != _parframe.end())
|
||||
setCurrentWidget((*itt));
|
||||
setAssociatedMeshIdAndRenderingData(meshid,dt);
|
||||
}
|
||||
|
||||
void MLRenderingParametersTab::setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt )
|
||||
|
||||
@ -58,6 +58,7 @@ private slots:
|
||||
|
||||
signals:
|
||||
void updateRenderingDataAccordingToActions(int,const QList<MLRenderingAction*>& acts);
|
||||
void activatedAction(MLRenderingAction*);
|
||||
|
||||
private:
|
||||
//if meshid is -1 it means that the actions are intended to be deployed to all the document and not to a specific mesh model
|
||||
@ -85,7 +86,6 @@ public:
|
||||
virtual ~MLRenderingParametersFrame();
|
||||
virtual void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt) = 0;
|
||||
virtual void setAssociatedMeshId(int meshid) = 0;
|
||||
virtual void getAllRenderingActions(QList<MLRenderingAction*>& acts) = 0;
|
||||
static MLRenderingParametersFrame* factory(MLRenderingAction* act,int meshid,QWidget* parent);
|
||||
static void destroy(MLRenderingParametersFrame* pf);
|
||||
|
||||
@ -105,7 +105,6 @@ public:
|
||||
~MLRenderingSolidParametersFrame();
|
||||
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
void getAllRenderingActions(QList<MLRenderingAction*>& acts);
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
@ -114,22 +113,71 @@ private:
|
||||
MLRenderingToolbar* _texttool;
|
||||
};
|
||||
|
||||
//class MLRenderingSolidParametersFrame : public MLRenderingParametersFrame
|
||||
//{
|
||||
// Q_OBJECT
|
||||
//public:
|
||||
// MLRenderingSolidParametersFrame(QWidget* parent);
|
||||
// MLRenderingSolidParametersFrame(int meshid,QWidget* parent);
|
||||
// ~MLRenderingSolidParametersFrame();
|
||||
// void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
// void setAssociatedMeshId(int meshid);
|
||||
//
|
||||
//private:
|
||||
// void initGui();
|
||||
// MLRenderingToolbar* _shadingtool;
|
||||
// MLRenderingToolbar* _colortool;
|
||||
// MLRenderingToolbar* _texttool;
|
||||
//};
|
||||
class MLRenderingWireParametersFrame : public MLRenderingParametersFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MLRenderingWireParametersFrame(QWidget* parent);
|
||||
MLRenderingWireParametersFrame(int meshid,QWidget* parent);
|
||||
~MLRenderingWireParametersFrame();
|
||||
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
MLRenderingToolbar* _wiretool;
|
||||
MLRenderingToolbar* _shadingtool;
|
||||
MLRenderingToolbar* _colortool;
|
||||
MLRenderingToolbar* _texttool;
|
||||
};
|
||||
|
||||
class MLRenderingPointsParametersFrame : public MLRenderingParametersFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MLRenderingPointsParametersFrame(QWidget* parent);
|
||||
MLRenderingPointsParametersFrame(int meshid,QWidget* parent);
|
||||
~MLRenderingPointsParametersFrame();
|
||||
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
MLRenderingToolbar* _shadingtool;
|
||||
MLRenderingToolbar* _colortool;
|
||||
MLRenderingToolbar* _texttool;
|
||||
};
|
||||
|
||||
class MLRenderingLightingParametersFrame : public MLRenderingParametersFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MLRenderingLightingParametersFrame(QWidget* parent);
|
||||
MLRenderingLightingParametersFrame(int meshid,QWidget* parent);
|
||||
~MLRenderingLightingParametersFrame();
|
||||
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
MLRenderingToolbar* _lighttool;
|
||||
};
|
||||
|
||||
class MLRenderingBBoxParametersFrame : public MLRenderingParametersFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MLRenderingBBoxParametersFrame(QWidget* parent);
|
||||
MLRenderingBBoxParametersFrame(int meshid,QWidget* parent);
|
||||
~MLRenderingBBoxParametersFrame();
|
||||
void setPrimitiveButtonStatesAccordingToRenderingData(const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
MLRenderingToolbar* _colortool;
|
||||
};
|
||||
|
||||
//
|
||||
//
|
||||
//class MLRenderingSolidParametersFrame : public MLRenderingParametersFrame
|
||||
@ -182,7 +230,7 @@ private:
|
||||
|
||||
int _meshid;
|
||||
public slots:
|
||||
void switchTab(const QString& name);
|
||||
void switchTab(int meshid,const QString& tabname,const MLRenderingData& dt);
|
||||
void setAssociatedMeshId(int meshid);
|
||||
|
||||
signals:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user