-// Copyright (C) 2007-2019 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
#include "SALOME_Exception.idl"
#include "SALOME_GenericObj.idl"
#include "GEOM_Gen.idl"
+#include "SMESH_smIdType.idl"
module SMESH
{
typedef sequence<double > double_array ;
typedef sequence<long > long_array ;
+ typedef sequence<smIdType > smIdType_array ;
typedef sequence<string > string_array ;
typedef sequence<long_array> array_of_long_array ;
enum DriverMED_ReadStatus // in the order of severity
{
DRS_OK,
- DRS_EMPTY, // a file contains no mesh with the given name
- DRS_WARN_RENUMBER, // a MED file has overlapped ranges of element numbers,
- // so the numbers from the file are ignored
- DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
+ DRS_EMPTY, // a file contains no mesh with the given name
+ DRS_WARN_RENUMBER, // a MED file has overlapped ranges of element numbers,
+ // so the numbers from the file are ignored
+ DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
DRS_WARN_DESCENDING, // some elements were skipped due to descending connectivity
- DRS_FAIL // general failure (exception etc.)
+ DRS_FAIL // general failure (exception etc.)
};
/*!
*/
struct ElementSubType { ElementType SMDS_ElementType;
boolean isPoly;
- long nbNodesInElement; };
+ short nbNodesInElement; };
typedef sequence<ElementSubType> types_array;
/*!
* Returns a sequence of all element IDs
*/
- long_array GetIDs();
+ smIdType_array GetIDs();
/*!
* Returns number of mesh elements of each \a EntityType
* @return array of number of elements per \a EntityType
*/
- long_array GetMeshInfo();
+ smIdType_array GetMeshInfo();
/*!
* Returns number of mesh elements of each \a ElementType
* @return array of number of elements per \a ElementType
*/
- long_array GetNbElementsByType();
+ smIdType_array GetNbElementsByType();
/*!
* Returns types of elements it contains.
/*!
* Replaces a shape in the mesh
*/
- void ReplaceShape(in GEOM::GEOM_Object theNewGeom, in GEOM::GEOM_Object theOldGeom)
+ void ReplaceShape(in GEOM::GEOM_Object theNewGeom)
raises (SALOME::SALOME_Exception);
/*!
* - 3D in the rest cases.
* If @a autoDimension is @c false, the space dimension is always 3.
*/
- void ExportMED( in string fileName,
- in boolean auto_groups,
- in long version,
- in boolean overwrite,
- in boolean autoDimension) raises (SALOME::SALOME_Exception);
+ void ExportMED( in string fileName,
+ in boolean auto_groups,
+ in long version,
+ in boolean overwrite,
+ in boolean autoDimension) raises (SALOME::SALOME_Exception);
+
+ long long ExportMEDCoupling(in boolean auto_groups,
+ in boolean autoDimension) raises (SALOME::SALOME_Exception);
/*!
* Export a [part of] Mesh into a MED file
* - ZTolerance : tolerance in Z direction. If Z coordinate of a node is close to zero
* within a given tolerance, the coordinate is set to zero.
* If @a ZTolerance is negative, the node coordinates are kept as is.
+ * - saveNumbers : enable saving numbers of nodes and cells.
*/
void ExportPartToMED( in SMESH_IDSource meshPart,
in string fileName,
in boolean autoDimension,
in GEOM::ListOfFields fields,
in string geomAssocFields,
- in double ZTolerance) raises (SALOME::SALOME_Exception);
+ in double ZTolerance,
+ in boolean saveNumbers) raises (SALOME::SALOME_Exception);
+
+ long long ExportPartToMEDCoupling( in SMESH_IDSource meshPart,
+ in boolean auto_groups,
+ in boolean autoDimension,
+ in GEOM::ListOfFields fields,
+ in string geomAssocFields,
+ in double ZTolerance,
+ in boolean saveNumbers) raises (SALOME::SALOME_Exception);
- /*!
- * Export Mesh to SAUV formatted file
- * Write a temporary med file and use med2sauv
- */
- void ExportSAUV( in string file, in boolean auto_groups )
- raises (SALOME::SALOME_Exception);
-
/*!
* Return string representation of a MED file version comprising nbDigits
*/
string GetVersionString(in long minor, in short nbDigits);
-
+
/*!
* Return the list of med versions compatibles for write/append,
* encoded in 10*major+minor (for instance, code for med 3.2.1 is 32)
* Export Mesh to different Formats
* (UNV supported version is I-DEAS 10)
*/
- void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
- void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
+ void ExportDAT( in string file,
+ in boolean renumer) raises (SALOME::SALOME_Exception);
+ void ExportUNV( in string file,
+ in boolean renumer ) raises (SALOME::SALOME_Exception);
void ExportSTL( in string file,
in boolean isascii ) raises (SALOME::SALOME_Exception);
void ExportCGNS( in SMESH_IDSource meshPart,
in string file,
in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
void ExportPartToDAT( in SMESH_IDSource meshPart,
- in string file ) raises (SALOME::SALOME_Exception);
+ in string file,
+ in boolean renumer ) raises (SALOME::SALOME_Exception);
void ExportPartToUNV( in SMESH_IDSource meshPart,
- in string file ) raises (SALOME::SALOME_Exception);
+ in string file,
+ in boolean renumer ) raises (SALOME::SALOME_Exception);
void ExportPartToSTL( in SMESH_IDSource meshPart,
in string file,
in boolean isascii ) raises (SALOME::SALOME_Exception);
/*!
* Get information about mesh contents
*/
- long NbNodes()
+ smIdType NbNodes()
raises (SALOME::SALOME_Exception);
- long NbElements()
+ smIdType NbElements()
raises (SALOME::SALOME_Exception);
- long Nb0DElements()
+ smIdType Nb0DElements()
raises (SALOME::SALOME_Exception);
- long NbBalls()
+ smIdType NbBalls()
raises (SALOME::SALOME_Exception);
- long NbEdges()
+ smIdType NbEdges()
raises (SALOME::SALOME_Exception);
- long NbEdgesOfOrder(in ElementOrder order)
+ smIdType NbEdgesOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbFaces()
+ smIdType NbFaces()
raises (SALOME::SALOME_Exception);
- long NbFacesOfOrder(in ElementOrder order)
+ smIdType NbFacesOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbTriangles()
+ smIdType NbTriangles()
raises (SALOME::SALOME_Exception);
- long NbTrianglesOfOrder(in ElementOrder order)
+ smIdType NbTrianglesOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbBiQuadTriangles()
+ smIdType NbBiQuadTriangles()
raises (SALOME::SALOME_Exception);
- long NbQuadrangles()
+ smIdType NbQuadrangles()
raises (SALOME::SALOME_Exception);
- long NbQuadranglesOfOrder(in ElementOrder order)
+ smIdType NbQuadranglesOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbBiQuadQuadrangles()
+ smIdType NbBiQuadQuadrangles()
raises (SALOME::SALOME_Exception);
- long NbPolygons()
+ smIdType NbPolygons()
raises (SALOME::SALOME_Exception);
- long NbPolygonsOfOrder(in ElementOrder order)
+ smIdType NbPolygonsOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbVolumes()
+ smIdType NbVolumes()
raises (SALOME::SALOME_Exception);
- long NbVolumesOfOrder(in ElementOrder order)
+ smIdType NbVolumesOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbTetras()
+ smIdType NbTetras()
raises (SALOME::SALOME_Exception);
- long NbTetrasOfOrder(in ElementOrder order)
+ smIdType NbTetrasOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbHexas()
+ smIdType NbHexas()
raises (SALOME::SALOME_Exception);
- long NbHexasOfOrder(in ElementOrder order)
+ smIdType NbHexasOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbTriQuadraticHexas()
+ smIdType NbTriQuadraticHexas()
raises (SALOME::SALOME_Exception);
- long NbPyramids()
+ smIdType NbPyramids()
raises (SALOME::SALOME_Exception);
- long NbPyramidsOfOrder(in ElementOrder order)
+ smIdType NbPyramidsOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbPrisms()
+ smIdType NbPrisms()
raises (SALOME::SALOME_Exception);
- long NbPrismsOfOrder(in ElementOrder order)
+ smIdType NbPrismsOfOrder(in ElementOrder order)
raises (SALOME::SALOME_Exception);
- long NbHexagonalPrisms()
+ smIdType NbHexagonalPrisms()
raises (SALOME::SALOME_Exception);
- long NbPolyhedrons()
+ smIdType NbPolyhedrons()
raises (SALOME::SALOME_Exception);
- long NbSubMesh()
+ smIdType NbSubMesh()
raises (SALOME::SALOME_Exception);
- long_array GetElementsId()
+ smIdType_array GetElementsId()
raises (SALOME::SALOME_Exception);
- long_array GetElementsByType( in ElementType theType )
+ smIdType_array GetElementsByType( in ElementType theType )
raises (SALOME::SALOME_Exception);
- long_array GetNodesId()
+ smIdType_array GetNodesId()
raises (SALOME::SALOME_Exception);
/*!
* Returns type of mesh element
*/
- ElementType GetElementType( in long id, in boolean iselem )
+ ElementType GetElementType( in smIdType id, in boolean iselem )
raises (SALOME::SALOME_Exception);
- EntityType GetElementGeomType( in long id )
+ EntityType GetElementGeomType( in smIdType id )
raises (SALOME::SALOME_Exception);
- GeometryType GetElementShape( in long id )
+ GeometryType GetElementShape( in smIdType id )
raises (SALOME::SALOME_Exception);
- long_array GetSubMeshElementsId(in long ShapeID)
+ smIdType_array GetSubMeshElementsId(in long ShapeID)
raises (SALOME::SALOME_Exception);
- long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
+ smIdType_array GetSubMeshNodesId(in long ShapeID, in boolean all )
raises (SALOME::SALOME_Exception);
ElementType GetSubMeshElementType(in long ShapeID)
* Get XYZ coordinates of node as list of double
* If there is not node for given ID - returns empty list
*/
- double_array GetNodeXYZ(in long id);
+ double_array GetNodeXYZ(in smIdType id);
/*!
* For given node returns list of IDs of inverse elements
* If there is not node for given ID - returns empty list
*/
- long_array GetNodeInverseElements(in long id, in ElementType elemType);
+ smIdType_array GetNodeInverseElements(in smIdType id, in ElementType elemType);
/*!
* \brief Return position of a node on shape
*/
- NodePosition GetNodePosition(in long NodeID);
+ NodePosition GetNodePosition(in smIdType NodeID);
/*!
* \brief Return position of an element on shape
*/
- ElementPosition GetElementPosition(in long ElemID);
+ ElementPosition GetElementPosition(in smIdType ElemID);
/*!
* If given element is node returns IDs of shape from position
* If there is not node for given ID - returns -1
*/
- long GetShapeID(in long id);
+ long GetShapeID(in smIdType id);
/*!
* For given element returns ID of result shape after
* ::FindShape() from SMESH_MeshEditor
* If there is not element for given ID - returns -1
*/
- long GetShapeIDForElem(in long id);
+ long GetShapeIDForElem(in smIdType id);
/*!
* Returns number of nodes for given element
* If there is not element for given ID - returns -1
*/
- long GetElemNbNodes(in long id);
+ short GetElemNbNodes(in smIdType id);
/*!
* Returns IDs of nodes of given element
*/
- long_array GetElemNodes(in long id);
+ smIdType_array GetElemNodes(in smIdType id);
/*!
* Returns ID of node by given index for given element
* If there is not element for given ID - returns -1
* If there is not node for given index - returns -2
*/
- long GetElemNode(in long id, in long index);
+ smIdType GetElemNode(in smIdType id, in short index);
/*!
* Returns true if given node is medium node
* in given quadratic element
*/
- boolean IsMediumNode(in long ide, in long idn);
+ boolean IsMediumNode(in smIdType ide, in smIdType idn);
/*!
* Returns true if given node is medium node
* in one of quadratic elements
*/
- boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
+ boolean IsMediumNodeOfAnyElem(in smIdType idn, in ElementType elem_type);
/*!
* Returns number of edges for given element
*/
- long ElemNbEdges(in long id);
+ long ElemNbEdges(in smIdType id);
/*!
* Returns number of faces for given element
*/
- long ElemNbFaces(in long id);
+ long ElemNbFaces(in smIdType id);
/*!
* Returns nodes of given face (counted from zero) for given volumic element.
*/
- long_array GetElemFaceNodes(in long elemId, in short faceIndex);
+ smIdType_array GetElemFaceNodes(in smIdType elemId, in short faceIndex);
/*!
* Returns three components of normal of given mesh face (or an empty array in KO case)
/*!
* Returns an element based on all given nodes.
*/
- long FindElementByNodes(in long_array nodes);
+ smIdType FindElementByNodes(in smIdType_array nodes);
/*!
* Return elements including all given nodes.
*/
- long_array GetElementsByNodes(in long_array nodes, in ElementType elem_type);
+ smIdType_array GetElementsByNodes(in smIdType_array nodes, in ElementType elem_type);
/*!
* Returns true if given element is polygon
*/
- boolean IsPoly(in long id);
+ boolean IsPoly(in smIdType id);
/*!
* Returns true if given element is quadratic
*/
- boolean IsQuadratic(in long id);
+ boolean IsQuadratic(in smIdType id);
/*!
* Returns diameter of a ball discrete element or zero in case of an invalid \a id
*/
- double GetBallDiameter(in long id);
+ double GetBallDiameter(in smIdType id);
/*!
* Returns XYZ coordinates of bary center for given element
* as list of double
* If there is not element for given ID - returns empty list
*/
- double_array BaryCenter(in long id);
+ double_array BaryCenter(in smIdType id);
/*! Gets information about imported MED file */
MedFileInfo GetMEDFileInfo();
/*!
*
*/
- long GetNumberOfElements()
+ smIdType GetNumberOfElements()
raises (SALOME::SALOME_Exception);
/*!
*
*/
- long GetNumberOfNodes( in boolean all )
+ smIdType GetNumberOfNodes( in boolean all )
raises (SALOME::SALOME_Exception);
/*!
*
*/
- long_array GetElementsId()
+ smIdType_array GetElementsId()
raises (SALOME::SALOME_Exception);
/*!
*
*/
- long_array GetElementsByType( in ElementType theType )
+ smIdType_array GetElementsByType( in ElementType theType )
raises (SALOME::SALOME_Exception);
/*!
* Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
*/
- ElementType GetElementType( in long id, in boolean iselem )
+ ElementType GetElementType( in smIdType id, in boolean iselem )
raises (SALOME::SALOME_Exception);
/*!
*
*/
- long_array GetNodesId()
+ smIdType_array GetNodesId()
raises (SALOME::SALOME_Exception);
/*!
raises (SALOME::SALOME_Exception);
/*!
- * Get the internal Id
+ * Get the internal persisten Id
*/
long GetId();
};