diff --git a/src/meshlab/layerDialog.cpp b/src/meshlab/layerDialog.cpp index fdebf5e00..4098e9236 100644 --- a/src/meshlab/layerDialog.cpp +++ b/src/meshlab/layerDialog.cpp @@ -57,8 +57,7 @@ LayerDialog::LayerDialog(QWidget *parent ) _globaldoctool->setVisible(false); /////////////////////////////////// - MLRenderingParametersTab* tabw = createRenderingParametersTab(); - if (tabw != NULL) + if (createRenderingParametersTab() != NULL) { tabw->setVisible(true); ui->renderingLayout->addWidget(tabw); @@ -671,6 +670,7 @@ void LayerDialog::updatePerMeshItemSelectionStatus() item->setBackground(3,QBrush(Qt::yellow)); item->setForeground(3,QBrush(Qt::blue)); ui->meshTreeWidget->setCurrentItem(item); + tabw->updatePerMeshRenderingAction(item->_rendertoolbar->getRenderingActions()); } else { diff --git a/src/meshlab/ml_render_gui.cpp b/src/meshlab/ml_render_gui.cpp index 846c320dc..393ac72c6 100644 --- a/src/meshlab/ml_render_gui.cpp +++ b/src/meshlab/ml_render_gui.cpp @@ -769,6 +769,18 @@ void MLRenderingParametersTab::setAssociatedMeshId( int meshid ) (*itt)->setAssociatedMeshId(meshid); } +void MLRenderingParametersTab::activateRenderingMode(int index) +{ + if ((index >= 0) && (index < _paract.size())) + { + MLRenderingAction* act = _paract[index]; + if (act != NULL) + { + act->setChecked(!act->isChecked()); + emit updateRenderingDataAccordingToAction(_meshid, act); + } + } +} void MLRenderingParametersTab::switchTab(int meshid,const QString& tabname) { @@ -786,6 +798,8 @@ void MLRenderingParametersTab::updateGUIAccordingToRenderingData(const MLRenderi void MLRenderingParametersTab::initGui(const QList& tab) { + _paract.resize(tab.size()); + int ii = 0; foreach(MLRenderingAction* ract,tab) { if (ract != NULL) @@ -794,12 +808,18 @@ void MLRenderingParametersTab::initGui(const QList& tab) if (fr != NULL) { _parframe[ract->text()] = fr; + MLRenderingAction* sister = NULL; + ract->createSisterAction(sister, this); + if (sister != NULL) + _paract[ii] = sister; addTab(fr,ract->icon(),""); connect(fr,SIGNAL(updateRenderingDataAccordingToActions(int,const QList&)),this,SIGNAL(updateRenderingDataAccordingToActions(int,const QList&))); connect(fr,SIGNAL(updateRenderingDataAccordingToAction(int,MLRenderingAction*)),this,SIGNAL(updateRenderingDataAccordingToAction(int,MLRenderingAction*))); } } + ++ii; } + connect(this, SIGNAL(tabBarDoubleClicked(int)), this, SLOT(activateRenderingMode(int))); } void MLRenderingParametersTab::updateVisibility(MeshModel* mm) @@ -808,6 +828,13 @@ void MLRenderingParametersTab::updateVisibility(MeshModel* mm) itt.value()->updateVisibility(mm); } +void MLRenderingParametersTab::updatePerMeshRenderingAction(QList& acts) +{ + _paract.clear(); + for(int ii = 0;ii < acts.size();++ii) + _paract.push_back(acts[ii]); +} + MLRenderingParametersTab::~MLRenderingParametersTab() { for(QMap::iterator it = _parframe.begin();it != _parframe.end();++it) diff --git a/src/meshlab/ml_render_gui.h b/src/meshlab/ml_render_gui.h index d91f7e445..328fd727a 100644 --- a/src/meshlab/ml_render_gui.h +++ b/src/meshlab/ml_render_gui.h @@ -351,6 +351,8 @@ public: void getCurrentRenderingDataAccordingToGUI(MLRenderingData& dt) const; int associatedMeshId() const {return _meshid;} void updateVisibility(MeshModel* mm); + void updatePerMeshRenderingAction(QList& acts); + private: void initGui(const QList& tab); @@ -358,6 +360,7 @@ private: public slots: void switchTab(int meshid,const QString& tabname); void setAssociatedMeshId(int meshid); + void activateRenderingMode(int index); signals: void updateRenderingDataAccordingToActions(int,const QList&); @@ -365,6 +368,7 @@ signals: private: QMap _parframe; + QVector _paract; }; #endif diff --git a/src/meshlab/ml_rendering_actions.cpp b/src/meshlab/ml_rendering_actions.cpp index c522d5572..405c77ddb 100644 --- a/src/meshlab/ml_rendering_actions.cpp +++ b/src/meshlab/ml_rendering_actions.cpp @@ -53,6 +53,11 @@ MLRenderingBBoxAction::MLRenderingBBoxAction( int meshid,QObject* parent) setText(QString("Bounding Box")); } +void MLRenderingBBoxAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingBBoxAction(meshId(), par); +} + void MLRenderingBBoxAction::updateRenderingData(MLRenderingData& rd) { MLPerViewGLOptions opts; @@ -85,6 +90,11 @@ MLRenderingPointsAction::MLRenderingPointsAction( int meshid,QObject* parent) setText(QString("Points")); } +void MLRenderingPointsAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPointsAction(meshId(), par); +} + void MLRenderingPointsAction::updateRenderingData(MLRenderingData& rd ) { rd.set(MLRenderingData::PR_POINTS,isChecked()); @@ -109,6 +119,11 @@ MLRenderingWireAction::MLRenderingWireAction( int meshid,QObject* parent) setText(QString("Wireframe")); } +void MLRenderingWireAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingWireAction(meshId(), par); +} + void MLRenderingWireAction::updateRenderingData(MLRenderingData& rd ) { rd.set(MLRenderingData::PR_WIREFRAME_TRIANGLES,isChecked()); @@ -133,6 +148,11 @@ MLRenderingSolidAction::MLRenderingSolidAction( int meshid,QObject* parent ) setText(QString("Fill")); } +void MLRenderingSolidAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingSolidAction(meshId(), par); +} + void MLRenderingSolidAction::updateRenderingData( MLRenderingData& rd ) { rd.set(MLRenderingData::PR_SOLID,isChecked()); @@ -155,6 +175,11 @@ MLRenderingFauxEdgeWireAction::MLRenderingFauxEdgeWireAction( int meshid,QObject setText(QString("Edges Wireframe")); } +void MLRenderingFauxEdgeWireAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingFauxEdgeWireAction(meshId(), par); +} + void MLRenderingFauxEdgeWireAction::updateRenderingData( MLRenderingData& rd ) { rd.set(MLRenderingData::PR_WIREFRAME_EDGES,isChecked()); @@ -182,6 +207,11 @@ MLRenderingPerFaceNormalAction::MLRenderingPerFaceNormalAction( int meshid,QObje setText(QString("Face")); } +void MLRenderingPerFaceNormalAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerFaceNormalAction(meshId(), par); +} + void MLRenderingPerFaceNormalAction::updateRenderingData(MLRenderingData& rd ) { rd.set(MLRenderingData::PR_SOLID,MLRenderingData::ATT_NAMES::ATT_FACENORMAL,isChecked()); @@ -204,6 +234,11 @@ MLRenderingPerVertexNormalAction::MLRenderingPerVertexNormalAction(MLRenderingDa setText(QString("Vert")); } +void MLRenderingPerVertexNormalAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerVertexNormalAction(_pm, meshId(), par); +} + void MLRenderingPerVertexNormalAction::updateRenderingData(MLRenderingData& rd ) { rd.set(_pm,MLRenderingData::ATT_NAMES::ATT_VERTNORMAL,isChecked()); @@ -226,6 +261,11 @@ MLRenderingPerVertTextCoordAction::MLRenderingPerVertTextCoordAction(MLRendering setText(QString("Enabled")); } +void MLRenderingPerVertTextCoordAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerVertTextCoordAction(_pm,meshId(), par); +} + void MLRenderingPerVertTextCoordAction::updateRenderingData(MLRenderingData& rd ) { rd.set(_pm,MLRenderingData::ATT_NAMES::ATT_VERTTEXTURE,isChecked()); @@ -251,6 +291,11 @@ MLRenderingPerWedgeTextCoordAction::MLRenderingPerWedgeTextCoordAction(int meshi { } +void MLRenderingPerWedgeTextCoordAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerWedgeTextCoordAction(meshId(), par); +} + void MLRenderingPerWedgeTextCoordAction::updateRenderingData(MLRenderingData& rd ) { rd.set(MLRenderingData::PR_SOLID,MLRenderingData::ATT_NAMES::ATT_WEDGETEXTURE,isChecked()); @@ -279,6 +324,11 @@ MLRenderingDoubleLightingAction::MLRenderingDoubleLightingAction( int meshid,QOb setText(QString("Enabled")); } +void MLRenderingDoubleLightingAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingDoubleLightingAction(meshId(), par); +} + void MLRenderingDoubleLightingAction::updateRenderingData(MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -309,6 +359,11 @@ MLRenderingFancyLightingAction::MLRenderingFancyLightingAction( int meshid,QObje setText(QString("Fancy Lighting")); } +void MLRenderingFancyLightingAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingFancyLightingAction(meshId(), par); +} + void MLRenderingFancyLightingAction::updateRenderingData(MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -343,6 +398,11 @@ MLRenderingNoShadingAction::MLRenderingNoShadingAction(MLRenderingData::PRIMITIV setToolTip(QString("Light on/off")); } +void MLRenderingNoShadingAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingNoShadingAction(_pm,meshId(), par); +} + void MLRenderingNoShadingAction::updateRenderingData(MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -411,6 +471,11 @@ MLRenderingFaceCullAction::MLRenderingFaceCullAction( int meshid,QObject* parent setText(QString("BackFace Culling")); } +void MLRenderingFaceCullAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingFaceCullAction(meshId(), par); +} + void MLRenderingFaceCullAction::updateRenderingData(MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -441,6 +506,11 @@ MLRenderingPerMeshColorAction::MLRenderingPerMeshColorAction(MLRenderingData::PR setText(QString("Mesh")); } +void MLRenderingPerMeshColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerMeshColorAction(_pm,meshId(), par); +} + void MLRenderingPerMeshColorAction::updateRenderingData(MLRenderingData& rd) { MLPerViewGLOptions opts; @@ -525,6 +595,11 @@ MLRenderingPerVertexColorAction::MLRenderingPerVertexColorAction(MLRenderingData setText(QString("Vert")); } +void MLRenderingPerVertexColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerVertexColorAction(_pm, meshId(), par); +} + void MLRenderingPerVertexColorAction::updateRenderingData(MLRenderingData& rd ) { rd.set(_pm,MLRenderingData::ATT_NAMES::ATT_VERTCOLOR,isChecked()); @@ -547,6 +622,11 @@ MLRenderingPerFaceColorAction::MLRenderingPerFaceColorAction(int meshid,QObject* setText(QString("Face")); } +void MLRenderingPerFaceColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPerFaceColorAction(meshId(), par); +} + void MLRenderingPerFaceColorAction::updateRenderingData(MLRenderingData& rd ) { rd.set(MLRenderingData::PR_SOLID,MLRenderingData::ATT_NAMES::ATT_FACECOLOR,isChecked()); @@ -574,6 +654,11 @@ MLRenderingUserDefinedColorAction::MLRenderingUserDefinedColorAction( MLRenderin setText(QString("User-Def")); } +void MLRenderingUserDefinedColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingUserDefinedColorAction(_pm,meshId(), par); +} + void MLRenderingUserDefinedColorAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -664,6 +749,11 @@ MLRenderingSelectionAction::MLRenderingSelectionAction( int meshid,QObject* pare setText(QString("Selection")); } +void MLRenderingSelectionAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingSelectionAction(meshId(), par); +} + void MLRenderingSelectionAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -694,6 +784,11 @@ MLRenderingPointsDotAction::MLRenderingPointsDotAction( int meshid,QObject* pare setText("Dot"); } +void MLRenderingPointsDotAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPointsDotAction(meshId(), par); +} + void MLRenderingPointsDotAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -725,6 +820,11 @@ MLRenderingVertSelectionAction::MLRenderingVertSelectionAction( int meshid,QObje setText("Vert Selection"); } +void MLRenderingVertSelectionAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingVertSelectionAction(meshId(), par); +} + void MLRenderingVertSelectionAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -756,6 +856,11 @@ MLRenderingFaceSelectionAction::MLRenderingFaceSelectionAction( int meshid,QObje setText("Face Selection"); } +void MLRenderingFaceSelectionAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingFaceSelectionAction(meshId(), par); +} + void MLRenderingFaceSelectionAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -786,6 +891,11 @@ MLRenderingBBoxPerMeshColorAction::MLRenderingBBoxPerMeshColorAction( int meshid setText("Mesh"); } +void MLRenderingBBoxPerMeshColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingBBoxPerMeshColorAction(meshId(), par); +} + void MLRenderingBBoxPerMeshColorAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -828,6 +938,11 @@ MLRenderingBBoxUserDefinedColorAction::MLRenderingBBoxUserDefinedColorAction( in setText("User-Def"); } +void MLRenderingBBoxUserDefinedColorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingBBoxUserDefinedColorAction(meshId(), par); +} + void MLRenderingBBoxUserDefinedColorAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -880,6 +995,11 @@ MLRenderingEdgeDecoratorAction::MLRenderingEdgeDecoratorAction( int meshid,QObje } +void MLRenderingEdgeDecoratorAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingEdgeDecoratorAction(meshId(), par); +} + void MLRenderingEdgeDecoratorAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -912,6 +1032,11 @@ MLRenderingEdgeBoundaryAction::MLRenderingEdgeBoundaryAction( int meshid,QObject setText("Edges Boundary"); } +void MLRenderingEdgeBoundaryAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingEdgeBoundaryAction(meshId(), par); +} + void MLRenderingEdgeBoundaryAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -944,6 +1069,11 @@ MLRenderingFaceBoundaryAction::MLRenderingFaceBoundaryAction( int meshid,QObject setText("Faces Boundary"); } +void MLRenderingFaceBoundaryAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingFaceBoundaryAction(meshId(), par); +} + void MLRenderingFaceBoundaryAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -976,6 +1106,11 @@ MLRenderingEdgeManifoldAction::MLRenderingEdgeManifoldAction( int meshid,QObject setText("No 2-Manifold Edges Decorator"); } +void MLRenderingEdgeManifoldAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingEdgeManifoldAction(meshId(), par); +} + void MLRenderingEdgeManifoldAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1008,6 +1143,11 @@ MLRenderingVertManifoldAction::MLRenderingVertManifoldAction( int meshid,QObject setText("No 2-Manifold Vertices Decorator"); } +void MLRenderingVertManifoldAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingVertManifoldAction(meshId(), par); +} + void MLRenderingVertManifoldAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1040,6 +1180,11 @@ MLRenderingTexBorderAction::MLRenderingTexBorderAction( int meshid,QObject* pare setText("Texture Borders Decorator"); } +void MLRenderingTexBorderAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingTexBorderAction(meshId(), par); +} + void MLRenderingTexBorderAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1072,6 +1217,11 @@ MLRenderingDotAction::MLRenderingDotAction( int meshid,QObject* parent ) setText("Dot Decorator"); } +void MLRenderingDotAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingDotAction(meshId(), par); +} + void MLRenderingDotAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1104,6 +1254,11 @@ MLRenderingPointsSizeAction::MLRenderingPointsSizeAction( int meshid,QObject* pa setText("Point Size"); } +void MLRenderingPointsSizeAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingPointsSizeAction(meshId(), par); +} + void MLRenderingPointsSizeAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1143,6 +1298,11 @@ MLRenderingWireWidthAction::MLRenderingWireWidthAction( int meshid,QObject* pare setText("Edge Width"); } +void MLRenderingWireWidthAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingWireWidthAction(meshId(), par); +} + void MLRenderingWireWidthAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; @@ -1196,6 +1356,11 @@ MLRenderingBBoxQuotedInfoAction::MLRenderingBBoxQuotedInfoAction( int meshid,QOb } +void MLRenderingBBoxQuotedInfoAction::createSisterAction(MLRenderingAction *& sisteract, QObject * par) +{ + sisteract = new MLRenderingBBoxQuotedInfoAction(meshId(), par); +} + void MLRenderingBBoxQuotedInfoAction::updateRenderingData( MLRenderingData& rd ) { MLPerViewGLOptions opts; diff --git a/src/meshlab/ml_rendering_actions.h b/src/meshlab/ml_rendering_actions.h index 4fb76e6bb..d3eb2f1b7 100644 --- a/src/meshlab/ml_rendering_actions.h +++ b/src/meshlab/ml_rendering_actions.h @@ -12,6 +12,7 @@ public: MLRenderingAction(QObject* parent); MLRenderingAction(int meshid,QObject* parent); + virtual void createSisterAction(MLRenderingAction*& sisteract,QObject* par) = 0; virtual void updateRenderingData(MLRenderingData& rd) = 0; virtual bool isRenderingDataEnabled(const MLRenderingData& rd) const = 0; virtual bool isCheckableConditionValid(MeshModel*) const {return true;} @@ -28,6 +29,8 @@ class MLRenderingBBoxAction : public MLRenderingAction public: MLRenderingBBoxAction(QObject* parent); MLRenderingBBoxAction(int meshid,QObject* parent); + + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); bool isOnOffOption(MLRenderingAction* onact = 0,MLRenderingAction* offact = 0); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; @@ -40,6 +43,7 @@ public: MLRenderingPointsAction(QObject* parent); MLRenderingPointsAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -51,6 +55,7 @@ public: MLRenderingWireAction(QObject* parent); MLRenderingWireAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -62,6 +67,7 @@ public: MLRenderingSolidAction(QObject* parent); MLRenderingSolidAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -73,6 +79,7 @@ public: MLRenderingFauxEdgeWireAction(QObject* parent); MLRenderingFauxEdgeWireAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; bool isCheckableConditionValid(MeshModel*) const; @@ -85,6 +92,7 @@ public: MLRenderingPerFaceNormalAction(QObject* parent); MLRenderingPerFaceNormalAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -96,6 +104,7 @@ public: MLRenderingPerVertexNormalAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingPerVertexNormalAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; private: @@ -109,6 +118,7 @@ public: MLRenderingPointsDotAction(QObject* parent); MLRenderingPointsDotAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -121,6 +131,7 @@ public: MLRenderingPerVertTextCoordAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingPerVertTextCoordAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; bool isCheckableConditionValid(MeshModel*) const; @@ -135,6 +146,7 @@ public: MLRenderingPerWedgeTextCoordAction(QObject* parent); MLRenderingPerWedgeTextCoordAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; bool isCheckableConditionValid(MeshModel*) const; @@ -147,6 +159,7 @@ public: MLRenderingDoubleLightingAction(QObject* parent); MLRenderingDoubleLightingAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -158,6 +171,7 @@ public: MLRenderingFancyLightingAction(QObject* parent); MLRenderingFancyLightingAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -169,6 +183,7 @@ public: MLRenderingNoShadingAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingNoShadingAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; private: @@ -182,6 +197,7 @@ public: MLRenderingFaceCullAction(QObject* parent); MLRenderingFaceCullAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -193,6 +209,7 @@ public: MLRenderingPerMeshColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingPerMeshColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; void setColor(const QColor& col); @@ -211,6 +228,7 @@ public: MLRenderingBBoxPerMeshColorAction(QObject* parent); MLRenderingBBoxPerMeshColorAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; void setColor(const QColor& col); @@ -228,6 +246,7 @@ public: MLRenderingPerVertexColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingPerVertexColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; private: @@ -241,6 +260,7 @@ public: MLRenderingPerFaceColorAction(QObject* parent); MLRenderingPerFaceColorAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; bool isCheckableConditionValid(MeshModel*) const; @@ -253,6 +273,7 @@ public: MLRenderingUserDefinedColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,QObject* parent); MLRenderingUserDefinedColorAction(MLRenderingData::PRIMITIVE_MODALITY pm,int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; void setColor(const vcg::Color4b& col); @@ -271,6 +292,7 @@ public: MLRenderingBBoxUserDefinedColorAction(QObject* parent); MLRenderingBBoxUserDefinedColorAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; void setColor(const QColor& col); @@ -292,6 +314,7 @@ public: void setValue(float value) {_value = value;} float getValue() {return _value;} + virtual void createSisterAction(MLRenderingAction*& sisteract, QObject* par) = 0; virtual void updateRenderingData(MLRenderingData& rd) = 0; virtual bool isRenderingDataEnabled(const MLRenderingData& rd) const = 0; virtual float getValueFromRenderingData(const MLRenderingData& rd) const = 0; @@ -306,6 +329,7 @@ public: MLRenderingPointsSizeAction(QObject* parent); MLRenderingPointsSizeAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; float getValueFromRenderingData(const MLRenderingData& rd) const; @@ -318,6 +342,7 @@ public: MLRenderingWireWidthAction(QObject* parent); MLRenderingWireWidthAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; float getValueFromRenderingData(const MLRenderingData& rd) const; @@ -330,6 +355,7 @@ public: MLRenderingSelectionAction(QObject* parent); MLRenderingSelectionAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -341,6 +367,7 @@ public: MLRenderingVertSelectionAction(QObject* parent); MLRenderingVertSelectionAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -352,6 +379,7 @@ public: MLRenderingFaceSelectionAction(QObject* parent); MLRenderingFaceSelectionAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -363,6 +391,7 @@ public: MLRenderingEdgeDecoratorAction(QObject* parent); MLRenderingEdgeDecoratorAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -374,6 +403,7 @@ public: MLRenderingEdgeBoundaryAction(QObject* parent); MLRenderingEdgeBoundaryAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -385,6 +415,7 @@ public: MLRenderingFaceBoundaryAction(QObject* parent); MLRenderingFaceBoundaryAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -396,6 +427,7 @@ public: MLRenderingEdgeManifoldAction(QObject* parent); MLRenderingEdgeManifoldAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -407,6 +439,7 @@ public: MLRenderingVertManifoldAction(QObject* parent); MLRenderingVertManifoldAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -419,6 +452,7 @@ public: MLRenderingTexBorderAction(QObject* parent); MLRenderingTexBorderAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -441,6 +475,7 @@ public: MLRenderingDotAction(QObject* parent); MLRenderingDotAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; }; @@ -452,6 +487,7 @@ public: MLRenderingBBoxQuotedInfoAction(QObject* parent); MLRenderingBBoxQuotedInfoAction(int meshid,QObject* parent); + void createSisterAction(MLRenderingAction*& sisteract, QObject* par); void updateRenderingData(MLRenderingData& rd); bool isRenderingDataEnabled(const MLRenderingData& rd) const; };