X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_Mesh.idl;h=9ede0252fd5aec967268aa8430741bc3d24c4ec7;hp=527a7947558e460ee1e5edfa6998670774a5e9c2;hb=6f7386be594ca912c7b87c883e051abf7e331c79;hpb=53fcb605c1cf0adcb3b3099ae881db40751e2d11 diff --git a/idl/SMESH_Mesh.idl b/idl/SMESH_Mesh.idl index 527a79475..9ede0252f 100644 --- a/idl/SMESH_Mesh.idl +++ b/idl/SMESH_Mesh.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -6,7 +6,7 @@ // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -66,6 +66,7 @@ module SMESH ADD_QUADEDGE, ADD_QUADTRIANGLE, ADD_QUADQUADRANGLE, + ADD_QUADPOLYGON, ADD_QUADTETRAHEDRON, ADD_QUADPYRAMID, ADD_QUADPENTAHEDRON, @@ -88,19 +89,19 @@ module SMESH typedef sequence log_array; struct PointStruct { double x; - double y; - double z; } ; + double y; + double z; }; typedef sequence nodes_array; - struct DirStruct { PointStruct PS ; } ; // analog to OCCT gp_Vec + struct DirStruct { PointStruct PS; }; // analog to OCCT gp_Vec struct AxisStruct { double x; - double y; - double z; - double vx; - double vy; - double vz; } ; + double y; + double z; + double vx; + double vy; + double vz; }; /*! * Node location on a shape */ @@ -132,7 +133,7 @@ module SMESH BALL, NB_ELEMENT_TYPES }; - typedef sequence array_of_ElementType ; + typedef sequence array_of_ElementType; /*! * Enumeration for element geometry type, like SMDSAbs_GeometryType in SMDSAbs_ElementType.hxx @@ -150,7 +151,8 @@ module SMESH Geom_PENTA, Geom_HEXAGONAL_PRISM, Geom_POLYHEDRA, - Geom_BALL + Geom_BALL, + Geom_LAST }; /*! @@ -215,7 +217,8 @@ module SMESH HYP_BAD_DIM, // bad dimension HYP_BAD_SUBSHAPE, // shape is neither the main one, nor its sub-shape, nor a group HYP_BAD_GEOMETRY, // geometry mismatches algorithm's expectation - HYP_NEED_SHAPE // algorithm can work on shape only + HYP_NEED_SHAPE, // algorithm can work on shape only + HYP_INCOMPAT_HYPS // several additional hypotheses are incompatible one with other }; /*! @@ -251,6 +254,14 @@ module SMESH long major, minor, release; //!< MED file version }; + /*! + * Enumeration for CreateDimGroup() + */ + enum NB_COMMON_NODES_ENUM + { + ALL_NODES, MAIN, AT_LEAST_ONE, MAJORITY + }; + /*! * Auxilary flags for advanced extrusion. * BOUNDARY: create or not boundary for result of extrusion @@ -312,6 +323,11 @@ module SMESH * happen if mesh data is not yet fully loaded from the file of study. */ boolean IsMeshInfoCorrect(); + + /*! + * Returns mesh unstructed grid information. + */ + SALOMEDS::TMPFile GetVtkUgStream(); }; interface SMESH_Group; @@ -389,7 +405,7 @@ module SMESH * Create a group */ SMESH_Group CreateGroup( in ElementType elem_type, - in string name ) + in string name ) raises (SALOME::SALOME_Exception); /*! @@ -491,14 +507,21 @@ module SMESH raises (SALOME::SALOME_Exception); /*! - * Create groups of entities from existing groups of superior dimensions - * New group is created. System - * 1) extracts all nodes from each group, - * 2) combines all elements of specified dimension laying on these nodes. + * Create a group of entities basing on nodes of other groups. + * \param [in] aListOfGroups - list of either groups, sub-meshes or filters. + * \param [in] anElemType - a type of elements to include to the new group. + * \param [in] name - a name of the new group. + * \param [in] nbCommonNodes - criterion of inclusion of an element to the new group. + * \param [in] underlyingOnly - if \c True, an element is included to the + * new group provided that it is based on nodes of an element of + * \a aListOfGroups + * \return SMESH_Group - the created group */ - SMESH_Group CreateDimGroup( in ListOfGroups aListOfGroups, - in ElementType anElemType, - in string name ) + SMESH_Group CreateDimGroup( in ListOfIDSources aListOfGroups, + in ElementType anElemType, + in string name, + in NB_COMMON_NODES_ENUM nbCommonNodes, + in boolean underlyingOnly ) raises (SALOME::SALOME_Exception); /*! @@ -508,31 +531,29 @@ module SMESH raises (SALOME::SALOME_Exception); /*! - * Add hypothesis to the mesh, under a particular Sub-shape + * Add hypothesis to the mesh, under a particular sub-shape * (or the main shape itself) - * The Add method is only used to prepare the build of the mesh and store + * This method is only used to prepare the build of the mesh and store * the algorithms and associated parameters. - * Actual job of mesh the shape is done by MESH_Gen. + * Actual job of meshing the shape is done by SMESH_Gen::Compute() * @params - * - aSubShape : sub-shape obtained by a shape explode in GEOM + * - aSubObject : sub-shape obtained by a shape explode in GEOM * (or main shape) - * - anHyp : hypothesis object + * - anHyp : an hypothesis object * @return - * - OK if the hypothesis is compatible with the sub-shape - * (and all previous hypothesis on the sub-shape) - * - NOK if the hypothesis is not compatible with the sub-shape - * (or one previous hypothesis on the sub-shape) - * raises exception if hypothesis has not been created + * - An enum item explaining what's up + * - anErrorText: an optional textual description of a problem (if any) */ Hypothesis_Status AddHypothesis(in GEOM::GEOM_Object aSubObject, - in SMESH_Hypothesis anHyp) + in SMESH_Hypothesis anHyp, + out string anErrorText) raises (SALOME::SALOME_Exception); /*! * Remove an hypothesis previouly added with AddHypothesis. */ Hypothesis_Status RemoveHypothesis(in GEOM::GEOM_Object aSubObject, - in SMESH_Hypothesis anHyp) + in SMESH_Hypothesis anHyp) raises (SALOME::SALOME_Exception); /*! @@ -613,39 +634,47 @@ module SMESH * - 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. - * - version : define the version of format of MED file, that will be created + * - version : defines the version of format of MED file, that will be created * - overwrite : boolean parameter for overwriting/not overwriting the file, if it exists - * - autoDimension: if @c True (default), a space dimension of a MED mesh can be either + * - autoDimension : if @c true, a space dimension of a MED mesh can be either * - 1D if all mesh nodes lie on OX coordinate axis, or * - 2D if all mesh nodes lie on XOY coordinate plane, or * - 3D in the rest cases. - * - * If @a autoDimension is @c False, the space dimension is always 3. + * If @a autoDimension is @c false, the space dimension is always 3. */ void ExportToMEDX( in string file, in boolean auto_groups, in MED_VERSION version, in boolean overwrite, - in boolean autoDimension ) raises (SALOME::SALOME_Exception); + in boolean autoDimension) raises (SALOME::SALOME_Exception); /*! - * Export a part of Mesh into a MED file + * 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 - * - autoDimension: if @c True, a space dimension for export is defined by mesh + * - autoDimension : if @c True, a space dimension for export is defined by mesh * configuration; for example a planar mesh lying on XOY plane * will be exported as a mesh in 2D space. * If @a autoDimension == @c False, the space dimension is 3. - */ - void ExportPartToMED( in SMESH_IDSource meshPart, - in string file, - in boolean auto_groups, - in MED_VERSION version, - in boolean overwrite, - in boolean autoDimension ) raises (SALOME::SALOME_Exception); + * - fields : list of GEOM fields defined on the shape to mesh. + * - geomAssocFields : each character of this string means a need to export a + * corresponding field; correspondence between fields and characters is following: + * - 'v' stands for _vertices_ field; + * - 'e' stands for _edges_ field; + * - 'f' stands for _faces_ field; + * - 's' stands for _solids_ field. + */ + void ExportPartToMED( in SMESH_IDSource meshPart, + in string file, + in boolean auto_groups, + in MED_VERSION version, + in boolean overwrite, + in boolean autoDimension, + in GEOM::ListOfFields fields, + in string geomAssocFields ) raises (SALOME::SALOME_Exception); /*! * Export Mesh to a MED Format file @@ -750,6 +779,9 @@ module SMESH long NbPolygons() raises (SALOME::SALOME_Exception); + long NbPolygonsOfOrder(in ElementOrder order) + raises (SALOME::SALOME_Exception); + long NbVolumes() raises (SALOME::SALOME_Exception); @@ -1012,7 +1044,7 @@ module SMESH raises (SALOME::SALOME_Exception); /*! - * Return type of submesh element + * Returns type of mesh element (same as SMESH_Mesh::GetElementType() ) */ ElementType GetElementType( in long id, in boolean iselem ) raises (SALOME::SALOME_Exception);