From: Ekaterina Sukhareva Date: Thu, 14 Dec 2023 13:50:10 +0000 (+0000) Subject: Usages in SMESH X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2F38049_SmeshLog;p=modules%2Fsmesh.git Usages in SMESH --- diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 78fba25d5..aa2d8db15 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -2557,6 +2557,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) SVTK_ViewWindow* vtkwnd = dynamic_cast( view ); //QAction* act = action( theCommandID ); + bool logAction(false); switch (theCommandID) { case SMESHOp::OpDelete: @@ -2874,6 +2875,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) break; case SMESHOp::OpCopyMesh: { + logAction = true; if (isStudyLocked()) break; EmitSignalDeactivateDialog(); ( new SMESHGUI_CopyMeshDlg( this ) )->show(); @@ -3699,6 +3701,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpTranslation: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3714,6 +3717,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpRotation: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3729,6 +3733,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpSymmetry: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3744,6 +3749,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case SMESHOp::OpScale: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3760,6 +3766,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) case SMESHOp::OpOffset: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -3776,6 +3783,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) case SMESHOp::OpSewing: { + logAction = true; if(isStudyLocked()) break; if ( warnOnGeomModif() ) break; // action forbidden as geometry modified @@ -4004,6 +4012,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 371c72bdc..c65a9aacb 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 444023540..df982dfe5 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 05dd09b2c..61f68e766 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 95b51a474..6cedd29a4 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 a4fbeb3ea..63b0aa506 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: