-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
{
HYP_OK,
HYP_MISSING, // algo misses a hypothesis
- HYP_CONCURENT, // several applicable hypotheses
+ HYP_CONCURRENT, // several applicable hypotheses
HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
HYP_HIDDEN_ALGO, // an algo is hidden by an upper dim algo generating all-dim elements
HYP_HIDING_ALGO, // an algo hides lower dim algos by generating all-dim elements
HYP_UNKNOWN_FATAL,// --- all statuses below should be considered as fatal
// for Add/RemoveHypothesis operations
HYP_INCOMPATIBLE, // hypothesis does not fit algo
- HYP_NOTCONFORM, // not conform mesh is produced appling a hypothesis
+ HYP_NOTCONFORM, // not conform mesh is produced applying a hypothesis
HYP_ALREADY_EXIST,// such hypothesis already exist
HYP_BAD_DIM, // bad dimension
HYP_BAD_SUBSHAPE, // shape is neither the main one, nor its sub-shape, nor a group
DRS_FAIL // general failure (exception etc.)
};
- /*!
- * Enumeration for ExportToMED*()
- */
- enum MED_VERSION
- {
- MED_V2_1,
- MED_V2_2
- };
-
/*!
* \brief A structure containing information about MED file
*/
typedef sequence<SMESH_subMesh> submesh_array;
typedef sequence<submesh_array> submesh_array_array;
- interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
+ interface SMESH_Mesh : SMESH_IDSource
{
/*!
* Return true if there is a geometry to be meshed
GEOM::GEOM_Object GetShapeToMesh()
raises (SALOME::SALOME_Exception);
+ /*!
+ * Replaces a shape in the mesh
+ */
+ void ReplaceShape(in GEOM::GEOM_Object theNewGeom)
+ raises (SALOME::SALOME_Exception);
+
/*!
* Return false if the mesh is not yet fully loaded from the study file
*/
in boolean underlyingOnly )
raises (SALOME::SALOME_Exception);
+ /*!
+ * Distribute all faces of the mesh among groups using sharp edges and optionally
+ * existing 1D elements as group boundaries.
+ * \param [in] sharpAngle - edge is considered sharp if an angle between normals of
+ * adjacent faces is more than \a sharpAngle in degrees.
+ * \param [in] createEdges - to create 1D elements for detected sharp edges.
+ * \param [in] useExistingEdges - to use existing edges as group boundaries
+ * \return ListOfGroups - the created groups
+ */
+ ListOfGroups FaceGroupsSeparatedByEdges( in double sharpAngle,
+ in boolean createEdges,
+ in boolean useExistingEdges )
+ raises (SALOME::SALOME_Exception);
+
/*!
* Convert group on geometry or on filter into standalone group
*/
*/
long GetId();
- /*!
- * Get the study Id
- */
- long GetStudyId();
-
/*!
* Obtain instance of SMESH_MeshEditor
*/
boolean HasDuplicatedGroupNamesMED();
/*!
- * Export Mesh to a MED Format file
+ * Export a Mesh to MED file.
* @params
- * - file : name of the MED file
+ * - fileName : name of the MED file
* - auto_groups : boolean parameter for creating/not creating
* the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
* the typical use is auto_groups=false.
- * - version : defines the version of format of MED file, that will be created
* - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
+ * - version : define the version of MED file format, coded with major and minor digits (release digit not used)
+ * for instance med 3.2.1 is coded 3*10+2 = 32, med 4.0.0 is coded 4*10+0 = 40.
+ * The rules of compatibility to write a mesh in an older version than the current version
+ * depend on the current version. For instance, with med 4.0 it is possible to write/append
+ * med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
+ * The minor must be between 0 and the current minor version of MED file library.
+ * If version is equal to -1, the version is not changed (default).
* - autoDimension : if @c true, a space dimension of a MED mesh can be either
* - 1D if all mesh nodes lie on OX coordinate axis, or
* - 2D if all mesh nodes lie on XOY coordinate plane, or
* - 3D in the rest cases.
* If @a autoDimension is @c false, the space dimension is always 3.
*/
- void ExportToMEDX( in string file,
- in boolean auto_groups,
- in MED_VERSION 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);
/*!
* Export a [part of] Mesh into a MED file
* @params
* - meshPart : a part of mesh to store
- * - file : name of the MED file
- * - version : define the version of format of MED file, that will be created
+ * - fileName : name of the MED file
* - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
+ * - version : define the version of MED file format, coded with major and minor digits (release digit not used)
+ * for instance med 3.2.1 is coded 3*10+2 = 32, med 4.0.0 is coded 4*10+0 = 40.
+ * The rules of compatibility to write a mesh in an older version than the current version
+ * depend on the current version. For instance, with med 4.0 it is possible to write/append
+ * med files in 4.0.0 (default format) or 3.2.1 or 3.3.1 formats.
+ * The minor must be between 0 and the current minor version of MED file library.
+ * If version is equal to -1, the version is not changed (default).
* - autoDimension : if @c True, a space dimension for export is defined by mesh
* configuration; for example a planar mesh lying on XOY plane
* will be exported as a mesh in 2D space.
* - 'e' stands for _edges_ field;
* - 'f' stands for _faces_ field;
* - 's' stands for _solids_ field.
+ * - 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.
*/
void ExportPartToMED( in SMESH_IDSource meshPart,
- in string file,
+ in string fileName,
in boolean auto_groups,
- in MED_VERSION version,
+ in long version,
in boolean overwrite,
in boolean autoDimension,
in GEOM::ListOfFields fields,
- in string geomAssocFields ) raises (SALOME::SALOME_Exception);
-
- /*!
- * Export Mesh to a MED Format file
- * Works, just the same as ExportToMEDX, with overwrite parameter equal to true.
- * The method is kept in order to support old functionality
- */
- void ExportToMED( in string file, in boolean auto_groups, in MED_VERSION theVersion )
- raises (SALOME::SALOME_Exception);
-
- /*!
- * Export Mesh to MED_V2_1 MED format
- * Works, just the same as ExportToMEDX with MED_VERSION parameter equal to MED_V2_1
- * and overwrite parameter equal to true
- * The method is kept in order to support old functionality
- */
- void ExportMED( in string file, in boolean auto_groups )
- raises (SALOME::SALOME_Exception);
+ in string geomAssocFields,
+ in double ZTolerance) raises (SALOME::SALOME_Exception);
/*!
* Export Mesh to SAUV formatted file
*/
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 MED_VERSION version, in short 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)
+ */
+ long_array GetMEDVersionsCompatibleForAppend();
+
/*!
* Export Mesh to different Formats
* (UNV supported version is I-DEAS 10)
* 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);
+ long_array GetNodeInverseElements(in long id, in ElementType elemType);
/*!
* \brief Return position of a node on shape
string_array GetLastParameters();
};
- interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
+ interface SMESH_subMesh : SMESH_IDSource
{
/*!
*