Merge remote-tracking branch 'origin/master' into gni/adaptation

This commit is contained in:
GERALD NICOLAS 2021-01-12 09:57:11 +01:00
commit 624e57e97d
20 changed files with 321 additions and 57 deletions

View File

@ -1,6 +1,6 @@
# Double nodes on groups boundaries # Double nodes on groups boundaries
# This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder). # This example represents an iron cable (a thin cylinder) in a concrete block (a big cylinder).
# The big cylinder is defined by two geometric volumes. # The big cylinder is defined by two geometric volumes.

View File

@ -10,7 +10,7 @@ Several criteria can be combined together by using logical operators *AND* and *
Some filtering criteria use the functionality of :ref:`mesh quality controls <quality_page>` to filter mesh nodes / elements by specific characteristic (Area, Length, etc). Some filtering criteria use the functionality of :ref:`mesh quality controls <quality_page>` to filter mesh nodes / elements by specific characteristic (Area, Length, etc).
The functinality of mesh filters is available in both GUI and TUI modes: The functionality of mesh filters is available in both GUI and TUI modes:
* In GUI, filters are available in some dialog boxes via "Set Filters" button, clicking on which opens the :ref:`dialog box <filtering_elements>` allowing to specify the list of filter criteria to be applied to the current selection. See :ref:`selection_filter_library_page` page to learn more about selection filters and their usage in GUI. * In GUI, filters are available in some dialog boxes via "Set Filters" button, clicking on which opens the :ref:`dialog box <filtering_elements>` allowing to specify the list of filter criteria to be applied to the current selection. See :ref:`selection_filter_library_page` page to learn more about selection filters and their usage in GUI.

View File

@ -27,7 +27,7 @@ The following targets are supported:
* **Node:** single mesh node; * **Node:** single mesh node;
* **Element:** single mesh element (not available in this version); * **Element:** single mesh element (not available in this version);
* **Object:** mesh, sub-mesh or group object (not available in this version); * **Object:** mesh, sub-mesh or group object (not available in this version);
* **Origin:** origin of the global co-ordinate system. * **Origin:** origin of the global coordinate system.
The result will be shown in the bottom area of the dialog. In addition, a simple preview will be shown in the 3D viewer. The result will be shown in the bottom area of the dialog. In addition, a simple preview will be shown in the 3D viewer.

View File

@ -79,7 +79,7 @@ The user can either input the ID of a node or element he wants to analyze direct
If **Show IDs** is activated, IDs of selected nodes or elements are displayed in the 3D viewer. If **Show IDs** is activated, IDs of selected nodes or elements are displayed in the 3D viewer.
.. note:: .. note::
The information about the groups, to which the node or element belongs, can be shown in a short or in a detailed form. By default, for performance rasons, this information is shown in a short form (group names only). The detailed information on groups can be switched on via :ref:`Show details on groups in element information tab <group_detail_info_pref>` option of :ref:`mesh_preferences_page`. The information about the groups, to which the node or element belongs, can be shown in a short or in a detailed form. By default, for performance reasons, this information is shown in a short form (group names only). The detailed information on groups can be switched on via :ref:`Show details on groups in element information tab <group_detail_info_pref>` option of :ref:`mesh_preferences_page`.
.. _mesh_addition_info_anchor: .. _mesh_addition_info_anchor:

View File

@ -308,7 +308,7 @@ If there is no shared faces between the group \#n and the group \#p in the list,
All the flat elements are gathered into the group named "joints3D" (or "joints2D" in 2D situation). All the flat elements are gathered into the group named "joints3D" (or "joints2D" in 2D situation).
The flat element of the multiple junctions between the simple junction are stored in a group named "jointsMultiples". The flat element of the multiple junctions between the simple junction are stored in a group named "jointsMultiples".
This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder). This example represents an iron cable (a thin cylinder) in a concrete block (a big cylinder).
The big cylinder is defined by two geometric volumes. The big cylinder is defined by two geometric volumes.
.. literalinclude:: ../../../examples/generate_flat_elements.py .. literalinclude:: ../../../examples/generate_flat_elements.py

