+
+ //================================================================================
+ /*!
+ * \brief Replaces "SMESH.PointStruct(x,y,z)" and "SMESH.DirStruct( SMESH.PointStruct(x,y,z))"
+ * arguments of a given command by a list "[x,y,z]" if the list is accesible
+ * type of argument.
+ */
+ //================================================================================
+
+ void StructToList( Handle( _pyCommand)& theCommand )
+ {
+ static TStringSet methodsAcceptingList;
+ if ( methodsAcceptingList.empty() ) {
+ const char * methodNames[] = {
+ "GetCriterion","Reorient2D","ExtrusionSweep","ExtrusionSweepMakeGroups0D",
+ "ExtrusionSweepMakeGroups","ExtrusionSweep0D",
+ "AdvancedExtrusion","AdvancedExtrusionMakeGroups",
+ "ExtrusionSweepObject","ExtrusionSweepObject0DMakeGroups",
+ "ExtrusionSweepObjectMakeGroups","ExtrusionSweepObject0D",
+ "ExtrusionSweepObject1D","ExtrusionSweepObject1DMakeGroups",
+ "ExtrusionSweepObject2D","ExtrusionSweepObject2DMakeGroups",
+ "Translate","TranslateMakeGroups","TranslateMakeMesh",
+ "TranslateObject","TranslateObjectMakeGroups", "TranslateObjectMakeMesh"
+ ,"" }; // <- mark of the end
+ methodsAcceptingList.Insert( methodNames );
+ }
+ if ( methodsAcceptingList.Contains( theCommand->GetMethod() ))
+ {
+ for ( int i = theCommand->GetNbArgs(); i > 0; --i )
+ {
+ const _AString & arg = theCommand->GetArg( i );
+ if ( arg.Search( "SMESH.PointStruct" ) == 1 ||
+ arg.Search( "SMESH.DirStruct" ) == 1 )
+ {
+ Handle(_pyCommand) workCmd = new _pyCommand( arg );
+ if ( workCmd->GetNbArgs() == 1 ) // SMESH.DirStruct( SMESH.PointStruct(x,y,z))
+ {
+ workCmd = new _pyCommand( workCmd->GetArg( 1 ) );
+ }
+ if ( workCmd->GetNbArgs() == 3 ) // SMESH.PointStruct(x,y,z)
+ {
+ _AString newArg = "[ ";
+ newArg += ( workCmd->GetArg( 1 ) + ", " +
+ workCmd->GetArg( 2 ) + ", " +
+ workCmd->GetArg( 3 ) + " ]");
+ theCommand->SetArg( i, newArg );
+ }
+ }
+ }
+ }
+ }
+ //================================================================================
+ /*!
+ * \brief Replaces "mesh.GetIDSource([id1,id2])" argument of a given command by
+ * a list "[id1,id2]" if the list is an accesible type of argument.
+ */
+ //================================================================================
+
+ void GetIDSourceToList( Handle( _pyCommand)& theCommand )
+ {
+ static TStringSet methodsAcceptingList;
+ if ( methodsAcceptingList.empty() ) {
+ const char * methodNames[] = {
+ "ExportPartToMED","ExportPartToDAT","ExportPartToUNV","ExportPartToSTL",
+ "ExportCGNS","ExportGMF",
+ "Create0DElementsOnAllNodes","Reorient2D","QuadTo4Tri",
+ "ScaleMakeGroups","Scale","ScaleMakeMesh",
+ "FindCoincidentNodesOnPartBut","DoubleElements"
+ ,"" }; // <- mark of the end
+ methodsAcceptingList.Insert( methodNames );
+ }
+ if ( methodsAcceptingList.Contains( theCommand->GetMethod() ))
+ {
+ for ( int i = theCommand->GetNbArgs(); i > 0; --i )
+ {
+ _pyCommand argCmd( theCommand->GetArg( i ));
+ if ( argCmd.GetMethod() == "GetIDSource" &&
+ argCmd.GetNbArgs() == 2 )
+ {
+ theCommand->SetArg( i, argCmd.GetArg( 1 ));
+ }
+ }
+ }
+ }