+//================================================================================
+/*!
+ * \brief Return true if a sub-mesh can be used as argument of the given method
+ */
+//================================================================================
+
+bool _pySubMesh::CanBeArgOfMethod(const _AString& theMethodName)
+{
+ // names of all methods where a sub-mesh can be used as argument
+ static TStringSet methods;
+ if ( methods.empty() ) {
+ const char * names[] = {
+ // methods of SMESH_Gen
+ "CopyMesh",
+ // methods of SMESH_Group
+ "AddFrom",
+ // methods of SMESH_Measurements
+ "MinDistance",
+ // methods of SMESH_Mesh
+ "ExportPartToMED","ExportCGNS","ExportPartToDAT","ExportPartToUNV","ExportPartToSTL",
+ "RemoveSubMesh",
+ // methods of SMESH_MeshEditor
+ "ReorientObject","Reorient2D","TriToQuadObject","QuadToTriObject","SplitQuadObject",
+ "SplitVolumesIntoTetra","SmoothObject","SmoothParametricObject","ConvertFromQuadraticObject",
+ "RotationSweepObject","RotationSweepObjectMakeGroups","RotationSweepObject1D",
+ "RotationSweepObject1DMakeGroups","RotationSweepObject2D","RotationSweepObject2DMakeGroups",
+ "ExtrusionSweepObject","ExtrusionSweepObjectMakeGroups","ExtrusionSweepObject0D",
+ "ExtrusionSweepObject0DMakeGroups","ExtrusionSweepObject1D","ExtrusionSweepObject2D",
+ "ExtrusionSweepObject1DMakeGroups","ExtrusionSweepObject2DMakeGroups",
+ "ExtrusionAlongPathObjX","ExtrusionAlongPathObject","ExtrusionAlongPathObjectMakeGroups",
+ "ExtrusionAlongPathObject1D","ExtrusionAlongPathObject1DMakeGroups",
+ "ExtrusionAlongPathObject2D","ExtrusionAlongPathObject2DMakeGroups","MirrorObject",
+ "MirrorObjectMakeGroups","MirrorObjectMakeMesh","TranslateObject","Scale",
+ "TranslateObjectMakeGroups","TranslateObjectMakeMesh","ScaleMakeGroups","ScaleMakeMesh",
+ "RotateObject","RotateObjectMakeGroups","RotateObjectMakeMesh","FindCoincidentNodesOnPart",
+ "FindCoincidentNodesOnPartBut","FindEqualElements","FindAmongElementsByPoint",
+ "MakeBoundaryMesh",
+ "" }; // <- mark of end
+ methods.Insert( names );
+ }
+ return methods.Contains( theMethodName );
+}
+