View File

@ -121,7 +121,7 @@ module SMESH
*/ */
struct HypInitParams struct HypInitParams
{ {
short way; // 0 - by mesh, 1 - by geometry size + prefered parameters, 2 - by averageLength short way; // 0 - by mesh, 1 - by geometry size + preferred parameters, 2 - by averageLength
double averageLength; double averageLength;
boolean quadDominated; boolean quadDominated;
}; };

File diff suppressed because one or more lines are too long

View File

@ -1159,7 +1159,7 @@ bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
// algorithm parameter // algorithm parameter
if (algo) if (algo)
{ {
// look trough hypotheses used by algo // look through hypotheses used by algo
const SMESH_HypoFilter* hypoKind; const SMESH_HypoFilter* hypoKind;
if (( hypoKind = algo->GetCompatibleHypoFilter( !hyp->IsAuxiliary() ))) { if (( hypoKind = algo->GetCompatibleHypoFilter( !hyp->IsAuxiliary() ))) {
std::list <const SMESHDS_Hypothesis * > usedHyps; std::list <const SMESHDS_Hypothesis * > usedHyps;

View File

@ -1927,7 +1927,7 @@ namespace
} }
for ( int variant = 0; variant < nbVariants && method._nbSplits == 0; ++variant ) for ( int variant = 0; variant < nbVariants && method._nbSplits == 0; ++variant )
{ {
// check method compliancy with adjacent tetras, // check method compliance with adjacent tetras,
// all found splits must be among facets of tetras described by this method // all found splits must be among facets of tetras described by this method
method = TSplitMethod( nbTet, connVariants[variant] ); method = TSplitMethod( nbTet, connVariants[variant] );
if ( hasAdjacentSplits && method._nbSplits > 0 ) if ( hasAdjacentSplits && method._nbSplits > 0 )
@ -2126,7 +2126,7 @@ namespace
// there are adjacent prism // there are adjacent prism
for ( int variant = 0; variant < nbVariants; ++variant ) for ( int variant = 0; variant < nbVariants; ++variant )
{ {
// check method compliancy with adjacent prisms, // check method compliance with adjacent prisms,
// the found prism facets must be among facets of prisms described by current method // the found prism facets must be among facets of prisms described by current method
method._nbSplits = nbSplits; method._nbSplits = nbSplits;
method._nbCorners = 6; method._nbCorners = 6;

View File

@ -2972,7 +2972,7 @@ bool SMESH_MesherHelper::IsReversedSubMesh (const TopoDS_Face& theFace)
if ( !aSubMeshDSFace ) if ( !aSubMeshDSFace )
return isReversed; return isReversed;
// find an element on a bounday of theFace // find an element on a boundary of theFace
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements(); SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
const SMDS_MeshNode* nn[2]; const SMDS_MeshNode* nn[2];
while ( iteratorElem->more() ) // loop on elements on theFace while ( iteratorElem->more() ) // loop on elements on theFace

View File

@ -114,6 +114,7 @@
#include <LightApp_UpdateFlags.h> #include <LightApp_UpdateFlags.h>
#include <QtxFontEdit.h> #include <QtxFontEdit.h>
#include <QtxPopupMgr.h> #include <QtxPopupMgr.h>
#include <QtxInfoPanel.h>
#include <SALOME_ListIO.hxx> #include <SALOME_ListIO.hxx>
#include <SUIT_Desktop.h> #include <SUIT_Desktop.h>
#include <SUIT_FileDlg.h> #include <SUIT_FileDlg.h>
@ -2864,7 +2865,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case SMESHOp::OpMeshOrder: case SMESHOp::OpMeshOrder:
case SMESHOp::OpCreateSubMesh: case SMESHOp::OpCreateSubMesh:
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
// fall through // fall through
case SMESHOp::OpCreateMesh: case SMESHOp::OpCreateMesh:
case SMESHOp::OpCompute: case SMESHOp::OpCompute:
@ -2916,7 +2917,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
/*Standard_Boolean aRes; /*Standard_Boolean aRes;
SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IObject); SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IObject);
@ -2948,7 +2949,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMESHGUI_MultiEditDlg* aDlg = NULL; SMESHGUI_MultiEditDlg* aDlg = NULL;
@ -2968,7 +2969,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if( vtkwnd ) { if( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_SmoothingDlg( this ) )->show(); ( new SMESHGUI_SmoothingDlg( this ) )->show();
@ -2982,7 +2983,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if (isStudyLocked()) break; if (isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if (vtkwnd) { if (vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_ExtrusionDlg ( this ) )->show(); ( new SMESHGUI_ExtrusionDlg ( this ) )->show();
@ -2995,7 +2996,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if (isStudyLocked()) break; if (isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if (vtkwnd) { if (vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_ExtrusionAlongPathDlg( this ) )->show(); ( new SMESHGUI_ExtrusionAlongPathDlg( this ) )->show();
@ -3008,7 +3009,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if( vtkwnd ) { if( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RevolutionDlg( this ) )->show(); ( new SMESHGUI_RevolutionDlg( this ) )->show();
@ -3023,7 +3024,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) if ( vtkwnd )
{ {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
@ -3056,7 +3057,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case SMESHOp::OpCreateGeometryGroup: case SMESHOp::OpCreateGeometryGroup:
{ {
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
startOperation( theCommandID ); startOperation( theCommandID );
break; break;
} }
@ -3070,7 +3071,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil(); SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
@ -3099,7 +3100,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr(); LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
@ -3178,7 +3179,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr(); LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
@ -3277,7 +3278,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
@ -3299,7 +3300,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMESHGUI_GroupOpDlg* aDlg = new SMESHGUI_DimGroupDlg( this ); SMESHGUI_GroupOpDlg* aDlg = new SMESHGUI_DimGroupDlg( this );
@ -3313,7 +3314,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if ( isStudyLocked() ) if ( isStudyLocked() )
break; break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMESHGUI_FaceGroupsSeparatedByEdgesDlg* aDlg = new SMESHGUI_FaceGroupsSeparatedByEdgesDlg( this ); SMESHGUI_FaceGroupsSeparatedByEdgesDlg* aDlg = new SMESHGUI_FaceGroupsSeparatedByEdgesDlg( this );
@ -3374,7 +3375,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr(); LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
SALOME_ListIO selected; SALOME_ListIO selected;
@ -3421,7 +3422,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
SUIT_OverrideCursor wc; SUIT_OverrideCursor wc;
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr(); LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
@ -3454,7 +3455,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMDSAbs_EntityType type = SMDSEntity_Edge; SMDSAbs_EntityType type = SMDSEntity_Edge;
@ -3482,7 +3483,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_CreatePolyhedralVolumeDlg( this ) )->show(); ( new SMESHGUI_CreatePolyhedralVolumeDlg( this ) )->show();
@ -3507,7 +3508,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
SMDSAbs_EntityType type = SMDSEntity_Last; SMDSAbs_EntityType type = SMDSEntity_Last;
@ -3540,7 +3541,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RemoveNodesDlg( this ) )->show(); ( new SMESHGUI_RemoveNodesDlg( this ) )->show();
@ -3555,7 +3556,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if( vtkwnd ) { if( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RemoveElementsDlg( this ) )->show(); ( new SMESHGUI_RemoveElementsDlg( this ) )->show();
@ -3571,7 +3572,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
SALOME_ListIO selected; SALOME_ListIO selected;
if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() ) if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() )
@ -3612,7 +3613,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
SALOME_ListIO selected; SALOME_ListIO selected;
if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() ) if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() )
aSel->selectedObjects( selected ); aSel->selectedObjects( selected );
@ -3653,7 +3654,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if( vtkwnd ) { if( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RenumberingDlg( this, 0 ) )->show(); ( new SMESHGUI_RenumberingDlg( this, 0 ) )->show();
@ -3669,7 +3670,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RenumberingDlg( this, 1 ) )->show(); ( new SMESHGUI_RenumberingDlg( this, 1 ) )->show();
@ -3685,7 +3686,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_TranslationDlg( this ) )->show(); ( new SMESHGUI_TranslationDlg( this ) )->show();
@ -3700,7 +3701,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if( vtkwnd ) { if( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_RotationDlg( this ) )->show(); ( new SMESHGUI_RotationDlg( this ) )->show();
@ -3715,7 +3716,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if(vtkwnd) { if(vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_SymmetryDlg( this ) )->show(); ( new SMESHGUI_SymmetryDlg( this ) )->show();
@ -3730,7 +3731,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_ScaleDlg( this ) )->show(); ( new SMESHGUI_ScaleDlg( this ) )->show();
@ -3746,7 +3747,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_OffsetDlg( this ) )->show(); ( new SMESHGUI_OffsetDlg( this ) )->show();
@ -3762,7 +3763,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if(vtkwnd) { if(vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_SewingDlg( this ) )->show(); ( new SMESHGUI_SewingDlg( this ) )->show();
@ -3777,7 +3778,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if(vtkwnd) { if(vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_MergeDlg( this, 0 ) )->show(); ( new SMESHGUI_MergeDlg( this, 0 ) )->show();
@ -3792,7 +3793,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if (isStudyLocked()) break; if (isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if (vtkwnd) { if (vtkwnd) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_MergeDlg( this, 1 ) )->show(); ( new SMESHGUI_MergeDlg( this, 1 ) )->show();
@ -3805,7 +3806,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case SMESHOp::OpMoveNode: // MAKE MESH PASS THROUGH POINT case SMESHOp::OpMoveNode: // MAKE MESH PASS THROUGH POINT
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
startOperation( SMESHOp::OpMoveNode ); startOperation( SMESHOp::OpMoveNode );
break; break;
@ -3813,7 +3814,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
{ {
if(isStudyLocked()) break; if(isStudyLocked()) break;
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
if ( vtkwnd ) { if ( vtkwnd ) {
EmitSignalDeactivateDialog(); EmitSignalDeactivateDialog();
( new SMESHGUI_DuplicateNodesDlg( this ) )->show(); ( new SMESHGUI_DuplicateNodesDlg( this ) )->show();
@ -3827,7 +3828,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case SMESHOp::OpElem0DOnElemNodes: // 0D_ON_ALL_NODES case SMESHOp::OpElem0DOnElemNodes: // 0D_ON_ALL_NODES
if ( warnOnGeomModif() ) if ( warnOnGeomModif() )
break; // action forbiden as geometry modified break; // action forbidden as geometry modified
startOperation( SMESHOp::OpElem0DOnElemNodes ); startOperation( SMESHOp::OpElem0DOnElemNodes );
break; break;
@ -5167,6 +5168,12 @@ bool SMESHGUI::reusableOperation( const int id )
return ( id == SMESHOp::OpCompute || id == SMESHOp::OpPreCompute || id == SMESHOp::OpEvaluate || id == SMESHOp::OpRecompute ) ? false : SalomeApp_Module::reusableOperation( id ); return ( id == SMESHOp::OpCompute || id == SMESHOp::OpPreCompute || id == SMESHOp::OpEvaluate || id == SMESHOp::OpRecompute ) ? false : SalomeApp_Module::reusableOperation( id );
} }
namespace
{
QString wrap(const QString& text, const QString& tag)
{ return QString("<%1>%2</%3>").arg(tag).arg(text).arg(tag);}
}
bool SMESHGUI::activateModule( SUIT_Study* study ) bool SMESHGUI::activateModule( SUIT_Study* study )
{ {
bool res = SalomeApp_Module::activateModule( study ); bool res = SalomeApp_Module::activateModule( study );
@ -5174,6 +5181,49 @@ bool SMESHGUI::activateModule( SUIT_Study* study )
setMenuShown( true ); setMenuShown( true );
setToolShown( true ); setToolShown( true );
// Fill in Help Panel
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( application() );
app->infoPanel()->setTitle(tr("INFO_WELCOME_TO_SMESH"));
int gb = app->infoPanel()->addGroup(tr("INFO_GRP_CREATE_MESH"));
QString lab;
QStringList items;
lab = tr("INFO_DEFINE_ALGOS") + "<br/>";
lab = lab + tr("INFO_DEFINE_HYPOS") + "<br/>";
lab = lab + tr("INFO_COMPUTE") + "<br/>";
lab = lab + tr("INFO_REFINE") + ":";
items << wrap(tr("INFO_REFINE_LOCAL_SIZE"), "li")
<< wrap(tr("INFO_REFINE_SUBMESH"), "li");
lab = lab + wrap(items.join(""), "ul");
items.clear();
app->infoPanel()->addLabel(lab, gb);
gb = app->infoPanel()->addGroup(tr("INFO_GRP_IMPORT_MESH"));
items << wrap("UNV", "li")
<< wrap("MED", "li")
<< wrap("STL", "li")
<< wrap("CGNS", "li")
<< wrap("SAUV", "li")
<< wrap("GMF", "li");
lab = tr("INFO_AVAILABLE_FORMATS") + ":" + wrap(items.join(""), "ul");
items.clear();
app->infoPanel()->addLabel(lab, gb);
gb = app->infoPanel()->addGroup(tr("INFO_GRP_CHECK_MESH"));
lab = tr("INFO_DISPLAY") + "<br/>";
items << wrap(tr("INFO_QUALITY_AREA"), "li")
<< wrap(tr("INFO_QUALITY_VOLUME"), "li")
<< wrap(tr("INFO_QUALITY_ASPECT_RATION"), "li")
<< wrap("...", "li");
lab = lab + tr("INFO_QUALITY_INFO") + ":" + wrap(items.join(""), "ul");
items.clear();
lab = lab + tr("INFO_CLIPPING");
app->infoPanel()->addLabel(lab, gb);
// << Help Panel
// import Python module that manages SMESH plugins (need to be here because SalomePyQt API uses active module) // import Python module that manages SMESH plugins (need to be here because SalomePyQt API uses active module)
PyGILState_STATE gstate = PyGILState_Ensure(); PyGILState_STATE gstate = PyGILState_Ensure();
PyObject* pluginsmanager = PyImport_ImportModuleNoBlock((char*)"salome_pluginsmanager"); PyObject* pluginsmanager = PyImport_ImportModuleNoBlock((char*)"salome_pluginsmanager");
@ -5292,6 +5342,7 @@ void SMESHGUI::windows( QMap<int, int>& aMap ) const
{ {
aMap.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea ); aMap.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea );
aMap.insert( SalomeApp_Application::WT_NoteBook, Qt::LeftDockWidgetArea ); aMap.insert( SalomeApp_Application::WT_NoteBook, Qt::LeftDockWidgetArea );
aMap.insert( SalomeApp_Application::WT_InfoPanel, Qt::RightDockWidgetArea);
#ifndef DISABLE_PYCONSOLE #ifndef DISABLE_PYCONSOLE
aMap.insert( SalomeApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea ); aMap.insert( SalomeApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea );
#endif #endif

View File

@ -5377,6 +5377,74 @@ Please, create VTK viewer and try again</translation>
<source>PREF_PREVIEW_CHUNK_SIZE</source> <source>PREF_PREVIEW_CHUNK_SIZE</source>
<translation>Sub-shapes preview chunk size</translation> <translation>Sub-shapes preview chunk size</translation>
</message> </message>
<message>
<source>INFO_WELCOME_TO_SMESH</source>
<translation>Welcome to Mesh</translation>
</message>
<message>
<source>INFO_GRP_CREATE_MESH</source>
<translation>Create mesh</translation>
</message>
<message>
<source>INFO_DEFINE_ALGOS</source>
<translation>Choose algorithms</translation>
</message>
<message>
<source>INFO_DEFINE_HYPOS</source>
<translation>Define hypotheses</translation>
</message>
<message>
<source>INFO_COMPUTE</source>
<translation>Compute</translation>
</message>
<message>
<source>INFO_REFINE</source>
<translation>Add refinements</translation>
</message>
<message>
<source>INFO_REFINE_LOCAL_SIZE</source>
<translation>via local sizes with some hypotheses</translation>
</message>
<message>
<source>INFO_REFINE_SUBMESH</source>
<translation>via sub-meshes</translation>
</message>
<message>
<source>INFO_GRP_IMPORT_MESH</source>
<translation>Import mesh</translation>
</message>
<message>
<source>INFO_AVAILABLE_FORMATS</source>
<translation>Available formats</translation>
</message>
<message>
<source>INFO_GRP_CHECK_MESH</source>
<translation> Check mesh quality</translation>
</message>
<message>
<source>INFO_DISPLAY</source>
<translation>Display mesh</translation>
</message>
<message>
<source>INFO_QUALITY_INFO</source>
<translation>Display some quality criteria</translation>
</message>
<message>
<source>INFO_QUALITY_AREA</source>
<translation>area</translation>
</message>
<message>
<source>INFO_QUALITY_VOLUME</source>
<translation>volume</translation>
</message>
<message>
<source>INFO_QUALITY_ASPECT_RATION</source>
<translation>aspect ration</translation>
</message>
<message>
<source>INFO_CLIPPING</source>
<translation>Add clipping planes</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_GroupDlg</name> <name>SMESHGUI_GroupDlg</name>

View File

@ -4874,6 +4874,10 @@ Il ne peut pas être supprimé.</translation>
<source>SMESH_HEX_PRISM</source> <source>SMESH_HEX_PRISM</source>
<translation>Prisme hexagonal</translation> <translation>Prisme hexagonal</translation>
</message> </message>
<message>
<source>Generate mesh from CAD model or import mesh</source>
<translation type="unfinished">Generate mesh from CAD model or import mesh</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_FieldSelectorWdg</name> <name>SMESHGUI_FieldSelectorWdg</name>
@ -5322,6 +5326,74 @@ Ouvrez une fenêtre VTK et essayez de nouveau</translation>
<source>PREF_PREVIEW_CHUNK_SIZE</source> <source>PREF_PREVIEW_CHUNK_SIZE</source>
<translation>Taille des blocs pour la prévisualisation des sous-shapes</translation> <translation>Taille des blocs pour la prévisualisation des sous-shapes</translation>
</message> </message>
<message>
<source>INFO_WELCOME_TO_SMESH</source>
<translation type="unfinished">Welcome to Mesh</translation>
</message>
<message>
<source>INFO_GRP_CREATE_MESH</source>
<translation type="unfinished">Create mesh</translation>
</message>
<message>
<source>INFO_DEFINE_ALGOS</source>
<translation type="unfinished">Choose algorithms</translation>
</message>
<message>
<source>INFO_DEFINE_HYPOS</source>
<translation type="unfinished">Define hypotheses</translation>
</message>
<message>
<source>INFO_COMPUTE</source>
<translation type="unfinished">Compute</translation>
</message>
<message>
<source>INFO_REFINE</source>
<translation type="unfinished">Add refinements</translation>
</message>
<message>
<source>INFO_REFINE_LOCAL_SIZE</source>
<translation type="unfinished">via local sizes with some hypotheses</translation>
</message>
<message>
<source>INFO_REFINE_SUBMESH</source>
<translation type="unfinished">via sub-meshes</translation>
</message>
<message>
<source>INFO_GRP_IMPORT_MESH</source>
<translation type="unfinished">Import mesh</translation>
</message>
<message>
<source>INFO_AVAILABLE_FORMATS</source>
<translation type="unfinished">Available formats</translation>
</message>
<message>
<source>INFO_GRP_CHECK_MESH</source>
<translation type="unfinished"> Check mesh quality</translation>
</message>
<message>
<source>INFO_DISPLAY</source>
<translation type="unfinished">Display mesh</translation>
</message>
<message>
<source>INFO_QUALITY_INFO</source>
<translation type="unfinished">Display some quality criteria</translation>
</message>
<message>
<source>INFO_QUALITY_AREA</source>
<translation type="unfinished">area</translation>
</message>
<message>
<source>INFO_QUALITY_VOLUME</source>
<translation type="unfinished">volume</translation>
</message>
<message>
<source>INFO_QUALITY_ASPECT_RATION</source>
<translation type="unfinished">aspect ration</translation>
</message>
<message>
<source>INFO_CLIPPING</source>
<translation type="unfinished">Add clipping planes</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_GroupDlg</name> <name>SMESHGUI_GroupDlg</name>

View File

@ -4431,6 +4431,10 @@
<source>SMESH_HEX_PRISM</source> <source>SMESH_HEX_PRISM</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Generate mesh from CAD model or import mesh</source>
<translation type="unfinished">Generate mesh from CAD model or import mesh</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_FieldSelectorWdg</name> <name>SMESHGUI_FieldSelectorWdg</name>
@ -4827,6 +4831,74 @@
<source>PREF_PREVIEW_CHUNK_SIZE</source> <source>PREF_PREVIEW_CHUNK_SIZE</source>
<translation>Under-shapes </translation> <translation>Under-shapes </translation>
</message> </message>
<message>
<source>INFO_WELCOME_TO_SMESH</source>
<translation type="unfinished">Welcome to Mesh</translation>
</message>
<message>
<source>INFO_GRP_CREATE_MESH</source>
<translation type="unfinished">Create mesh</translation>
</message>
<message>
<source>INFO_DEFINE_ALGOS</source>
<translation type="unfinished">Choose algorithms</translation>
</message>
<message>
<source>INFO_DEFINE_HYPOS</source>
<translation type="unfinished">Define hypotheses</translation>
</message>
<message>
<source>INFO_COMPUTE</source>
<translation type="unfinished">Compute</translation>
</message>
<message>
<source>INFO_REFINE</source>
<translation type="unfinished">Add refinements</translation>
</message>
<message>
<source>INFO_REFINE_LOCAL_SIZE</source>
<translation type="unfinished">via local sizes with some hypotheses</translation>
</message>
<message>
<source>INFO_REFINE_SUBMESH</source>
<translation type="unfinished">via sub-meshes</translation>
</message>
<message>
<source>INFO_GRP_IMPORT_MESH</source>
<translation type="unfinished">Import mesh</translation>
</message>
<message>
<source>INFO_AVAILABLE_FORMATS</source>
<translation type="unfinished">Available formats</translation>
</message>
<message>
<source>INFO_GRP_CHECK_MESH</source>
<translation type="unfinished"> Check mesh quality</translation>
</message>
<message>
<source>INFO_DISPLAY</source>
<translation type="unfinished">Display mesh</translation>
</message>
<message>
<source>INFO_QUALITY_INFO</source>
<translation type="unfinished">Display some quality criteria</translation>
</message>
<message>
<source>INFO_QUALITY_AREA</source>
<translation type="unfinished">area</translation>
</message>
<message>
<source>INFO_QUALITY_VOLUME</source>
<translation type="unfinished">volume</translation>
</message>
<message>
<source>INFO_QUALITY_ASPECT_RATION</source>
<translation type="unfinished">aspect ration</translation>
</message>
<message>
<source>INFO_CLIPPING</source>
<translation type="unfinished">Add clipping planes</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_GroupDlg</name> <name>SMESHGUI_GroupDlg</name>

View File

@ -422,7 +422,7 @@ protected:
std::list<Handle(_pyCommand)> myUnusedCommands; std::list<Handle(_pyCommand)> myUnusedCommands;
std::list<Handle(_pyObject) > myReferredObjs; std::list<Handle(_pyObject) > myReferredObjs;
// maps used to clear commands setting parameters if result of setting is // maps used to clear commands setting parameters if result of setting is
// discared (e.g. by mesh.Clear()) // discarded (e.g. by mesh.Clear())
std::map<_AString, std::list<Handle(_pyCommand)> > myMeth2Commands; std::map<_AString, std::list<Handle(_pyCommand)> > myMeth2Commands;
std::map< _pyCommand::TAddr, std::list<Handle(_pyCommand) > > myComputeAddr2Cmds; std::map< _pyCommand::TAddr, std::list<Handle(_pyCommand) > > myComputeAddr2Cmds;
std::list<Handle(_pyCommand) > myComputeCmds; std::list<Handle(_pyCommand) > myComputeCmds;

View File

@ -114,7 +114,7 @@ SMESH_Pattern_i::SMESH_Pattern_i( SMESH_Gen_i* theGen_i ):
CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents) CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents)
{ {
// remove some gabage from the end // remove some garbage from the end
TCollection_AsciiString patternDescription = (char*) theFileContents; TCollection_AsciiString patternDescription = (char*) theFileContents;
int pos = patternDescription.Length(); int pos = patternDescription.Length();
while (! isdigit( patternDescription.Value( pos ))) while (! isdigit( patternDescription.Value( pos )))

View File

@ -693,14 +693,14 @@ namespace // INTERNAL STUFF
if ( removeImport ) if ( removeImport )
{ {
// treate removal of Import algo from subMesh // treat removal of Import algo from subMesh
removeSubmesh( subMesh, (_ListenerData*) data ); removeSubmesh( subMesh, (_ListenerData*) data );
} }
else if ( modifHyp || else if ( modifHyp ||
( SMESH_subMesh::CLEAN == event && ( SMESH_subMesh::CLEAN == event &&
SMESH_subMesh::COMPUTE_EVENT == eventType)) SMESH_subMesh::COMPUTE_EVENT == eventType))
{ {
// treate modification of ImportSource hypothesis // treat modification of ImportSource hypothesis
clearSubmesh( subMesh, (_ListenerData*) data, /*all=*/false ); clearSubmesh( subMesh, (_ListenerData*) data, /*all=*/false );
} }
else if ( SMESH_subMesh::CHECK_COMPUTE_STATE == event && else if ( SMESH_subMesh::CHECK_COMPUTE_STATE == event &&
@ -720,7 +720,7 @@ namespace // INTERNAL STUFF
d->_computedSubM.insert( *smIt); d->_computedSubM.insert( *smIt);
} }
} }
// Clear _ImportData::_n2n if it's no more useful, i.e. when // Clear _ImportData::_n2n if it isn't useful anymore, i.e. when
// the event is not within mesh.Compute() // the event is not within mesh.Compute()
if ( SMESH_subMesh::ALGO_EVENT == eventType ) if ( SMESH_subMesh::ALGO_EVENT == eventType )
clearN2N( subMesh->GetFather() ); clearN2N( subMesh->GetFather() );

View File

@ -368,7 +368,7 @@ class MGCleanerMonPlugDialog(Ui_MGCleanerPlugDialog,QWidget):
for slig in reversed(text.split(separator)): for slig in reversed(text.split(separator)):
lig=slig.strip() lig=slig.strip()
#print "load ResumeData",lig #print "load ResumeData",lig
if lig=="": continue #skip blanck lines if lig=="": continue #skip blank lines
if lig[0]=="#": break if lig[0]=="#": break
try: try:
tit,value=lig.split("=") tit,value=lig.split("=")

View File

@ -9,7 +9,7 @@ These options are not meshing options but allow the user to configure control pa
- **File** - **File**
You can change the file used to store your favorite remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further informations. You can change the file used to store your favorite remeshing hypothesis. see paragraph :ref:`hypothesis-label` for further information.
.. image:: images/Generic.png .. image:: images/Generic.png
:align: center :align: center

View File

@ -336,7 +336,7 @@ class MonYamsPlugDialog(Ui_YamsPlugDialog,QWidget):
for slig in reversed(text.split(separator)): for slig in reversed(text.split(separator)):
lig=slig.strip() lig=slig.strip()
#print "load ResumeData",lig #print "load ResumeData",lig
if lig=="": continue #skip blanck lines if lig=="": continue #skip blank lines
if lig[0]=="#": break if lig[0]=="#": break
try: try:
tit,value=lig.split("=") tit,value=lig.split("=")