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 * Auxiliary 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 : 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 should 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 * address 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
592 * Obtain instance of SMESH_MeshEditor
594 SMESH_MeshEditor GetMeshEditor()
595 raises (SALOME::SALOME_Exception);
598 * Return SMESH_MeshEditor that would not modify the mesh but
599 * fill MeshPreviewStruct
601 SMESH_MeshEditor GetMeshEditPreviewer()
602 raises (SALOME::SALOME_Exception);
605 * Return true if the mesh has been edited since a total re-compute
606 * and those modifications may prevent successful partial re-compute
608 boolean HasModificationsToDiscard()
609 raises (SALOME::SALOME_Exception);
611 /*! Check group names for duplications.
612 * Consider maximum group name length stored in MED file.
614 boolean HasDuplicatedGroupNamesMED();
617 * Export a Mesh to MED file.
619 * - fileName : name of the MED file
620 * - auto_groups : boolean parameter for creating/not creating
621 * the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
622 * the typical use is auto_groups=false.
623 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
624 * - autoDimension : if @c true, a space dimension of a MED mesh can be either
625 * - 1D if all mesh nodes lie on OX coordinate axis, or
626 * - 2D if all mesh nodes lie on XOY coordinate plane, or
627 * - 3D in the rest cases.
628 * If @a autoDimension is @c false, the space dimension is always 3.
630 void ExportMED( in string fileName,
631 in boolean auto_groups,
632 in boolean overwrite,
633 in boolean autoDimension) raises (SALOME::SALOME_Exception);
636 * Export a [part of] Mesh into a MED file
638 * - meshPart : a part of mesh to store
639 * - fileName : name of the MED file
640 * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists
641 * - autoDimension : if @c True, a space dimension for export is defined by mesh
642 * configuration; for example a planar mesh lying on XOY plane
643 * will be exported as a mesh in 2D space.
644 * If @a autoDimension == @c False, the space dimension is 3.
645 * - fields : list of GEOM fields defined on the shape to mesh.
646 * - geomAssocFields : each character of this string means a need to export a
647 * corresponding field; correspondence between fields and characters is following:
648 * - 'v' stands for _vertices_ field;
649 * - 'e' stands for _edges_ field;
650 * - 'f' stands for _faces_ field;
651 * - 's' stands for _solids_ field.
653 void ExportPartToMED( in SMESH_IDSource meshPart,
655 in boolean auto_groups,
656 in boolean overwrite,
657 in boolean autoDimension,
658 in GEOM::ListOfFields fields,
659 in string geomAssocFields ) raises (SALOME::SALOME_Exception);
662 * Export Mesh to SAUV formatted file
663 * Write a temporary med file and use med2sauv
665 void ExportSAUV( in string file, in boolean auto_groups )
666 raises (SALOME::SALOME_Exception);
669 * Export Mesh to different Formats
670 * (UNV supported version is I-DEAS 10)
672 void ExportDAT( in string file ) raises (SALOME::SALOME_Exception);
673 void ExportUNV( in string file ) raises (SALOME::SALOME_Exception);
674 void ExportSTL( in string file,
675 in boolean isascii ) raises (SALOME::SALOME_Exception);
676 void ExportCGNS( in SMESH_IDSource meshPart,
678 in boolean overwrite ) raises (SALOME::SALOME_Exception);
679 void ExportGMF( in SMESH_IDSource meshPart,
681 in boolean withRequiredGroups) raises (SALOME::SALOME_Exception);
682 void ExportPartToDAT( in SMESH_IDSource meshPart,
683 in string file ) raises (SALOME::SALOME_Exception);
684 void ExportPartToUNV( in SMESH_IDSource meshPart,
685 in string file ) raises (SALOME::SALOME_Exception);
686 void ExportPartToSTL( in SMESH_IDSource meshPart,
688 in boolean isascii ) raises (SALOME::SALOME_Exception);
690 * Return computation progress [0.,1]
692 double GetComputeProgress();
695 * Get informations about mesh contents
698 raises (SALOME::SALOME_Exception);
701 raises (SALOME::SALOME_Exception);
704 raises (SALOME::SALOME_Exception);
707 raises (SALOME::SALOME_Exception);
710 raises (SALOME::SALOME_Exception);
712 long NbEdgesOfOrder(in ElementOrder order)
713 raises (SALOME::SALOME_Exception);
716 raises (SALOME::SALOME_Exception);
718 long NbFacesOfOrder(in ElementOrder order)
719 raises (SALOME::SALOME_Exception);
722 raises (SALOME::SALOME_Exception);
724 long NbTrianglesOfOrder(in ElementOrder order)
725 raises (SALOME::SALOME_Exception);
727 long NbBiQuadTriangles()
728 raises (SALOME::SALOME_Exception);
731 raises (SALOME::SALOME_Exception);
733 long NbQuadranglesOfOrder(in ElementOrder order)
734 raises (SALOME::SALOME_Exception);
736 long NbBiQuadQuadrangles()
737 raises (SALOME::SALOME_Exception);
740 raises (SALOME::SALOME_Exception);
742 long NbPolygonsOfOrder(in ElementOrder order)
743 raises (SALOME::SALOME_Exception);
746 raises (SALOME::SALOME_Exception);
748 long NbVolumesOfOrder(in ElementOrder order)
749 raises (SALOME::SALOME_Exception);
752 raises (SALOME::SALOME_Exception);
754 long NbTetrasOfOrder(in ElementOrder order)
755 raises (SALOME::SALOME_Exception);
758 raises (SALOME::SALOME_Exception);
760 long NbHexasOfOrder(in ElementOrder order)
761 raises (SALOME::SALOME_Exception);
763 long NbTriQuadraticHexas()
764 raises (SALOME::SALOME_Exception);
767 raises (SALOME::SALOME_Exception);
769 long NbPyramidsOfOrder(in ElementOrder order)
770 raises (SALOME::SALOME_Exception);
773 raises (SALOME::SALOME_Exception);
775 long NbPrismsOfOrder(in ElementOrder order)
776 raises (SALOME::SALOME_Exception);
778 long NbHexagonalPrisms()
779 raises (SALOME::SALOME_Exception);
782 raises (SALOME::SALOME_Exception);
785 raises (SALOME::SALOME_Exception);
787 long_array GetElementsId()
788 raises (SALOME::SALOME_Exception);
790 long_array GetElementsByType( in ElementType theType )
791 raises (SALOME::SALOME_Exception);
793 long_array GetNodesId()
794 raises (SALOME::SALOME_Exception);
797 * Returns type of mesh element
799 ElementType GetElementType( in long id, in boolean iselem )
800 raises (SALOME::SALOME_Exception);
802 EntityType GetElementGeomType( in long id )
803 raises (SALOME::SALOME_Exception);
805 GeometryType GetElementShape( in long id )
806 raises (SALOME::SALOME_Exception);
808 long_array GetSubMeshElementsId(in long ShapeID)
809 raises (SALOME::SALOME_Exception);
811 long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
812 raises (SALOME::SALOME_Exception);
814 ElementType GetSubMeshElementType(in long ShapeID)
815 raises (SALOME::SALOME_Exception);
819 * Methods to set meshing order of submeshes
823 * \brief Return \c true if a meshing order not yet set for a concurrent sub-mesh
825 boolean IsUnorderedSubMesh(in long submeshID);
828 * \brief Return submesh objects list in meshing order
830 submesh_array_array GetMeshOrder();
833 * \brief Set submesh object order
835 boolean SetMeshOrder(in submesh_array_array theSubMeshArray);
839 * Get mesh description
846 long long GetMeshPtr();
849 * Get XYZ coordinates of node as list of double
850 * If there is not node for given ID - returns empty list
852 double_array GetNodeXYZ(in long id);
855 * For given node returns list of IDs of inverse elements
856 * If there is not node for given ID - returns empty list
858 long_array GetNodeInverseElements(in long id);
861 * \brief Return position of a node on shape
863 NodePosition GetNodePosition(in long NodeID);
866 * \brief Return position of an element on shape
868 ElementPosition GetElementPosition(in long ElemID);
871 * If given element is node returns IDs of shape from position
872 * If there is not node for given ID - returns -1
874 long GetShapeID(in long id);
877 * For given element returns ID of result shape after
878 * ::FindShape() from SMESH_MeshEditor
879 * If there is not element for given ID - returns -1
881 long GetShapeIDForElem(in long id);
884 * Returns number of nodes for given element
885 * If there is not element for given ID - returns -1
887 long GetElemNbNodes(in long id);
890 * Returns IDs of nodes of given element
892 long_array GetElemNodes(in long id);
895 * Returns ID of node by given index for given element
896 * If there is not element for given ID - returns -1
897 * If there is not node for given index - returns -2
899 long GetElemNode(in long id, in long index);
902 * Returns true if given node is medium node
903 * in given quadratic element
905 boolean IsMediumNode(in long ide, in long idn);
908 * Returns true if given node is medium node
909 * in one of quadratic elements
911 boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
914 * Returns number of edges for given element
916 long ElemNbEdges(in long id);
919 * Returns number of faces for given element
921 long ElemNbFaces(in long id);
924 * Returns nodes of given face (counted from zero) for given volumic element.
926 long_array GetElemFaceNodes(in long elemId, in short faceIndex);
929 * Returns three components of normal of given mesh face (or an empty array in KO case)
931 double_array GetFaceNormal(in long faceId, in boolean normalized);
934 * Returns an element based on all given nodes.
936 long FindElementByNodes(in long_array nodes);
939 * Return elements including all given nodes.
941 long_array GetElementsByNodes(in long_array nodes, in ElementType elem_type);
944 * Returns true if given element is polygon
946 boolean IsPoly(in long id);
949 * Returns true if given element is quadratic
951 boolean IsQuadratic(in long id);
954 * Returns diameter of a ball discrete element or zero in case of an invalid \a id
956 double GetBallDiameter(in long id);
959 * Returns XYZ coordinates of bary center for given element
961 * If there is not element for given ID - returns empty list
963 double_array BaryCenter(in long id);
965 /*! Gets information about imported MED file */
966 MedFileInfo GetMEDFileInfo();
969 * Sets list of notebook variables used for Mesh operations separated by ":" symbol
970 * \param theParameters is a string containing the notebook variables
972 void SetParameters (in string theParameters);
975 * Returns list of notebook variables used for Mesh operations separated by ":" symbol
977 string GetParameters();
980 * Returns list of notebook variables used for last Mesh operation
982 string_array GetLastParameters();
985 interface SMESH_subMesh : SMESH_IDSource
990 long GetNumberOfElements()
991 raises (SALOME::SALOME_Exception);
996 long GetNumberOfNodes( in boolean all )
997 raises (SALOME::SALOME_Exception);
1002 long_array GetElementsId()
1003 raises (SALOME::SALOME_Exception);
1008 long_array GetElementsByType( in ElementType theType )
1009 raises (SALOME::SALOME_Exception);
1012 * Returns type of mesh element (same as SMESH_Mesh::GetElementType() )
1014 ElementType GetElementType( in long id, in boolean iselem )
1015 raises (SALOME::SALOME_Exception);
1020 long_array GetNodesId()
1021 raises (SALOME::SALOME_Exception);
1024 * Get geom shape the submesh is dedicated to
1026 GEOM::GEOM_Object GetSubShape()
1027 raises (SALOME::SALOME_Exception);
1030 * Get SMESH_Mesh which stores nodes coordinates & elements definition
1032 SMESH_Mesh GetFather()
1033 raises (SALOME::SALOME_Exception);
1036 * Get the internal Id