Salome HOME
ILMAB: export GEOM fields to MED file
authoreap <eap@opencascade.com>
Tue, 11 Mar 2014 12:48:41 +0000 (16:48 +0400)
committereap <eap@opencascade.com>
Tue, 11 Mar 2014 12:48:41 +0000 (16:48 +0400)
Do not show fields that can't be exported: string fields and fields on the whole shape

src/SMESHGUI/SMESHGUI_FieldSelectorWdg.cxx

index 3185ea3654b31fe72ba4d3aac378db17aa428db1..d178095075d11f92202c7828c63323a7521e8cbc 100644 (file)
@@ -113,6 +113,19 @@ GetAllFeilds(const QList< QPair< SMESH::SMESH_IDSource_var, QString > >& meshes,
         fields = fieldOp->GetFields( shape );
         for ( size_t iF = 0; iF < fields->length(); ++iF )
         {
         fields = fieldOp->GetFields( shape );
         for ( size_t iF = 0; iF < fields->length(); ++iF )
         {
+          GEOM::field_data_type dataType = fields[ iF ]->GetDataType();
+          if ( dataType == GEOM::FDT_String )
+            continue;
+          GEOM::ListOfLong_var stepIDs = fields[ iF ]->GetSteps();
+          if ( stepIDs->length() < 1 )
+            continue;
+          GEOM::string_array_var comps = fields[ iF ]->GetComponents();
+          if ( comps->length() < 1 )
+            continue;
+          CORBA::Short dim = fields[iF]->GetDimension();
+          if ( dim < 0 )
+            continue; // "whole shape" field ignored
+
           CORBA::String_var name = fields[iF]->GetName();
           createItem( myTree, name.in(), iF, meshItem );
         }
           CORBA::String_var name = fields[iF]->GetName();
           createItem( myTree, name.in(), iF, meshItem );
         }