X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_Gen.idl;h=eeb8f0c7128e989c2f592c70c9f4cc84ee145745;hp=cb625d0b9da1fce14b190787a89b2e940f1404d0;hb=d5aa4efde29d902f7be1259d7603d36e95f61215;hpb=3eb21ad301385822cfbaa81f2ed6fbfd7bacf23b diff --git a/idl/SMESH_Gen.idl b/idl/SMESH_Gen.idl index cb625d0b9..eeb8f0c71 100644 --- a/idl/SMESH_Gen.idl +++ b/idl/SMESH_Gen.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -33,6 +33,7 @@ #include "SMESH_Mesh.idl" #include "SMESH_Hypothesis.idl" +#include "SMESH_smIdType.idl" module SMESH { @@ -43,6 +44,8 @@ module SMESH interface FilterManager; interface SMESH_Pattern; interface Measurements; + interface MG_ADAPT; + interface MG_ADAPT_OBJECT; /*! * Tags definition @@ -76,7 +79,7 @@ module SMESH const long Tag_LastGroup = 16; /*! - * Hypothesis definintion error + * Hypothesis definition error */ struct AlgoStateError { @@ -116,6 +119,15 @@ module SMESH }; typedef sequence compute_error_array; + /*! + * Way to initialize hypothesis + */ + struct HypInitParams + { + short way; // 0 - by mesh, 1 - by geometry size + preferred parameters, 2 - by averageLength + double averageLength; + boolean quadDominated; + }; interface SMESH_Gen : Engines::EngineComponent, SALOMEDS::Driver { @@ -139,17 +151,22 @@ module SMESH boolean IsEmbeddedMode(); /*! - Set the current study + Update the study */ - void SetCurrentStudy( in SALOMEDS::Study theStudy ); - + void UpdateStudy(); + + /*! + Set enable publishing in the study + */ + void SetEnablePublish( in boolean theIsEnablePublish ); + /*! - Get the current study + Get enable publishing in the study */ - SALOMEDS::Study GetCurrentStudy(); + boolean IsEnablePublish(); /*! - * Create a hypothesis that can be shared by differents parts of the mesh. + * Create a hypothesis that can be shared by different parts of the mesh. * An hypothesis is either: * - a method used to generate or modify a part of the mesh (algorithm). * - a parameter or a law used by an algorithm. @@ -159,6 +176,15 @@ module SMESH in string theLibName ) raises ( SALOME::SALOME_Exception ); + /*! + * Create a hypothesis and initialize it by average length + */ + SMESH_Hypothesis CreateHypothesisByAverageLength( in string theHypName, + in string theLibName, + in double theAverageLength, + in boolean theQuadDominated) + raises ( SALOME::SALOME_Exception ); + /*! * Return a hypothesis holding parameter values corresponding either to the mesh * existing on the given geometry or to size of the geometry. @@ -170,7 +196,7 @@ module SMESH in string theLibName, in SMESH_Mesh theMesh, in GEOM::GEOM_Object theGeom, - in boolean byMesh) + in HypInitParams theWay) raises ( SALOME::SALOME_Exception ); /*! @@ -276,30 +302,65 @@ module SMESH raises ( SALOME::SALOME_Exception ); /*! - * Concatenate the given meshes into one mesh. + * Create a mesh by copying definitions of another mesh to a given geometry + * \param sourceMesh - a mesh to copy + * \param newGeometry - a new geometry + * \param meshName - a name of the new mesh + * \param toCopyGroups - to create groups in the new mesh + * \param toReuseHypotheses - if True, existing hypothesis will be used by the new mesh, + * otherwise new hypotheses with the same parameters will be created for the new mesh. + * \param toCopyElements - to copy mesh elements of same sub-shapes of the two geometries + * \param newMesh - return a new mesh + * \param newGroups - return new groups + * \param newSubmeshes - return new sub-meshes + * \param newHypotheses - return new algorithms and hypotheses + * \param invalidEntries - return study entries of objects whose + * counterparts are not found in the newGeometry, followed by entries + * of mesh sub-objects that are invalid because they depend on a not found + * preceding sub-shape + */ + boolean CopyMeshWithGeom( in SMESH_Mesh sourceMesh, + in GEOM::GEOM_Object newGeometry, + in string meshName, + in boolean toCopyGroups, + in boolean toReuseHypotheses, + in boolean toCopyElements, + out SMESH_Mesh newMesh, + out ListOfGroups newGroups, + out submesh_array newSubmeshes, + out ListOfHypothesis newHypotheses, + out string_array invalidEntries) + raises ( SALOME::SALOME_Exception ); + + /*! + * Concatenate the given meshes or groups into one mesh, + * optionally to theMeshToAppendTo. * 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) + SMESH_Mesh Concatenate(in ListOfIDSources theMeshesArray, + in boolean theUniteIdenticalGroups, + in boolean theMergeNodesAndElements, + in double theMergeTolerance, + in SMESH_Mesh theMeshToAppendTo) raises ( SALOME::SALOME_Exception ); /*! - * Concatenate the given meshes into one mesh. + * Concatenate the given meshes into one mesh, + * optionally to theMeshToAppendTo. * 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) + SMESH_Mesh ConcatenateWithGroups(in ListOfIDSources theMeshesArray, + in boolean theUniteIdenticalGroups, + in boolean theMergeNodesAndElements, + in double theMergeTolerance, + in SMESH_Mesh theMeshToAppendTo) raises ( SALOME::SALOME_Exception ); /*! @@ -327,8 +388,8 @@ module SMESH /*! * Evaluates size of prospective mesh on a shape */ - long_array Evaluate(in SMESH_Mesh theMesh, - in GEOM::GEOM_Object theSubObject) + smIdType_array Evaluate(in SMESH_Mesh theMesh, + in GEOM::GEOM_Object theSubObject) raises ( SALOME::SALOME_Exception ); /*! @@ -343,7 +404,7 @@ module SMESH raises ( SALOME::SALOME_Exception ); /*! - * Return errors of hypotheses definintion + * Return errors of hypotheses definition * algo_error_array is empty if everything is OK */ algo_error_array GetAlgoState( in SMESH_Mesh theMesh, @@ -386,17 +447,17 @@ module SMESH * The returned geometrical object, if not nil, is either found in the * study or is published by this method with the given name */ - GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh, - in long theElementID, - in string theGeomName) + GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh, + in smIdType 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) + GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh theMesh, + in smIdType theElementID) raises ( SALOME::SALOME_Exception ); /*! @@ -406,10 +467,25 @@ module SMESH */ long GetObjectId(in Object theObject); + /*! + * \brief Get version of MED format being used. + */ + string GetMEDFileVersion(); + /*! * \brief Get MED version of the file by its name. */ - boolean GetMEDVersion(in string theFileName, out MED_VERSION theVersion); + string GetMEDVersion(in string theFileName); + + /*! + * \brief Check compatibility of file with MED format being used, for read only. + */ + boolean CheckCompatibility(in string theFileName); + + /*! + * \brief Check compatibility of file with MED format being used, for append on write. + */ + boolean CheckWriteCompatibility(in string theFileName); /*! * \brief Get names of meshes defined in file with the specified name. @@ -439,6 +515,81 @@ module SMESH in string theLibName, in GEOM::GEOM_Object theShapeObject, in boolean toCheckAll ); + + + /*! + * Return indices of elements, which are located inside the sphere + * \param theSource - mesh, sub-mesh or group + * \param theElemType - mesh element type + * \param theX - x coordinate of the center of the sphere + * \param theY - y coordinate of the center of the sphere + * \param theZ - y coordinate of the center of the sphere + * \param theR - radius of the sphere + */ + long_array GetInsideSphere( in SMESH_IDSource theSource, + in ElementType theElemType, + in double theX, + in double theY, + in double theZ, + in double theR ); + + /*! + * Return indices of elements, which are located inside the box + * \param theSource - mesh, sub-mesh or group + * \param theElemType - mesh element type + * \param theX1 - x coordinate of the first opposite point + * \param theY1 - y coordinate of the first opposite point + * \param theZ1 - y coordinate of the first opposite point + * \param theX2 - x coordinate of the second opposite point + * \param theY2 - y coordinate of the second opposite point + * \param theZ2 - y coordinate of the second opposite point + */ + long_array GetInsideBox( in SMESH_IDSource theSource, + in ElementType theElemType, + in double theX1, + in double theY1, + in double theZ1, + in double theX2, + in double theY2, + in double theZ2); + /*! + * Return indices of elements, which are located inside the box + * \param theSource - mesh, sub-mesh or group + * \param theElemType - mesh element type + * \param theX - x coordinate of the cented of the bottom face + * \param theY - y coordinate of the cented of the bottom face + * \param theZ - y coordinate of the cented of the bottom face + * \param theDX - x coordinate of the cented of the base vector + * \param theDY - y coordinate of the cented of the base vector + * \param theDZ - z coordinate of the cented of the base vector + * \param theH - height of the cylinder + * \param theR - radius of the cylinder + */ + long_array GetInsideCylinder( in SMESH_IDSource theSource, + in ElementType theElemType, + in double theX, + in double theY, + in double theZ, + in double theDX, + in double theDY, + in double theDZ, + in double theH, + in double theR ); + /*! + * Return indices of elements, which are located inside the geometry + * \param theSource - mesh, sub-mesh or group + * \param theElemType - mesh element type + * \param theGeom - geometrical object + * \param theTolerance - tolerance for selection. + */ + long_array GetInside( in SMESH_IDSource theSource, + in ElementType theElemType, + in GEOM::GEOM_Object theGeom, + in double theTolerance ); + + MG_ADAPT CreateMG_ADAPT(); + MG_ADAPT_OBJECT Adaptation(in string adaptType); + MG_ADAPT CreateAdaptationHypothesis(); }; };