-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2010 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
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
// File : SMESH_Mesh.idl
// Author : Paul RASCLE, EDF
//
-
#ifndef _SMESH_MESH_IDL_
#define _SMESH_MESH_IDL_
typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
interface SMESH_GroupBase;
typedef sequence<SMESH_GroupBase> ListOfGroups;
+ interface SMESH_IDSource;
+ typedef sequence<SMESH_IDSource> ListOfIDSources;
typedef sequence<double > double_array ;
typedef sequence<long > long_array ;
enum log_command
{
ADD_NODE,
- ADD_ELEM0D,
ADD_EDGE,
ADD_TRIANGLE,
ADD_QUADRANGLE,
ADD_QUADTETRAHEDRON,
ADD_QUADPYRAMID,
ADD_QUADPENTAHEDRON,
- ADD_QUADHEXAHEDRON
+ ADD_QUADHEXAHEDRON,
+ ADD_ELEM0D
};
struct log_block
{
ALL,
NODE,
- ELEM0D,
EDGE,
FACE,
- VOLUME
+ VOLUME,
+ ELEM0D
};
+ typedef sequence<ElementType> array_of_ElementType ;
/*!
* Enumeration for element geometry type, like in SMDS
ORDER_QUADRATIC /*! entities of 2nd order */
};
+
+ /*!
+ * Enumeration of entity type uses in mesh info array,
+ * and should be synchronised with enum in SMDS
+ */
+ enum EntityType
+ {
+ Entity_Node,
+ Entity_0D,
+ Entity_Edge,
+ Entity_Quad_Edge,
+ Entity_Triangle,
+ Entity_Quad_Triangle,
+ Entity_Quadrangle,
+ Entity_Quad_Quadrangle,
+ Entity_Polygon,
+ Entity_Quad_Polygon,
+ Entity_Tetra,
+ Entity_Quad_Tetra,
+ Entity_Pyramid,
+ Entity_Quad_Pyramid,
+ Entity_Hexa,
+ Entity_Quad_Hexa,
+ Entity_Penta,
+ Entity_Quad_Penta,
+ Entity_Polyhedra,
+ Entity_Quad_Polyhedra,
+ Entity_Last
+ };
+
+
/*!
* Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
*/
long_array elementConnectivities;
types_array elementTypes; };
+ interface SMESH_Mesh;
+
interface SMESH_IDSource
{
/*!
* Returns a sequence of all element IDs
*/
long_array GetIDs();
+
+ /*!
+ * Returns statistic of mesh elements
+ * Result array of number enityties
+ */
+ long_array GetMeshInfo();
+
+ /*!
+ * Returns types of elements it contains
+ */
+ array_of_ElementType GetTypes();
+
+ /*!
+ * Returns the mesh
+ */
+ SMESH_Mesh GetMesh();
};
interface SMESH_Group;
interface SMESH_GroupOnGeom;
interface SMESH_subMesh;
interface SMESH_MeshEditor;
+
+ typedef sequence<SMESH_subMesh> submesh_array;
+ typedef sequence<submesh_array> submesh_array_array;
+
interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
{
/*!
SMESH_MeshEditor GetMeshEditPreviewer()
raises (SALOME::SALOME_Exception);
+ /*!
+ * Return true if the mesh has been edited since a total re-compute
+ * and those modifications may prevent successful partial re-compute
+ */
+ boolean HasModificationsToDiscard()
+ raises (SALOME::SALOME_Exception);
+
/*! Check group names for duplications.
* Consider maximum group name length stored in MED file.
*/
* the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
* the typical use is auto_groups=false.
* - theVersion : define the version of format of MED file, that will be created
+ * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
+ */
+ void ExportToMEDX( in string file, in boolean auto_groups, in MED_VERSION theVersion, in boolean overwrite )
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Export Mesh to different MED Formats
+ * 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 ExportToMED, with MED_VERSION parameter equal to MED_V2_1.
+ * 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 )
ElementType GetElementType( in long id, in boolean iselem )
raises (SALOME::SALOME_Exception);
+ EntityType GetElementGeomType( in long id )
+ raises (SALOME::SALOME_Exception);
+
long_array GetSubMeshElementsId(in long ShapeID)
raises (SALOME::SALOME_Exception);
ElementType GetSubMeshElementType(in long ShapeID)
raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Methods to set meshing order of submeshes
+ */
+
+ /*!
+ * \brief Return submesh objects list in meshing order
+ */
+ submesh_array_array GetMeshOrder();
+
+ /*!
+ * \brief Set submesh object order
+ */
+ boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
+
+
/*!
* Get mesh description
*/
*/
long ElemNbFaces(in long id);
+ /*!
+ * Returns nodes of given face (counted from zero) for given volumic element.
+ */
+ long_array GetElemFaceNodes(in long elemId, in short faceIndex);
+
+ /*!
+ * Returns an element based on all given nodes.
+ */
+ long FindElementByNodes(in long_array nodes);
+
/*!
* Returns true if given element is polygon
*/