X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_Gen.idl;h=362bea45a493255f74ce43b2814f4def7e9b5168;hp=5757e10750205a381e8c4907caad1381c9633b23;hb=07ec002dfd20ec187228e11533e8e2135eca08fd;hpb=81e9dbdf6c92fd3e7a41c141743c81d7a88cc440 diff --git a/idl/SMESH_Gen.idl b/idl/SMESH_Gen.idl index 5757e1075..362bea45a 100644 --- a/idl/SMESH_Gen.idl +++ b/idl/SMESH_Gen.idl @@ -15,7 +15,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -38,27 +38,96 @@ module SMESH { typedef sequence object_array; - typedef sequence mesh_array; + typedef sequence mesh_array; interface FilterManager; interface SMESH_Pattern; - enum AlgoStateErrorName { MISSING_ALGO, MISSING_HYPO, NOT_CONFORM_MESH }; - struct AlgoStateError { - AlgoStateErrorName name; + /*! + * Tags definition + */ + // Top level + const long Tag_HypothesisRoot = 1; // hypotheses root + const long Tag_AlgorithmsRoot = 2; // algorithms root + const long Tag_FirstMeshRoot = 3; // first mesh root + // Mesh/Submesh + const long Tag_RefOnShape = 1; // references to shape + const long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root + const long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root + // Mesh only: sub-meshes roots by type + const long Tag_FirstSubMesh = 4; + const long Tag_SubMeshOnVertex = 4; + const long Tag_SubMeshOnEdge = 5; + const long Tag_SubMeshOnWire = 6; + const long Tag_SubMeshOnFace = 7; + const long Tag_SubMeshOnShell = 8; + const long Tag_SubMeshOnSolid = 9; + const long Tag_SubMeshOnCompound = 10; + const long Tag_LastSubMesh = 10; + // Mesh only: group roots by type + const long Tag_FirstGroup = 11; + const long Tag_NodeGroups = 11; + const long Tag_EdgeGroups = 12; + const long Tag_FaceGroups = 13; + const long Tag_VolumeGroups = 14; + const long Tag_LastGroup = 14; + + /*! + * Hypothesis definintion error + */ + struct AlgoStateError + { + Hypothesis_Status state; string algoName; long algoDim; boolean isGlobalAlgo; }; typedef sequence algo_error_array; - + + /*! + * Mesh computation error + */ + enum ComputeErrorName + { + COMPERR_OK , + COMPERR_BAD_INPUT_MESH, // wrong mesh on lower submesh + COMPERR_STD_EXCEPTION , // some std exception raised + COMPERR_OCC_EXCEPTION , // OCC exception raised + COMPERR_SLM_EXCEPTION , // SALOME exception raised + COMPERR_EXCEPTION , // other exception raised + COMPERR_MEMORY_PB , // memory allocation problem + COMPERR_ALGO_FAILED , // computation failed + COMPERR_BAD_SHAPE // bad geometry + }; + struct ComputeError + { + short code; // ComputeErrorName or, if negative, algo specific code + string comment; // textual problem description + string algoName; + short subShapeID; // id of subshape of a shape to mesh + }; + typedef sequence compute_error_array; + + interface SMESH_Gen : Engines::Component, SALOMEDS::Driver { + //GEOM::GEOM_Gen SetGeomEngine( in string containerLoc ); + void SetGeomEngine( in GEOM::GEOM_Gen geomcompo ); FilterManager CreateFilterManager(); SMESH_Pattern GetPattern(); + /*! + Set the current mode + */ + void SetEmbeddedMode( in boolean theMode ); + + /*! + Get the current mode + */ + boolean IsEmbeddedMode(); + /*! Set the current study */ @@ -80,6 +149,19 @@ module SMESH in string theLibName ) raises ( SALOME::SALOME_Exception ); + /*! + * Return a hypothesis holding parameter values corresponding to the mesh + * existing on the given geometry. + * The returned hypothesis may be the one existing in a study and used + * to compute the mesh, or a temporary one created just to pass parameter + * values + */ + SMESH_Hypothesis GetHypothesisParameterValues( in string theHypName, + in string theLibName, + in SMESH_Mesh theMesh, + in GEOM::GEOM_Object theGeom) + raises ( SALOME::SALOME_Exception ); + /*! * Create a Mesh object, given a geometry shape. * Mesh is created empty (no points, no elements). @@ -90,8 +172,15 @@ module SMESH SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject ) raises ( SALOME::SALOME_Exception ); + /*! + * Create a empty mesh object + */ + SMESH_Mesh CreateEmptyMesh() + raises ( SALOME::SALOME_Exception ); + /*! * Create Mesh object importing data from given UNV file + * (UNV supported version is I-DEAS 10) */ SMESH_Mesh CreateMeshesFromUNV( in string theFileName ) raises ( SALOME::SALOME_Exception ); @@ -120,15 +209,14 @@ module SMESH * First, verify list of hypothesis associated with the subShape, * return NOK if hypothesis are not sufficient */ - boolean Compute( in SMESH_Mesh theMesh, + boolean Compute( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); /*! - * + * Return true if hypotheses are defined well */ - - boolean IsReadyToCompute( in SMESH_Mesh theMesh, + boolean IsReadyToCompute( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); @@ -136,23 +224,77 @@ module SMESH * Return errors of hypotheses definintion * algo_error_array is empty if everything is OK */ - algo_error_array GetAlgoState( in SMESH_Mesh theMesh, + algo_error_array GetAlgoState( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); /*! - * + * Return errors of mesh computation + * compute_error_array is empty if everything is OK + */ + compute_error_array GetComputeErrors( in SMESH_Mesh theMesh, + in GEOM::GEOM_Object theSubObject ) + raises ( SALOME::SALOME_Exception ); + + /*! + * Return indeces of faces, edges and vertices of given subshapes + * within theMainObject */ long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject, - in object_array theListOfSubObjects ) + in object_array theListOfSubObjects ) raises ( SALOME::SALOME_Exception ); - + /*! - * + * Return geometrical object the given element is built on. + * The returned geometrical object, if not nil, is either found in the + * study or is published by this method with the given name */ - // long_array GetSubMeshesState( in object_array theListOfSubShape ) - // raises ( SALOME::SALOME_Exception ); - + GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh, + in long theElementID, + in string theGeomName) + raises ( SALOME::SALOME_Exception ); + + /*! + * Return geometrical object the given element is built on. + * The returned geometrical object not published in study by this method. + */ + GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh theMesh, + in long theElementID) + raises ( SALOME::SALOME_Exception ); + + /*! + * Concatenate the given meshes into one mesh. + * Union groups with the same name and type if + * theUniteIdenticalGroups flag is true. + * Merge coincident nodes and elements if + * theMergeNodesAndElements flag is true. + */ + SMESH_Mesh Concatenate(in mesh_array theMeshesArray, + in boolean theUniteIdenticalGroups, + in boolean theMergeNodesAndElements, + in double theMergeTolerance) + raises ( SALOME::SALOME_Exception ); + + /*! + * Concatenate the given meshes into one mesh. + * Union groups with the same name and type if + * theUniteIdenticalGroups flag is true. + * Merge coincident nodes and elements if + * theMergeNodesAndElements flag is true. + * Create the groups of all elements from initial meshes. + */ + SMESH_Mesh ConcatenateWithGroups(in mesh_array theMeshesArray, + in boolean theUniteIdenticalGroups, + in boolean theMergeNodesAndElements, + in double theMergeTolerance) + raises ( SALOME::SALOME_Exception ); + + /*! + * \brief Return id of object, registered in current study context + * + * Can be used to check if the object was created in the same container, as this engine. + */ + long GetObjectId(in Object theObject); }; };