1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // File : SMESH_Mesh.idl
24 // Author : Paul RASCLE, EDF
26 #ifndef _SMESH_MESH_IDL_
27 #define _SMESH_MESH_IDL_
29 #include "SALOME_Exception.idl"
30 #include "SALOME_GenericObj.idl"
31 #include "GEOM_Gen.idl"
35 interface SMESH_Hypothesis;
36 typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
37 interface SMESH_GroupBase;
38 typedef sequence<SMESH_GroupBase> ListOfGroups;
39 interface SMESH_IDSource;
40 typedef sequence<SMESH_IDSource> ListOfIDSources;
42 typedef sequence<double > double_array ;
43 typedef sequence<long > long_array ;
44 typedef sequence<string > string_array ;
45 typedef sequence<long_array> array_of_long_array ;
63 CHANGE_POLYHEDRON_NODES,
76 ADD_BIQUAD_QUADRANGLE,
89 typedef sequence<log_block> log_array;
91 struct PointStruct { double x;
95 typedef sequence<PointStruct> nodes_array;
97 struct DirStruct { PointStruct PS; }; // analog to OCCT gp_Vec
99 struct AxisStruct { double x;
106 * Node location on a shape
108 struct NodePosition {
110 GEOM::shape_type shapeType;
111 double_array params; // [U] on EDGE, [U,V] on FACE, [] on the rest shapes
115 * Element location on a shape
117 struct ElementPosition {
119 GEOM::shape_type shapeType;
123 * Enumeration for element type, like in SMDS
136 typedef sequence<ElementType> array_of_ElementType;
139 * Enumeration for element geometry type, like SMDSAbs_GeometryType in SMDSAbs_ElementType.hxx
146 Geom_QUADRANGLE, // when a new GeometryType is added, please
147 Geom_POLYGON, // update a corresponding list in SMESH_2smeshpy.cxx, ln 665
152 Geom_HEXAGONAL_PRISM,
159 * ElementOrder points out entities of what order are requested
162 ORDER_ANY, /*! entities of any order */
163 ORDER_LINEAR, /*! entities of 1st order */
164 ORDER_QUADRATIC /*! entities of 2nd order */
168 * Enumeration of entity type used in mesh info array,
169 * it should be synchronised with enum SMDSAbs_EntityType
178 Entity_Quad_Triangle,
179 Entity_BiQuad_Triangle,
181 Entity_Quad_Quadrangle,
182 Entity_BiQuad_Quadrangle,
194 Entity_Hexagonal_Prism,
196 Entity_Quad_Polyhedra,
202 * Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
204 enum Hypothesis_Status // in the order of severity
207 HYP_MISSING, // algo misses a hypothesis
208 HYP_CONCURENT, // several applicable hypotheses
209 HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
210 HYP_HIDDEN_ALGO, // an algo is hidden by an upper dim algo generating all-dim elements
211 HYP_HIDING_ALGO, // an algo hides lower dim algos by generating all-dim elements
212 HYP_UNKNOWN_FATAL,// --- all statuses below should be considered as fatal
213 // for Add/RemoveHypothesis operations
214 HYP_INCOMPATIBLE, // hypothesis does not fit algo
215 HYP_NOTCONFORM, // not conform mesh is produced appling a hypothesis
216 HYP_ALREADY_EXIST,// such hypothesis already exist
217 HYP_BAD_DIM, // bad dimension
218 HYP_BAD_SUBSHAPE, // shape is neither the main one, nor its sub-shape, nor a group
219 HYP_BAD_GEOMETRY, // geometry mismatches algorithm's expectation
220 HYP_NEED_SHAPE, // algorithm can work on shape only
221 HYP_INCOMPAT_HYPS // several additional hypotheses are incompatible one with other
225 * Enumeration for mesh read status (used by SMESH_Gen::CreateMeshesFrom*() methods)
227 enum DriverMED_ReadStatus // in the order of severity
230 DRS_EMPTY, // a file contains no mesh with the given name
231 DRS_WARN_RENUMBER, // a MED file has overlapped ranges of element numbers,
232 // so the numbers from the file are ignored
233 DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
234 DRS_WARN_DESCENDING, // some elements were skipped due to descending connectivity
235 DRS_FAIL // general failure (exception etc.)
239 * \brief A structure containing information about MED file
243 string fileName; //!< name of file
244 long fileSize; //!< size of file
245 long major, minor, release; //!< MED file version
249 * Enumeration for CreateDimGroup()
251 enum NB_COMMON_NODES_ENUM
253 ALL_NODES, MAIN, AT_LEAST_ONE, MAJORITY
257 * Auxilary flags for advanced extrusion.
258 * BOUNDARY: create or not boundary for result of extrusion
259 * SEW: try to use existing nodes or create new nodes in any case
261 const long EXTRUSION_FLAG_BOUNDARY = 1;
262 const long EXTRUSION_FLAG_SEW = 2;
265 * Structure used in mesh edit preview data (MeshPreviewStruct)
267 struct ElementSubType { ElementType SMDS_ElementType;
269 long nbNodesInElement; };
271 typedef sequence<ElementSubType> types_array;
274 * Structure containing mesh edit preview data
276 struct MeshPreviewStruct { nodes_array nodesXYZ;
277 long_array elementConnectivities;
278 types_array elementTypes; };
280 interface SMESH_Mesh;
282 interface SMESH_IDSource : SALOME::GenericObj
285 * Returns a sequence of all element IDs
290 * Returns number of mesh elements of each \a EntityType
291 * @return array of number of elements per \a EntityType
293 long_array GetMeshInfo();
296 * Returns number of mesh elements of each \a ElementType
297 * @return array of number of elements per \a ElementType
299 long_array GetNbElementsByType();
302 * Returns types of elements it contains.
303 * It's empty if the SMESH_IDSource contains no IDs
305 array_of_ElementType GetTypes();
310 SMESH_Mesh GetMesh();
313 * Returns false if GetMeshInfo() returns incorrect information that may
314 * happen if mesh data is not yet fully loaded from the file of study.
316 boolean IsMeshInfoCorrect();
319 * Returns mesh unstructed grid information.
321 SALOMEDS::TMPFile GetVtkUgStream();
324 interface SMESH_Group;
325 interface SMESH_GroupOnGeom;
327 interface SMESH_GroupOnFilter;
328 interface SMESH_subMesh;
329 interface SMESH_MeshEditor;
331 typedef sequence<SMESH_subMesh> submesh_array;
332 typedef sequence<submesh_array> submesh_array_array;
334 interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
337 * Return true if there is a geometry to be meshed
339 boolean HasShapeToMesh()
340 raises (SALOME::SALOME_Exception);
343 * Get geom shape to mesh. A result sould not be nil. Use HasShapeToMesh()
344 * to know if a returned shape
346 GEOM::GEOM_Object GetShapeToMesh()
347 raises (SALOME::SALOME_Exception);
350 * Return false if the mesh is not yet fully loaded from the study file
353 raises (SALOME::SALOME_Exception);
356 * Load full mesh data from the study file
359 raises (SALOME::SALOME_Exception);
362 * Remove all nodes and elements
365 raises (SALOME::SALOME_Exception);
368 * Get the list of sub-meshes existing in the mesh
370 submesh_array GetSubMeshes()
371 raises (SALOME::SALOME_Exception);
374 * Remove all nodes and elements of submesh
376 void ClearSubMesh(in long ShapeID)
377 raises (SALOME::SALOME_Exception);
380 * Get the subMesh object associated to a Sub-shape. The subMesh object
381 * gives access to nodes and elements IDs.
382 * SubMesh will be used instead of Sub-shape in a next idl version to
383 * adress a specific subMesh...
385 SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
386 raises (SALOME::SALOME_Exception);
391 void RemoveSubMesh(in SMESH_subMesh aSubMesh)
392 raises (SALOME::SALOME_Exception);
398 SMESH_Group CreateGroup( in ElementType elem_type,
400 raises (SALOME::SALOME_Exception);
403 * Create a group from geometry
405 SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elemType,
407 in GEOM::GEOM_Object geomObject )
408 raises (SALOME::SALOME_Exception);
411 * Create a group from filter
413 SMESH_GroupOnFilter CreateGroupFromFilter( in ElementType elemType,
415 in SMESH::Filter filter )
416 raises (SALOME::SALOME_Exception);
421 void RemoveGroup(in SMESH_GroupBase aGroup)
422 raises (SALOME::SALOME_Exception);
425 * Remove group with its contents
427 void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
428 raises (SALOME::SALOME_Exception);
431 * Get the list of groups existing in the mesh
433 ListOfGroups GetGroups()
434 raises (SALOME::SALOME_Exception);
437 * Get number of groups existing in the mesh
440 raises (SALOME::SALOME_Exception);
443 * Union of two groups
444 * New group is created. All mesh elements that are
445 * present in initial groups are added to the new one
447 SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
448 in SMESH_GroupBase aGroup2,
450 raises (SALOME::SALOME_Exception);
453 * Union of list of groups
454 * New group is created. All mesh elements that are
455 * present in initial groups are added to the new one
457 SMESH_Group UnionListOfGroups (in ListOfGroups aListOfGroups,
459 raises (SALOME::SALOME_Exception);
462 * Intersection of two groups
463 * New group is created. All mesh elements that are
464 * present in both initial groups are added to the new one.
466 SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
467 in SMESH_GroupBase aGroup2,
469 raises (SALOME::SALOME_Exception);
472 * Intersection of list of groups
473 * New group is created. All mesh elements that are
474 * present in all initial groups simultaneously are added to the new one.
476 SMESH_Group IntersectListOfGroups (in ListOfGroups aListOfGroups,
478 raises (SALOME::SALOME_Exception);
482 * New group is created. All mesh elements that are present in
483 * main group but do not present in tool group are added to the new one
485 SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
486 in SMESH_GroupBase aToolGroup,
488 raises (SALOME::SALOME_Exception);
491 * Cut of lists of groups
492 * New group is created. All mesh elements that are present in
493 * main groups but do not present in tool groups are added to the new one
495 SMESH_Group CutListOfGroups (in ListOfGroups aMainGroups,
496 in ListOfGroups aToolGroups,
498 raises (SALOME::SALOME_Exception);
501 * Create a group of entities basing on nodes of other groups.
502 * \param [in] aListOfGroups - list of either groups, sub-meshes or filters.
503 * \param [in] anElemType - a type of elements to include to the new group.
504 * \param [in] name - a name of the new group.
505 * \param [in] nbCommonNodes - criterion of inclusion of an element to the new group.
506 * \param [in] underlyingOnly - if \c True, an element is included to the
507 * new group provided that it is based on nodes of an element of
509 * \return SMESH_Group - the created group
511 SMESH_Group CreateDimGroup( in ListOfIDSources aListOfGroups,
512 in ElementType anElemType,
514 in NB_COMMON_NODES_ENUM nbCommonNodes,
515 in boolean underlyingOnly )
516 raises (SALOME::SALOME_Exception);
519 * Convert group on geometry or on filter into standalone group
521 SMESH_Group ConvertToStandalone( in SMESH_GroupBase theGroupOn )
522 raises (SALOME::SALOME_Exception);
525 * Add hypothesis to the mesh, under a particular sub-shape
526 * (or the main shape itself)
527 * This method is only used to prepare the build of the mesh and store
528 * the algorithms and associated parameters.
529 * Actual job of meshing the shape is done by SMESH_Gen::Compute()
531 * - aSubObject : sub-shape obtained by a shape explode in GEOM
533 * - anHyp : an hypothesis object
535 * - An enum item explaining what's up
536 * - anErrorText: an optional textual description of a problem (if any)
538 Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject,
539 in SMESH_Hypothesis anHyp,
540 out string anErrorText)
541 raises (SALOME::SALOME_Exception);
544 * Remove an hypothesis previouly added with AddHypothesis.
546 Hypothesis_Status RemoveHypothesis(in GEOM::GEOM_Object aSubObject,
547 in SMESH_Hypothesis anHyp)
548 raises (SALOME::SALOME_Exception);
551 * Get the list of hypothesis added on a sub-shape
553 ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Object aSubObject)
554 raises (SALOME::SALOME_Exception);
557 * Get the log of nodes and elements added or removed since previous
560 * - clearAfterGet : log is emptied after Get (safe if concurrents access)
562 log_array GetLog(in boolean clearAfterGet)
563 raises (SALOME::SALOME_Exception);
566 * Clear the log of nodes and elements added or removed since previous
567 * clear. Must be used immediately after GetLog if clearAfterGet is false.
570 raises (SALOME::SALOME_Exception);
573 * Toggle auto color mode on the object.
575 * - theAutoColor : flag which toggles auto color mode.
577 void SetAutoColor(in boolean theAutoColor)
578 raises (SALOME::SALOME_Exception);
581 * Get flag of object's auto color mode.
583 boolean GetAutoColor()
584 raises (SALOME::SALOME_Exception);
587 * Get the internal Id
597 * Obtain instance of SMESH_MeshEditor
599 SMESH_MeshEditor GetMeshEditor()
600 raises (SALOME::SALOME_Exception);
603 * Return SMESH_MeshEditor that would not modify the mesh but
604 * fill MeshPreviewStruct
606 SMESH_MeshEditor GetMeshEditPreviewer()
607 raises (SALOME::SALOME_Exception);
610 * Return true if the mesh has been edited since a total re-compute
611 * and those modifications may prevent successful partial re-compute
613 boolean HasModificationsToDiscard()
614 raises (SALOME::SALOME_Exception);
616 /*! Check group names for duplications.
617 * Consider maximum group name length stored in MED file.
619 boolean HasDuplicatedGroupNamesMED();
622 * Export Mesh to a MED Format file
624 * - file : name of the MED file
625 * - auto_groups : boolean parameter for creating/not creating
626 * the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
627 * the typical use is auto_groups=false.
628 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
629 * - autoDimension : if @c true, a space dimension of a MED mesh can be either
630 * - 1D if all mesh nodes lie on OX coordinate axis, or
631 * - 2D if all mesh nodes lie on XOY coordinate plane, or
632 * - 3D in the rest cases.
633 * If @a autoDimension is @c false, the space dimension is always 3.
635 void ExportToMEDX( in string file,
636 in boolean auto_groups,
637 in boolean overwrite,
638 in boolean autoDimension) raises (SALOME::SALOME_Exception);
641 * Export a [part of] Mesh into a MED file
643 * - meshPart : a part of mesh to store
644 * - file : name of the MED file
645 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
646 * - autoDimension : if @c True, a space dimension for export is defined by mesh
647 * configuration; for example a planar mesh lying on XOY plane
648 * will be exported as a mesh in 2D space.
649 * If @a autoDimension == @c False, the space dimension is 3.
650 * - fields : list of GEOM fields defined on the shape to mesh.
651 * - geomAssocFields : each character of this string means a need to export a
652 * corresponding field; correspondence between fields and characters is following:
653 * - 'v' stands for _vertices_ field;
654 * - 'e' stands for _edges_ field;
655 * - 'f' stands for _faces_ field;
656 * - 's' stands for _solids_ field.
658 void ExportPartToMED( in SMESH_IDSource meshPart,
660 in boolean auto_groups,
661 in boolean overwrite,
662 in boolean autoDimension,
663 in GEOM::ListOfFields fields,
664 in string geomAssocFields ) raises (SALOME::SALOME_Exception);
667 * Export Mesh to a MED file
668 * Works, just the same as ExportToMEDX, with overwrite parameter equal to true.
669 * The method is kept in order to support old functionality
671 void ExportToMED( in string file, in boolean auto_groups )
672 raises (SALOME::SALOME_Exception);
675 * Export Mesh to MED file.
676 * This method is deprecated; it is kept only to support old functionality.
677 * Works exactly as ExportToMED method.
679 void ExportMED( in string file, in boolean auto_groups )
680 raises (SALOME::SALOME_Exception);
683 * Export Mesh to SAUV formatted file
684 * Write a temporary med file and use med2sauv
686 void ExportSAUV( in string file, in boolean auto_groups )
687 raises (SALOME::SALOME_Exception);
690 * Export Mesh to different Formats
691 * (UNV supported version is I-DEAS 10)
693 void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
694 void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
695 void ExportSTL( in string file,
696 in boolean isascii ) raises (SALOME::SALOME_Exception);
697 void ExportCGNS( in SMESH_IDSource meshPart,
699 in boolean overwrite ) raises (SALOME::SALOME_Exception);
700 void ExportGMF( in SMESH_IDSource meshPart,
702 in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
703 void ExportPartToDAT( in SMESH_IDSource meshPart,
704 in string file ) raises (SALOME::SALOME_Exception);
705 void ExportPartToUNV( in SMESH_IDSource meshPart,
706 in string file ) raises (SALOME::SALOME_Exception);
707 void ExportPartToSTL( in SMESH_IDSource meshPart,
709 in boolean isascii ) raises (SALOME::SALOME_Exception);
711 * Return computation progress [0.,1]
713 double GetComputeProgress();
716 * Get informations about mesh contents
719 raises (SALOME::SALOME_Exception);
722 raises (SALOME::SALOME_Exception);
725 raises (SALOME::SALOME_Exception);
728 raises (SALOME::SALOME_Exception);
731 raises (SALOME::SALOME_Exception);
733 long NbEdgesOfOrder(in ElementOrder order)
734 raises (SALOME::SALOME_Exception);
737 raises (SALOME::SALOME_Exception);
739 long NbFacesOfOrder(in ElementOrder order)
740 raises (SALOME::SALOME_Exception);
743 raises (SALOME::SALOME_Exception);
745 long NbTrianglesOfOrder(in ElementOrder order)
746 raises (SALOME::SALOME_Exception);
748 long NbBiQuadTriangles()
749 raises (SALOME::SALOME_Exception);
752 raises (SALOME::SALOME_Exception);
754 long NbQuadranglesOfOrder(in ElementOrder order)
755 raises (SALOME::SALOME_Exception);
757 long NbBiQuadQuadrangles()
758 raises (SALOME::SALOME_Exception);
761 raises (SALOME::SALOME_Exception);
763 long NbPolygonsOfOrder(in ElementOrder order)
764 raises (SALOME::SALOME_Exception);
767 raises (SALOME::SALOME_Exception);
769 long NbVolumesOfOrder(in ElementOrder order)
770 raises (SALOME::SALOME_Exception);
773 raises (SALOME::SALOME_Exception);
775 long NbTetrasOfOrder(in ElementOrder order)
776 raises (SALOME::SALOME_Exception);
779 raises (SALOME::SALOME_Exception);
781 long NbHexasOfOrder(in ElementOrder order)
782 raises (SALOME::SALOME_Exception);
784 long NbTriQuadraticHexas()
785 raises (SALOME::SALOME_Exception);
788 raises (SALOME::SALOME_Exception);
790 long NbPyramidsOfOrder(in ElementOrder order)
791 raises (SALOME::SALOME_Exception);
794 raises (SALOME::SALOME_Exception);
796 long NbPrismsOfOrder(in ElementOrder order)
797 raises (SALOME::SALOME_Exception);
799 long NbHexagonalPrisms()
800 raises (SALOME::SALOME_Exception);
803 raises (SALOME::SALOME_Exception);
806 raises (SALOME::SALOME_Exception);
808 long_array GetElementsId()
809 raises (SALOME::SALOME_Exception);
811 long_array GetElementsByType( in ElementType theType )
812 raises (SALOME::SALOME_Exception);
814 long_array GetNodesId()
815 raises (SALOME::SALOME_Exception);
818 * Returns type of mesh element
820 ElementType GetElementType( in long id, in boolean iselem )
821 raises (SALOME::SALOME_Exception);
823 EntityType GetElementGeomType( in long id )
824 raises (SALOME::SALOME_Exception);
826 GeometryType GetElementShape( in long id )
827 raises (SALOME::SALOME_Exception);
829 long_array GetSubMeshElementsId(in long ShapeID)
830 raises (SALOME::SALOME_Exception);
832 long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
833 raises (SALOME::SALOME_Exception);
835 ElementType GetSubMeshElementType(in long ShapeID)
836 raises (SALOME::SALOME_Exception);
840 * Methods to set meshing order of submeshes
844 * \brief Return \c true if a meshing order not yet set for a concurrent sub-mesh
846 boolean IsUnorderedSubMesh(in long submeshID);
849 * \brief Return submesh objects list in meshing order
851 submesh_array_array GetMeshOrder();
854 * \brief Set submesh object order
856 boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
860 * Get mesh description
867 long long GetMeshPtr();
870 * Get XYZ coordinates of node as list of double
871 * If there is not node for given ID - returns empty list
873 double_array GetNodeXYZ(in long id);
876 * For given node returns list of IDs of inverse elements
877 * If there is not node for given ID - returns empty list
879 long_array GetNodeInverseElements(in long id);
882 * \brief Return position of a node on shape
884 NodePosition GetNodePosition(in long NodeID);
887 * \brief Return position of an element on shape
889 ElementPosition GetElementPosition(in long ElemID);
892 * If given element is node returns IDs of shape from position
893 * If there is not node for given ID - returns -1
895 long GetShapeID(in long id);
898 * For given element returns ID of result shape after
899 * ::FindShape() from SMESH_MeshEditor
900 * If there is not element for given ID - returns -1
902 long GetShapeIDForElem(in long id);
905 * Returns number of nodes for given element
906 * If there is not element for given ID - returns -1
908 long GetElemNbNodes(in long id);
911 * Returns IDs of nodes of given element
913 long_array GetElemNodes(in long id);
916 * Returns ID of node by given index for given element
917 * If there is not element for given ID - returns -1
918 * If there is not node for given index - returns -2
920 long GetElemNode(in long id, in long index);
923 * Returns true if given node is medium node
924 * in given quadratic element
926 boolean IsMediumNode(in long ide, in long idn);
929 * Returns true if given node is medium node
930 * in one of quadratic elements
932 boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
935 * Returns number of edges for given element
937 long ElemNbEdges(in long id);
940 * Returns number of faces for given element
942 long ElemNbFaces(in long id);
945 * Returns nodes of given face (counted from zero) for given volumic element.
947 long_array GetElemFaceNodes(in long elemId, in short faceIndex);
950 * Returns three components of normal of given mesh face (or an empty array in KO case)
952 double_array GetFaceNormal(in long faceId, in boolean normalized);
955 * Returns an element based on all given nodes.
957 long FindElementByNodes(in long_array nodes);
960 * Returns true if given element is polygon
962 boolean IsPoly(in long id);
965 * Returns true if given element is quadratic
967 boolean IsQuadratic(in long id);
970 * Returns diameter of a ball discrete element or zero in case of an invalid \a id
972 double GetBallDiameter(in long id);
975 * Returns XYZ coordinates of bary center for given element
977 * If there is not element for given ID - returns empty list
979 double_array BaryCenter(in long id);
981 /*! Gets information about imported MED file */
982 MedFileInfo GetMEDFileInfo();
985 * Sets list of notebook variables used for Mesh operations separated by ":" symbol
986 * \param theParameters is a string containing the notebook variables
988 void SetParameters (in string theParameters);
991 * Returns list of notebook variables used for Mesh operations separated by ":" symbol
993 string GetParameters();
996 * Returns list of notebook variables used for last Mesh operation
998 string_array GetLastParameters();
1001 interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
1006 long GetNumberOfElements()
1007 raises (SALOME::SALOME_Exception);
1012 long GetNumberOfNodes( in boolean all )
1013 raises (SALOME::SALOME_Exception);
1018 long_array GetElementsId()
1019 raises (SALOME::SALOME_Exception);
1024 long_array GetElementsByType( in ElementType theType )
1025 raises (SALOME::SALOME_Exception);
1028 * Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
1030 ElementType GetElementType( in long id, in boolean iselem )
1031 raises (SALOME::SALOME_Exception);
1036 long_array GetNodesId()
1037 raises (SALOME::SALOME_Exception);
1040 * Get geom shape the submesh is dedicated to
1042 GEOM::GEOM_Object GetSubShape()
1043 raises (SALOME::SALOME_Exception);
1046 * Get SMESH_Mesh which stores nodes coordinates & elements definition
1048 SMESH_Mesh GetFather()
1049 raises (SALOME::SALOME_Exception);
1052 * Get the internal Id