\n Selection filter library allows creating and storing in files
the filters that can be later reused for operations on meshes. You can
access it from the Main Menu via <b>Tools / Selection filter library</b>.
-It is also possible to save any filter by invoking the filter library
-from \a Filter dialog launched from any mesh operation.
+It is also possible to save/load a filter by invoking the filter library
+from \ref filtering_elements "Filter dialog" launched from any mesh operation.
\image html selectionfilterlibrary.png
filter. By default it is prefixed with the corresponding entity type.
\anchor filtering_elements
+<h2>Filter Dialog</h2>
When we use filters during group creation or another operation (by
clicking <b>Set Filter</b> button in the corresponding dialog), the
Some criteria are applicable to all <b>Entity types</b>:
<ul><li>
<b>Belong to Geom</b> selects entities whose all nodes lie on the
-shape defined by <b>Threshold Value</b>. If the threshold shape is a
-sub-shape of the main shape of the mesh the algorithm works faster, if
-this is any other shape the algorithm works slower.
+shape defined by <b>Threshold Value</b>.
+If the threshold shape is a sub-shape of the main shape of the mesh,
+the filtering algorithm works faster because node-to-shape association
+is used instead of measuring distance between nodes and the shape, and
+\b Tolerance is not used. If the threshold shape is any other shape,
+the algorithm works slower because distance between nodes and the
+shape is measured and is compared with \b Tolerance.
</li><li>
<b>Lying on Geom</b> selects entities whose at least one node
lies on the shape defined by the <b>Threshold Value</b>.
-If the threshold shape is a sub-shape of the main shape of the mesh the
-algorithm works faster, if this is any other
-shape, the algorithm works slower.
+If the threshold shape is a sub-shape of the main shape of the mesh,
+the filtering algorithm works faster because node-to-shape association
+is used instead of measuring distance between nodes and the shape, and
+\b Tolerance is not used. If the threshold shape is any other shape,
+the algorithm works slower because distance between nodes and the
+shape is measured and is compared with \b Tolerance.
</li><li>
<b>Belong to Mesh Group</b> selects entities included into the mesh group
defined by the <b>Threshold Value</b>.
</li>
</ul>
-Some criteria are applicable to all <b>Entity types</b> of dimension
+Some criteria are applicable to entities of dimension
more than zero, i.e. to \b Edges, \b Faces and \b Volumes:
<ul><li>
<b>Linear</b> allows selection of Linear or Quadratic elements (if Unary is set to "Not")
</li>
</ul>
-The following criteria are applicable to all <b>Entity types</b>
-except for <b>Volumes</b>:
+The following criteria are applicable to Entities of \b all types
+except for \a Volumes:
<ul><li>
<b>Belong to Plane</b> selects entities whose all nodes belong to a
specified plane within a given <b>Tolerance</b>.
</li>
</ul>
-The following criteria allow selecting mesh <b>Volumes</b>:
+The following criteria allow selecting mesh <b>Volumes</b>:
<ul><li>
<b>Aspect ratio 3D</b> selects 3D mesh elements with an aspect ratio (see also an
\ref aspect_ratio_3d_page "Aspect Ratio 3D quality control"), which is more, less or equal
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_IntSpinBox.h>
+#include <SalomeApp_Tools.h>
// Qt includes
#include <QFrame>
bool res = result==QDialog::Accepted;
if( res )
{
- SUIT_OverrideCursor wc;
- /*QString paramValues = */storeParams();
+ try
+ {
+ SUIT_OverrideCursor wc;
+ storeParams();
// No longer needed since NoteBook appears and "Value" OB field shows names of variable
-// if ( !paramValues.isEmpty() ) {
-// if ( _PTR(SObject) SHyp = SMESH::FindSObject( myHypo ))
-// SMESH::SetValue( SHyp, paramValues );
-// }
+ // QString paramValues = storeParams();
+ // if ( !paramValues.isEmpty() ) {
+ // if ( _PTR(SObject) SHyp = SMESH::FindSObject( myHypo ))
+ // SMESH::SetValue( SHyp, paramValues );
+ // }
+ }
+ catch ( const SALOME::SALOME_Exception& S_ex ) {
+ SalomeApp_Tools::QtCatchCorbaException( S_ex );
+ }
}
changeWidgets().clear();
#include <SMESHGUI_HypothesesUtils.h>
#include <SMESHGUI_Utils.h>
#include <SMESHGUI_GEOMGenUtils.h>
-
#include <SMESH_TypeFilter.hxx>
#include <SMESH_NumberFilter.hxx>
#include <GEOM_wrap.hxx>
// SALOME GUI includes
-#include <SUIT_ResourceMgr.h>
#include <SUIT_MessageBox.h>
+#include <SUIT_ResourceMgr.h>
+#include <SalomeApp_IntSpinBox.h>
// IDL includes
#include <SALOMEconfig.h>
sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, "length_precision" );
}
}
+ else if ( SalomeApp_IntSpinBox* sb = qobject_cast< SalomeApp_IntSpinBox* >( w ))
+ {
+ if ( hypType().startsWith( "NumberOfLayers" ) ||
+ hypType().startsWith( "ViscousLayers" ))
+ {
+ sb->setMinimum( 1 );
+ }
+ }
}
//================================================================================