From e797720182579df8aadd7da0f2da91ae63e551b0 Mon Sep 17 00:00:00 2001 From: "yoann.audouin" Date: Thu, 14 Mar 2024 08:11:26 +0100 Subject: [PATCH] [box #38049][EDF] (2023-T3) Usages in SMESH --- src/SMESHGUI/SMESHGUI.cxx | 16 +++++++++ src/SMESHGUI/SMESHGUI.h | 1 + src/SMESHGUI/SMESHGUI_ComputeDlg.cxx | 54 ++++++++++++++++++++++++++++ src/SMESHGUI/SMESHGUI_ComputeDlg.h | 1 + src/SMESHGUI/SMESHGUI_MeshOp.cxx | 53 +++++++++++++++++++++++++++ src/SMESHGUI/SMESHGUI_MeshOp.h | 1 + 6 files changed, 126 insertions(+) diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 69cbc7390..bbf36ce1e 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -2560,6 +2560,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) SVTK_ViewWindow* vtkwnd = dynamic_cast( view ); //QAction* act = action( theCommandID ); + bool logAction(false); switch (theCommandID) { case SMESHOp::OpDelete: @@ -2877,6 +2878,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) break; case SMESHOp::OpCopyMesh: { + logAction = true; if (isStudyLocked()) break; EmitSignalDeactivateDialog(); ( new SMESHGUI_CopyMeshDlg( this ) )->show(); @@ -3702,6 +3704,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpTranslation: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3717,6 +3720,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpRotation: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3732,6 +3736,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpSymmetry: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3747,6 +3752,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpScale: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3763,6 +3769,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) case SMESHOp::OpOffset: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3779,6 +3786,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) case SMESHOp::OpSewing: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -4008,6 +4016,14 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) anApp->updateActions(); //SRN: To update a Save button in the toolbar //updateObjBrowser(); + if(logAction) + { + QAction* anAction = action( theCommandID ); + CAM_Application::logStructuredUserEvent( "Mesh", + "Operation", + anAction->text(), + "activated" ); + } return true; } diff --git a/src/SMESHGUI/SMESHGUI.h b/src/SMESHGUI/SMESHGUI.h index 5bfe45195..08ecbdf51 100644 --- a/src/SMESHGUI/SMESHGUI.h +++ b/src/SMESHGUI/SMESHGUI.h @@ -212,6 +212,7 @@ private: const bool = false); void connectView( const SUIT_ViewWindow* ); + void logSmeshGUIEvent(int theCommandID); private : diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx index d9808febd..039a7cde2 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx @@ -896,6 +896,56 @@ void SMESHGUI_ComputeDlg_QThreadQDialog::closeEvent(QCloseEvent *event) event->accept(); } +//================================================================================ +void SMESHGUI_BaseComputeOp::logMeshSize() +{ + if(myMesh->_is_nil()) + { + return; + } + + SMESH::smIdType_array_var aRes = myMesh->GetMeshInfo(); + QString aMessage = QString("%1").arg( aRes[SMDSAbs_EntityType::SMDSEntity_Node]) + " nodes"; + CAM_Application::logStructuredUserEvent("Mesh", + "Result size", + "", + "", + aMessage); + + int nbEdges = aRes[SMDSAbs_EntityType::SMDSEntity_Edge] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Edge]; + aMessage = QString("%1").arg(nbEdges) + " edges"; + CAM_Application::logStructuredUserEvent("Mesh", + "Result size", + "", + "", + aMessage); + + int nbFaces = aRes[SMDSAbs_EntityType::SMDSEntity_Triangle] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Triangle] + + aRes[SMDSAbs_EntityType::SMDSEntity_BiQuad_Triangle] + aRes[SMDSAbs_EntityType::SMDSEntity_Quadrangle] + + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Quadrangle] + aRes[SMDSAbs_EntityType::SMDSEntity_BiQuad_Quadrangle] + + aRes[SMDSAbs_EntityType::SMDSEntity_Polygon] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Polygon]; + aMessage = QString("%1").arg(nbFaces) + " faces"; + CAM_Application::logStructuredUserEvent("Mesh", + "Result size", + "", + "", + aMessage); + + int nbVolumes = aRes[SMDSAbs_EntityType::SMDSEntity_Tetra] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Tetra] + + aRes[SMDSAbs_EntityType::SMDSEntity_Pyramid] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Pyramid] + + aRes[SMDSAbs_EntityType::SMDSEntity_Hexa] + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Hexa] + + aRes[SMDSAbs_EntityType::SMDSEntity_TriQuad_Hexa] + aRes[SMDSAbs_EntityType::SMDSEntity_Penta] + + aRes[SMDSAbs_EntityType::SMDSEntity_Quad_Penta] + aRes[SMDSAbs_EntityType::SMDSEntity_BiQuad_Penta] + + aRes[SMDSAbs_EntityType::SMDSEntity_Hexagonal_Prism] + aRes[SMDSAbs_EntityType::SMDSEntity_Polyhedra]; + aMessage = QString("%1").arg(nbVolumes) + " volumes"; + CAM_Application::logStructuredUserEvent("Mesh", + "Result size", + "", + "", + aMessage); + +} + //================================================================================ /*! * \brief computeMesh() @@ -1122,9 +1172,13 @@ void SMESHGUI_BaseComputeOp::computeMesh() isShowResultDlg = true; } + //log Mesh size info + logMeshSize(); + // SHOW RESULTS if ( isShowResultDlg ) showComputeResult( memoryLack, noCompError,aCompErrors, noHypoError, aHypErrors ); + } void SMESHGUI_BaseComputeOp::showComputeResult( const bool theMemoryLack, diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.h b/src/SMESHGUI/SMESHGUI_ComputeDlg.h index 230a264bc..869a3185a 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.h +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.h @@ -95,6 +95,7 @@ protected: const QString&); virtual bool isValid( SUIT_Operation* theOp ) const; + void logMeshSize(); protected slots: virtual bool onApply(); diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index 80b73321a..50132b41e 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -125,6 +125,57 @@ LightApp_Dialog* SMESHGUI_MeshOp::dlg() const return myDlg; } +//================================================================================ +/*! + * \brief Log meshers info +*/ +//================================================================================ +void SMESHGUI_MeshOp::logSmeshParams() +{ + QString mesherType; + int curMeshType = myDlg->currentMeshType(); + switch ( curMeshType ) { + case MT_ANY: + mesherType = "Any"; + break; + case MT_TRIANGULAR: + mesherType = "Triangular"; + break; + case MT_QUADRILATERAL: + mesherType = "Quadrilateral"; + break; + case MT_TETRAHEDRAL: + mesherType = "Tetrahedral"; + break; + case MT_HEXAHEDRAL: + mesherType = "Hexahedral"; + break; + default: + mesherType = ""; + } + + QString aMessage = QString("Mesh type is %1").arg(mesherType); + CAM_Application::logStructuredUserEvent( "Mesh", + "create mesh", + "", + "", + aMessage); + + for ( int dim = 0; dim <= 3; ++dim ) + { + HypothesisData * curAlgo = hypData( dim, Algo, currentHyp( dim, Algo )); + if(curAlgo) + { + aMessage = QString("%1D algorithm is %2").arg(dim).arg(curAlgo->Label); + CAM_Application::logStructuredUserEvent( "Mesh", + "create mesh", + "", + "", + aMessage); + } + } +} + //================================================================================ /*! * \brief Creates or edits mesh @@ -182,6 +233,7 @@ bool SMESHGUI_MeshOp::onApply() { if ( myToCreate ) setDefaultName(); + //connect(aAction, SIGNAL(triggered(bool)), this, SLOT(logSmeshParams())); } else { @@ -190,6 +242,7 @@ bool SMESHGUI_MeshOp::onApply() SUIT_MessageBox::warning( myDlg, tr( "SMESH_ERROR" ), aMess ); } + logSmeshParams(); myHypoSet = 0; return aResult; diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.h b/src/SMESHGUI/SMESHGUI_MeshOp.h index 89f641c31..de6803a40 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.h +++ b/src/SMESHGUI/SMESHGUI_MeshOp.h @@ -151,6 +151,7 @@ private: void updateHypoSets(); void setFilteredAlgoData(); QStringList getHypoNames(); + void logSmeshParams(); private: -- 2.30.2