-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2011 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
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// 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 ;
VOLUME,
ELEM0D
};
+ typedef sequence<ElementType> array_of_ElementType ;
/*!
* Enumeration for element geometry type, like in SMDS
/*!
- * Enumeration of entity type uses in mesh info array,
- * and should be synchronised with enum in SMDS
+ * Enumeration of entity type used in mesh info array,
+ * it should be synchronised with enum SMDSAbs_EntityType
*/
enum EntityType
{
long_array elementConnectivities;
types_array elementTypes; };
+ interface SMESH_Mesh;
+
interface SMESH_IDSource
{
/*!
/*!
* Returns statistic of mesh elements
- * Result array of number enityties
+ * @return array of number enityties by index of EntityType
*/
long_array GetMeshInfo();
+
+ /*!
+ * Returns types of elements it contains.
+ * It's empty if the SMESH_IDSource contains no IDs
+ */
+ array_of_ElementType GetTypes();
+
+ /*!
+ * Returns the mesh
+ */
+ SMESH_Mesh GetMesh();
};
interface SMESH_Group;
interface SMESH_GroupOnGeom;
+ interface Filter;
+ interface SMESH_GroupOnFilter;
interface SMESH_subMesh;
interface SMESH_MeshEditor;
* Create a group
*/
SMESH_Group CreateGroup( in ElementType elem_type,
- in string name )
+ in string name )
raises (SALOME::SALOME_Exception);
/*!
- * Create a group from geometry group
+ * Create a group from geometry
*/
- SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
- in string name,
- in GEOM::GEOM_Object theGeomObject )
+ SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elemType,
+ in string name,
+ in GEOM::GEOM_Object geomObject )
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * Create a group from filter
+ */
+ SMESH_GroupOnFilter CreateGroupFromFilter( in ElementType elemType,
+ in string name,
+ in SMESH::Filter filter )
raises (SALOME::SALOME_Exception);
/*!
raises (SALOME::SALOME_Exception);
/*!
- * Convert group on geometry into standalone group
+ * Convert group on geometry or on filter into standalone group
*/
- SMESH_Group ConvertToStandalone( in SMESH_GroupOnGeom theGeomGroup )
+ SMESH_Group ConvertToStandalone( in SMESH_GroupBase theGroupOn )
raises (SALOME::SALOME_Exception);
/*!
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.
*/
/*!
* Export Mesh to different MED Formats
* @params
+ * - file : 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.
- * - theVersion : define the version of format of MED file, that will be created
+ * - version : 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);
+ void ExportToMEDX( in string file,
+ in boolean auto_groups,
+ in MED_VERSION version,
+ in boolean overwrite ) 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
+ * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
+ */
+ void ExportPartToMED( in SMESH_IDSource meshPart,
+ in string file,
+ in boolean auto_groups,
+ in MED_VERSION version,
+ in boolean overwrite ) raises (SALOME::SALOME_Exception);
/*!
* Export Mesh to different MED Formats
* Export Mesh to DAT, UNV and STL 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 ExportSTL( in string file, in boolean isascii )
- raises (SALOME::SALOME_Exception);
+ void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
+ void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
+ void ExportSTL( in string file,
+ in boolean isascii ) raises (SALOME::SALOME_Exception);
+ void ExportPartToDAT( in SMESH_IDSource meshPart,
+ in string file ) raises (SALOME::SALOME_Exception);
+ void ExportPartToUNV( in SMESH_IDSource meshPart,
+ in string file ) raises (SALOME::SALOME_Exception);
+ void ExportPartToSTL( in SMESH_IDSource meshPart,
+ in string file,
+ in boolean isascii ) raises (SALOME::SALOME_Exception);
/*!
* Get MED Mesh
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);
*/
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
*/