idl/SMESH_Mesh.idl

Go to the documentation of this file.
00001 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00002 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00003 //
00004 //  This library is free software; you can redistribute it and/or
00005 //  modify it under the terms of the GNU Lesser General Public
00006 //  License as published by the Free Software Foundation; either
00007 //  version 2.1 of the License.
00008 //
00009 //  This library is distributed in the hope that it will be useful,
00010 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 //  Lesser General Public License for more details.
00013 //
00014 //  You should have received a copy of the GNU Lesser General Public
00015 //  License along with this library; if not, write to the Free Software
00016 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00017 //
00018 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00019 //
00020 //
00021 //
00022 //  File   : SMESH_Mesh.idl
00023 //  Author : Paul RASCLE, EDF
00024 //  $Header: /home/server/cvs/SMESH/SMESH_SRC/idl/SMESH_Mesh.idl,v 1.18 2006/06/01 11:39:15 jfa Exp $
00025 
00026 #ifndef _SMESH_MESH_IDL_
00027 #define _SMESH_MESH_IDL_
00028 
00029 #include "SALOME_Exception.idl"
00030 #include "SALOME_GenericObj.idl"
00031 #include "GEOM_Gen.idl"
00032 #include "MED.idl"
00033 
00034 module SMESH
00035 {
00036   interface SMESH_Hypothesis;
00037   typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
00038   interface SMESH_GroupBase;
00039   typedef sequence<SMESH_GroupBase> ListOfGroups;
00040 
00041   typedef sequence<double> double_array ;
00042   typedef sequence<long> long_array ;
00043   typedef sequence<string> string_array ;
00044   typedef sequence<long_array> array_of_long_array ;
00045 
00046   enum log_command
00047     {
00048       ADD_NODE,
00049       ADD_EDGE,
00050       ADD_TRIANGLE,
00051       ADD_QUADRANGLE,
00052       ADD_POLYGON,
00053       ADD_TETRAHEDRON,
00054       ADD_PYRAMID,
00055       ADD_PRISM,
00056       ADD_HEXAHEDRON,
00057       ADD_POLYHEDRON,
00058       REMOVE_NODE,
00059       REMOVE_ELEMENT,
00060       MOVE_NODE,
00061       CHANGE_ELEMENT_NODES,
00062       CHANGE_POLYHEDRON_NODES,
00063       RENUMBER,
00064       ADD_QUADEDGE,
00065       ADD_QUADTRIANGLE,
00066       ADD_QUADQUADRANGLE,
00067       ADD_QUADTETRAHEDRON,
00068       ADD_QUADPYRAMID,
00069       ADD_QUADPENTAHEDRON,
00070       ADD_QUADHEXAHEDRON
00071     };
00072 
00073   struct log_block
00074   {
00075     long commandType;
00076     long number;
00077     double_array coords;
00078     long_array indexes;
00079   };
00080 
00081   struct PointStruct { double x;
00082                  double y;
00083                  double z; } ;
00084   struct DirStruct   { PointStruct PS ; } ;          // analog to Occ Direction
00085 
00086   struct AxisStruct  { double x;
00087                  double y;
00088                  double z;
00089                  double vx;
00090                  double vy;
00091                  double vz; } ;
00092 
00093 
00097   enum ElementType
00098   {
00099     ALL,
00100     NODE,
00101     EDGE,
00102     FACE,
00103     VOLUME
00104   };
00105   
00109   enum ElementOrder {
00110     ORDER_ANY,          
00111     ORDER_LINEAR,       
00112     ORDER_QUADRATIC     
00113   };
00114 
00118   enum Hypothesis_Status // in the order of severity
00119   {
00120     HYP_OK,
00121     HYP_MISSING,      // algo misses a hypothesis
00122     HYP_CONCURENT,    // several applicable hypotheses
00123     HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
00124     HYP_UNKNOWN_FATAL,//  --- all statuses below should be considered as fatal
00125                       //      for Add/RemoveHypothesis operations
00126     HYP_INCOMPATIBLE, // hypothesis does not fit algo
00127     HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
00128     HYP_ALREADY_EXIST,// such hypothesis already exist
00129     HYP_BAD_DIM,      // bad dimension
00130     HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
00131   };
00132 
00136   enum DriverMED_ReadStatus // in the order of severity
00137   {
00138     DRS_OK,
00139     DRS_EMPTY,          // a MED file contains no mesh with the given name
00140     DRS_WARN_RENUMBER,  // a MED file has overlapped ranges of element numbers,
00141                         // so the numbers from the file are ignored
00142     DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
00143     DRS_FAIL            // general failure (exception etc.)
00144   };
00145 
00149   enum MED_VERSION // in the order of severity
00150   {
00151     MED_V2_1,
00152     MED_V2_2
00153   };
00154 
00155   typedef sequence<log_block> log_array;
00156 
00157 
00163   const long EXTRUSION_FLAG_BOUNDARY = 1;
00164   const long EXTRUSION_FLAG_SEW = 2;
00165   
00166   interface SMESH_IDSource
00167   {
00171     long_array GetIDs();
00172   };
00173 
00174   interface SMESH_Group;
00175   interface SMESH_GroupOnGeom;
00176   interface SMESH_subMesh;
00177   interface SMESH_MeshEditor;
00178   interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
00179   {
00181     // * Associate a Shape to a Mesh created with NewEmpty
00182     // */
00183     //boolean SetMesh(in GEOM::GEOM_Object anObject)
00184     //  raises (SALOME::SALOME_Exception);
00185 
00192     SMESH_subMesh GetSubMesh(in GEOM::GEOM_Object aSubObject, in string name)
00193       raises (SALOME::SALOME_Exception);
00194 
00196     // * Create a subMesh without reference to a subShape
00197     // */
00198     //SMESH_subMesh NewEmpty()
00199     //  raises (SALOME::SALOME_Exception);
00200 
00204     GEOM::GEOM_Object GetShapeToMesh()
00205       raises (SALOME::SALOME_Exception);
00206 
00210     void RemoveSubMesh(in SMESH_subMesh aSubMesh)
00211       raises (SALOME::SALOME_Exception);
00212 
00216     SMESH_Group CreateGroup( in ElementType elem_type,
00217                     in string name )
00218       raises (SALOME::SALOME_Exception);
00219 
00223     SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
00224                                           in string name,
00225                                           in GEOM::GEOM_Object theGeomObject )
00226       raises (SALOME::SALOME_Exception);
00227 
00231     void RemoveGroup(in SMESH_GroupBase aGroup)
00232       raises (SALOME::SALOME_Exception);
00233 
00237     void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
00238       raises (SALOME::SALOME_Exception);
00239 
00243     ListOfGroups GetGroups()
00244       raises (SALOME::SALOME_Exception);
00245 
00251     SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
00252                              in SMESH_GroupBase aGroup2,
00253                              in string          name )
00254       raises (SALOME::SALOME_Exception);
00255 
00261     SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
00262                                  in SMESH_GroupBase aGroup2,
00263                                  in string          name )
00264       raises (SALOME::SALOME_Exception);
00265 
00271     SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
00272                   in SMESH_GroupBase aToolGroup,
00273                   in string          name )
00274       raises (SALOME::SALOME_Exception);
00275 
00293     Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject,
00294                         in SMESH_Hypothesis anHyp)
00295       raises (SALOME::SALOME_Exception);
00296 //     boolean AddHypothesis(in SMESH_subMesh aSubMesh, in SMESH_Hypothesis anHyp)
00297 //       raises (SALOME::SALOME_Exception);
00298 
00302     Hypothesis_Status RemoveHypothesis(in GEOM::GEOM_Object aSubObject,
00303                            in SMESH_Hypothesis anHyp)
00304       raises (SALOME::SALOME_Exception);
00305 //     boolean RemoveHypothesis(in SMESH_subMesh aSubMesh,
00306 //                  in SMESH_Hypothesis anHyp)
00307 //       raises (SALOME::SALOME_Exception);
00308 
00312     ListOfHypothesis GetHypothesisList(in GEOM::GEOM_Object aSubObject)
00313       raises (SALOME::SALOME_Exception);
00314 //     ListOfHypothesis GetHypothesisList(in SMESH_subMesh aSubMesh)
00315 //       raises (SALOME::SALOME_Exception);
00316 
00323     //    string_array GetLog(in boolean clearAfterGet)
00324     //      raises (SALOME::SALOME_Exception);
00325     log_array GetLog(in boolean clearAfterGet)
00326       raises (SALOME::SALOME_Exception);
00327 
00332     void ClearLog()
00333       raises (SALOME::SALOME_Exception);
00334 
00338     long GetId();
00339 
00343     long GetStudyId();
00344 
00348     SMESH_MeshEditor GetMeshEditor()
00349       raises (SALOME::SALOME_Exception);
00350 
00354     boolean HasDuplicatedGroupNamesMED();
00355 
00364     void ExportToMED( in string file, in boolean auto_groups, in MED_VERSION theVersion )
00365       raises (SALOME::SALOME_Exception);
00366 
00372     void ExportMED( in string file, in boolean auto_groups )
00373       raises (SALOME::SALOME_Exception);
00374 
00378     void ExportDAT( in string file )
00379       raises (SALOME::SALOME_Exception);
00380     void ExportUNV( in string file )
00381       raises (SALOME::SALOME_Exception);
00382     void ExportSTL( in string file, in boolean isascii )
00383       raises (SALOME::SALOME_Exception);
00384 
00388     SALOME_MED::MESH GetMEDMesh()
00389       raises (SALOME::SALOME_Exception);
00390 
00394     long NbNodes()
00395       raises (SALOME::SALOME_Exception);
00396 
00397     long NbElements()
00398       raises (SALOME::SALOME_Exception);
00399 
00400     long NbEdges()
00401       raises (SALOME::SALOME_Exception);
00402 
00403     long NbEdgesOfOrder(in ElementOrder order)
00404       raises (SALOME::SALOME_Exception);
00405 
00406     long NbFaces()
00407       raises (SALOME::SALOME_Exception);
00408 
00409     long NbFacesOfOrder(in ElementOrder order)
00410       raises (SALOME::SALOME_Exception);
00411 
00412     long NbTriangles()
00413       raises (SALOME::SALOME_Exception);
00414 
00415     long NbTrianglesOfOrder(in ElementOrder order)
00416       raises (SALOME::SALOME_Exception);
00417 
00418     long NbQuadrangles()
00419       raises (SALOME::SALOME_Exception);
00420 
00421     long NbQuadranglesOfOrder(in ElementOrder order)
00422       raises (SALOME::SALOME_Exception);
00423 
00424     long NbPolygons()
00425       raises (SALOME::SALOME_Exception);
00426 
00427     long NbVolumes()
00428       raises (SALOME::SALOME_Exception);
00429 
00430     long NbVolumesOfOrder(in ElementOrder order)
00431       raises (SALOME::SALOME_Exception);
00432 
00433     long NbTetras()
00434       raises (SALOME::SALOME_Exception);
00435 
00436     long NbTetrasOfOrder(in ElementOrder order)
00437       raises (SALOME::SALOME_Exception);
00438 
00439     long NbHexas()
00440       raises (SALOME::SALOME_Exception);
00441 
00442     long NbHexasOfOrder(in ElementOrder order)
00443       raises (SALOME::SALOME_Exception);
00444 
00445     long NbPyramids()
00446       raises (SALOME::SALOME_Exception);
00447 
00448     long NbPyramidsOfOrder(in ElementOrder order)
00449       raises (SALOME::SALOME_Exception);
00450 
00451     long NbPrisms()
00452       raises (SALOME::SALOME_Exception);
00453 
00454     long NbPrismsOfOrder(in ElementOrder order)
00455       raises (SALOME::SALOME_Exception);
00456 
00457     long NbPolyhedrons()
00458       raises (SALOME::SALOME_Exception);
00459 
00460     long NbSubMesh()
00461       raises (SALOME::SALOME_Exception);
00462 
00463     long_array GetElementsId()
00464       raises (SALOME::SALOME_Exception);
00465 
00466     long_array GetElementsByType( in ElementType theType )
00467       raises (SALOME::SALOME_Exception);
00468 
00469     long_array GetNodesId()
00470       raises (SALOME::SALOME_Exception);
00471     
00475     ElementType GetElementType( in long id, in boolean iselem )
00476       raises (SALOME::SALOME_Exception);
00477 
00478     long_array GetSubMeshElementsId(in long ShapeID)
00479       raises (SALOME::SALOME_Exception);
00480 
00481     long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
00482       raises (SALOME::SALOME_Exception);
00483     
00484     ElementType GetSubMeshElementType(in long ShapeID)
00485       raises (SALOME::SALOME_Exception);
00486 
00490     string Dump();
00491 
00495     long GetMeshPtr();
00496 
00501     double_array GetNodeXYZ(in long id);
00502 
00507     long_array GetNodeInverseElements(in long id);
00508 
00515     long GetShapeID(in long id);
00516 
00521     long GetElemNbNodes(in long id);
00522 
00528     long GetElemNode(in long id, in long index);
00529 
00534     boolean IsMediumNode(in long ide, in long idn);
00535 
00540     boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
00541 
00545     long ElemNbEdges(in long id);
00546 
00550     long ElemNbFaces(in long id);
00551 
00555     boolean IsPoly(in long id);
00556 
00560     boolean IsQuadratic(in long id);
00561 
00567     double_array BaryCenter(in long id);
00568 
00569   };
00570 
00571   interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
00572   {
00576     long GetNumberOfElements()
00577       raises (SALOME::SALOME_Exception);
00578 
00582     long GetNumberOfNodes( in boolean all )
00583       raises (SALOME::SALOME_Exception);
00584 
00588     long_array GetElementsId()
00589       raises (SALOME::SALOME_Exception);
00590 
00594     long_array GetElementsByType( in ElementType theType )
00595       raises (SALOME::SALOME_Exception);
00596     
00600     ElementType GetElementType( in long id, in boolean iselem )
00601       raises (SALOME::SALOME_Exception);
00602 
00606     long_array GetNodesId()
00607       raises (SALOME::SALOME_Exception);
00608 
00612     GEOM::GEOM_Object GetSubShape()
00613       raises (SALOME::SALOME_Exception);
00614 
00618     SMESH_Mesh GetFather()
00619       raises (SALOME::SALOME_Exception);
00620 
00624     long GetId();
00625 
00629     SALOME_MED::FAMILY GetFamily()
00630       raises (SALOME::SALOME_Exception);
00631   };
00632 
00636   interface NumericalFunctor;
00637   interface SMESH_MeshEditor
00638   {
00639     boolean RemoveElements(in long_array IDsOfElements);
00640 
00641     boolean RemoveNodes(in long_array IDsOfNodes);
00642 
00643     long AddNode(in double x, in double y, in double z);
00644 
00645     long AddEdge(in long_array IDsOfNodes);
00646 
00647     long AddFace(in long_array IDsOfNodes);
00648 
00649     long AddPolygonalFace(in long_array IdsOfNodes);
00650 
00651     long AddVolume(in long_array IDsOfNodes);
00652 
00659     long AddPolyhedralVolume (in long_array IdsOfNodes,
00660                      in long_array Quantities);
00661 
00668     long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
00669 
00670     boolean MoveNode(in long NodeID, in double x, in double y, in double z);
00671 
00672     boolean InverseDiag(in long NodeID1, in long NodeID2);
00673 
00674     boolean DeleteDiag(in long NodeID1, in long NodeID2);
00675 
00676     boolean Reorient(in long_array IDsOfElements);
00677 
00678     boolean ReorientObject(in SMESH_IDSource theObject);
00679 
00688     boolean TriToQuad (in long_array       IDsOfElements,
00689                  in NumericalFunctor Criterion,
00690                  in double           MaxAngle);
00691 
00697     boolean TriToQuadObject (in SMESH_IDSource   theObject,
00698                     in NumericalFunctor Criterion,
00699                     in double           MaxAngle);
00700 
00707     boolean QuadToTri (in long_array       IDsOfElements,
00708                  in NumericalFunctor Criterion);
00709 
00715     boolean QuadToTriObject (in SMESH_IDSource   theObject,
00716                     in NumericalFunctor Criterion);
00717 
00724     boolean SplitQuad (in long_array IDsOfElements,
00725                  in boolean    Diag13);
00726 
00732     boolean SplitQuadObject (in SMESH_IDSource theObject,
00733                     in boolean        Diag13);
00734 
00742     long BestSplit (in long             IDOfQuad,
00743               in NumericalFunctor Criterion);
00744 
00745     enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
00746 
00747     boolean Smooth(in long_array    IDsOfElements,
00748                    in long_array    IDsOfFixedNodes,
00749                    in long          MaxNbOfIterations,
00750                    in double        MaxAspectRatio,
00751                    in Smooth_Method Method);
00752 
00753     boolean SmoothObject(in SMESH_IDSource  theObject,
00754                 in long_array      IDsOfFixedNodes,
00755                 in long            MaxNbOfIterations,
00756                 in double          MaxAspectRatio,
00757                 in Smooth_Method   Method);
00758 
00759     boolean SmoothParametric(in long_array    IDsOfElements,
00760                              in long_array    IDsOfFixedNodes,
00761                              in long          MaxNbOfIterations,
00762                              in double        MaxAspectRatio,
00763                              in Smooth_Method Method);
00764 
00765     boolean SmoothParametricObject(in SMESH_IDSource  theObject,
00766                                    in long_array      IDsOfFixedNodes,
00767                                    in long            MaxNbOfIterations,
00768                                    in double          MaxAspectRatio,
00769                                    in Smooth_Method   Method);
00770 
00771     void ConvertToQuadratic(in boolean theForce3d);
00772 
00773     boolean ConvertFromQuadratic();
00774 
00775     void RenumberNodes();
00776 
00777     void RenumberElements();
00778 
00779     void RotationSweep(in long_array       IDsOfElements,
00780                        in AxisStruct       Axix,
00781                        in double           AngleInRadians,
00782                        in long             NbOfSteps,
00783                        in double           Tolerance);
00784 
00785     void RotationSweepObject(in SMESH_IDSource  theObject,
00786                     in AxisStruct      Axix,
00787                     in double          AngleInRadians,
00788                     in long            NbOfSteps,
00789                     in double          Tolerance);
00790 
00791     void ExtrusionSweep(in long_array      IDsOfElements,
00792                         in DirStruct       StepVector,
00793                         in long            NbOfSteps);
00794 
00802     void AdvancedExtrusion(in long_array      IDsOfElements,
00803                            in DirStruct       StepVector,
00804                            in long            NbOfSteps,
00805                   in long            ExtrFlags,
00806                   in double          SewTolerance);
00807 
00808     void ExtrusionSweepObject(in SMESH_IDSource  theObject,
00809                      in DirStruct       StepVector,
00810                      in long            NbOfSteps);
00811 
00812     void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
00813                     in DirStruct      StepVector,
00814                     in long           NbOfSteps);
00815 
00816     void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
00817                     in DirStruct      StepVector,
00818                     in long           NbOfSteps);
00819 
00820     enum Extrusion_Error {
00821       EXTR_OK,
00822       EXTR_NO_ELEMENTS,
00823       EXTR_PATH_NOT_EDGE,
00824       EXTR_BAD_PATH_SHAPE,
00825       EXTR_BAD_STARTING_NODE,
00826       EXTR_BAD_ANGLES_NUMBER,
00827       EXTR_CANT_GET_TANGENT
00828       };
00829 
00830     Extrusion_Error ExtrusionAlongPath(in long_array        IDsOfElements,
00831                            in SMESH_Mesh        PathMesh,
00832                            in GEOM::GEOM_Object PathShape,
00833                            in long              NodeStart,
00834                            in boolean           HasAngles,
00835                            in double_array      Angles,
00836                            in boolean           HasRefPoint,
00837                            in PointStruct       RefPoint);
00838 
00839     Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource    theObject,
00840                               in SMESH_Mesh        PathMesh,
00841                               in GEOM::GEOM_Object PathShape,
00842                               in long              NodeStart,
00843                               in boolean           HasAngles,
00844                               in double_array      Angles,
00845                               in boolean           HasRefPoint,
00846                               in PointStruct       RefPoint);
00847 
00848     enum MirrorType { POINT, AXIS, PLANE };
00849 
00850     void Mirror (in long_array       IDsOfElements,
00851                  in AxisStruct       Mirror,
00852                  in MirrorType       theMirrorType,
00853                  in boolean          Copy);
00854 
00855     void MirrorObject (in SMESH_IDSource  theObject,
00856                  in AxisStruct      Mirror,
00857                  in MirrorType      theMirrorType,
00858                  in boolean         Copy);
00859 
00860     void Translate (in long_array      IDsOfElements,
00861                     in DirStruct       Vector,
00862                     in boolean         Copy);
00863 
00864     void TranslateObject (in SMESH_IDSource  theObject,
00865                  in DirStruct       Vector,
00866                  in boolean         Copy);
00867 
00868     void Rotate (in long_array       IDsOfElements,
00869                  in AxisStruct       Axis,
00870                  in double           AngleInRadians,
00871                  in boolean          Copy);
00872 
00873     void RotateObject (in SMESH_IDSource  theObject,
00874                  in AxisStruct      Axis,
00875                  in double          AngleInRadians,
00876                  in boolean         Copy);
00877 
00878     void FindCoincidentNodes (in  double              Tolerance,
00879                               out array_of_long_array GroupsOfNodes);
00880 
00881     void MergeNodes (in array_of_long_array GroupsOfNodes);
00882 
00883     void MergeEqualElements();
00884 
00885     enum Sew_Error {
00886       SEW_OK,
00887       SEW_BORDER1_NOT_FOUND,
00888       SEW_BORDER2_NOT_FOUND,
00889       SEW_BOTH_BORDERS_NOT_FOUND,
00890       SEW_BAD_SIDE_NODES,
00891       SEW_VOLUMES_TO_SPLIT,
00892       // for SewSideElements() only:
00893       SEW_DIFF_NB_OF_ELEMENTS,
00894       SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
00895       SEW_BAD_SIDE1_NODES,
00896       SEW_BAD_SIDE2_NODES
00897       };
00898 
00899     Sew_Error SewFreeBorders (in long FirstNodeID1,
00900                               in long SecondNodeID1,
00901                               in long LastNodeID1,
00902                               in long FirstNodeID2,
00903                               in long SecondNodeID2,
00904                               in long LastNodeID2,
00905                      in boolean CreatePolygons,
00906                      in boolean CreatePolyedrs);
00907 
00908     Sew_Error SewConformFreeBorders (in long FirstNodeID1,
00909                                      in long SecondNodeID1,
00910                                      in long LastNodeID1,
00911                                      in long FirstNodeID2,
00912                                      in long SecondNodeID2);
00913 
00914     Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
00915                                in long SecondNodeIDOnFreeBorder,
00916                                in long LastNodeIDOnFreeBorder,
00917                                in long FirstNodeIDOnSide,
00918                                in long LastNodeIDOnSide,
00919                       in boolean CreatePolygons,
00920                       in boolean CreatePolyedrs);
00921 
00922     Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
00923                                in long_array IDsOfSide2Elements,
00924                                in long       NodeID1OfSide1ToMerge,
00925                                in long       NodeID1OfSide2ToMerge,
00926                                in long       NodeID2OfSide1ToMerge,
00927                                in long       NodeID2OfSide2ToMerge);
00928 
00934     boolean ChangeElemNodes(in long ide, in long_array newIDs);
00935 
00941     long_array GetLastCreatedNodes();
00942 
00948     long_array GetLastCreatedElems();
00949 
00950   };
00951 };
00952 
00953 #endif