X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_BasicHypothesis.idl;h=9c428ba145934922c7e2515b42cd2846d847fbb8;hp=3d5c227ceb8ea08c4b0d477d3549342161e4b2d2;hb=adc76cf234693fd9a7bb24ea76b6f43eb0bc7b9b;hpb=5c933ecde0251d3c4894d0cdeab8dc67b6c4c3a5 diff --git a/idl/SMESH_BasicHypothesis.idl b/idl/SMESH_BasicHypothesis.idl index 3d5c227ce..9c428ba14 100644 --- a/idl/SMESH_BasicHypothesis.idl +++ b/idl/SMESH_BasicHypothesis.idl @@ -1,28 +1,27 @@ -// Copyright (C) 2003 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 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 -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 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 // +// 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. +// +// 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 // // File : SMESH_BasicHypothesis.idl // Author : Paul RASCLE, EDF -// $Header$ - +// #ifndef _SMESH_BASICHYPOTHESIS_IDL_ #define _SMESH_BASICHYPOTHESIS_IDL_ @@ -44,13 +43,71 @@ module StdMeshers /*! * Sets parameter value */ - void SetLength(in double length) + void SetLength(in double length) + raises (SALOME::SALOME_Exception); + + /*! + * Sets parameter value + * + * Precision parameter is used to allow rounding a number of segments, + * calculated from the edge length and average length of segment, + * to the lower integer, if this value outstands from it in bounds of the precision. + * Otherwise, the number of segments is rounded to the higher integer. + * Use value 0.5 to provide rounding to the nearest integer, + * 1.0 for the lower integer, 0.0 for the higher integer. + * Default value is 1e-07. In old studies, restored from file, + * this value will be set to zero, what corresponds to the old behaviour. + */ + void SetPrecision(in double precision) raises (SALOME::SALOME_Exception); /*! * Returns parameter value */ double GetLength(); + + /*! + * Returns parameter value + */ + double GetPrecision(); + }; + + /*! + * StdMeshers_MaxLength: interface of "Max length" hypothesis + */ + interface StdMeshers_MaxLength : SMESH::SMESH_Hypothesis + { + /*! + * Sets parameter value + */ + void SetLength(in double length) + raises (SALOME::SALOME_Exception); + /*! + * Returns parameter value + */ + double GetLength(); + /*! + * Returns true if preestemated length is defined + */ + boolean HavePreestimatedLength(); + /*! + * Returns preestemated length + */ + double GetPreestimatedLength(); + /*! + * Sets preestemated length + */ + void SetPreestimatedLength(in double length); + /*! + * Sets boolean parameter enabling/desabling usage of length computed + * basing on size of bounding box of shape to mesh + */ + void SetUsePreestimatedLength(in boolean toUse); + /*! + * Returns value of boolean parameter enabling/desabling usage of length computed + * basing on size of bounding box of shape to mesh + */ + boolean GetUsePreestimatedLength(); }; /*! @@ -75,10 +132,18 @@ module StdMeshers */ interface StdMeshers_NumberOfSegments : SMESH::SMESH_Hypothesis { + /*! + * Builds and returns point distribution according to passed density function + */ + SMESH::double_array BuildDistributionExpr( in string func, in long nbSeg, in long conv ) + raises (SALOME::SALOME_Exception); + SMESH::double_array BuildDistributionTab( in SMESH::double_array func, in long nbSeg, in long conv ) + raises (SALOME::SALOME_Exception); + /*! * Sets parameter value */ - void SetNumberOfSegments(in long segmentsNumber) + void SetNumberOfSegments(in long segmentsNumber) raises (SALOME::SALOME_Exception); /*! @@ -134,15 +199,15 @@ module StdMeshers raises (SALOME::SALOME_Exception); /*! - * Sets parameter value for functional distributions + * Sets parameter value for functional distributions */ - void SetExponentMode(in boolean isExponent) + void SetConversionMode(in long conv ) raises (SALOME::SALOME_Exception); /*! - * Returns parameter value for functional distributions + * Returns parameter value for functional distributions */ - boolean IsExponentMode() + long ConversionMode() raises (SALOME::SALOME_Exception); }; @@ -279,6 +344,262 @@ module StdMeshers { }; + /*! + * StdMeshers_TrianglePreference: interface of "TrianglePreference" hypothesis. + * This hypothesis is used by StdMeshers_Quadrangle_2D algorithm. + * Presence of this hypothesis forces construction of triangles in the refinement + * area if the number of nodes on opposite edges is not the same. + */ + interface StdMeshers_TrianglePreference : SMESH::SMESH_Hypothesis + { + }; + + /*! + * StdMeshers_QuadraticMesh: interface of "QuadraticMesh" hypothesis. + * This is an auxiliary 1D hypothesis whose presence forces construction + * of quadratic edges. + * If the 2D mesher sees that all boundary edges are quadratic ones, + * it generates quadratic faces, else it generates linear faces using + * medium nodes as if they were vertex ones. + * The 3D mesher generates quadratic volumes only if all boundary faces + * are quadratic ones, else it fails. + */ + interface StdMeshers_QuadraticMesh : SMESH::SMESH_Hypothesis + { + }; + + + /*! + * StdMeshers_NumberOfLayers: interface of "Nb. Layers" hypothesis. + * This hypothesis is used by "Radial prism" algorithm. + * It specifies number of segments between the internal + * and the external surfaces. + */ + interface StdMeshers_NumberOfLayers : SMESH::SMESH_Hypothesis + { + /*! + * Sets parameter value + */ + void SetNumberOfLayers(in long numberOfLayers) + raises (SALOME::SALOME_Exception); + + /*! + * Returns parameter value + */ + long GetNumberOfLayers(); + + }; + + /*! + * StdMeshers_LayerDistribution: interface of "Distribution of Layers" hypothesis. + * This hypothesis is used by "Radial prism" algorithm. + * It specifies 1D hypothesis defining distribution of segments between the internal + * and the external surfaces. + */ + interface StdMeshers_LayerDistribution : SMESH::SMESH_Hypothesis + { + /*! + * Sets 1D hypothesis specifying distribution of layers + */ + void SetLayerDistribution(in SMESH::SMESH_Hypothesis distributionHyp) + raises (SALOME::SALOME_Exception); + + /*! + * Returns 1D hypothesis specifying distribution of layers + */ + SMESH::SMESH_Hypothesis GetLayerDistribution(); + + }; + + /*! + * interface of "ProjectionSource1D" hypothesis. + * This hypothesis specifies a meshed edge to take a mesh pattern from + * and optionally association of vertices between the source edge and a + * target one (where a hipothesis is assigned to) + */ + interface StdMeshers_ProjectionSource1D : SMESH::SMESH_Hypothesis + { + /*! + * Sets source to take a mesh pattern from + */ + void SetSourceEdge(in GEOM::GEOM_Object edge) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the source edge + */ + GEOM::GEOM_Object GetSourceEdge(); + + /*! + * Sets source to take a mesh pattern from + */ + void SetSourceMesh(in SMESH::SMESH_Mesh mesh); + + /*! + * Return source mesh + */ + SMESH::SMESH_Mesh GetSourceMesh(); + + /*! + * Sets vertex association between the source edge and the target one. + * This parameter is optional + */ + void SetVertexAssociation(in GEOM::GEOM_Object sourceVertex, + in GEOM::GEOM_Object targetVertex) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the vertex associated with the target vertex. + * Result may be nil if association not set + */ + GEOM::GEOM_Object GetSourceVertex(); + + /*! + * Returns the vertex associated with the source vertex. + * Result may be nil if association not set + */ + GEOM::GEOM_Object GetTargetVertex(); + }; + + /*! + * interface of "ProjectionSource2D" hypothesis. + * This hypothesis specifies a meshed face to take a mesh pattern from + * and optionally association of vertices between the source face and a + * target one (where a hipothesis is assigned to) + */ + interface StdMeshers_ProjectionSource2D : SMESH::SMESH_Hypothesis + { + /*! + * Sets a source to take a mesh pattern from + */ + void SetSourceFace(in GEOM::GEOM_Object face) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the source face + */ + GEOM::GEOM_Object GetSourceFace(); + + /*! + * Sets source to take a mesh pattern from + */ + void SetSourceMesh(in SMESH::SMESH_Mesh mesh); + + /*! + * Return source mesh + */ + SMESH::SMESH_Mesh GetSourceMesh(); + + /*! + * Sets vertex association between the source face and the target one. + * This parameter is optional. + * Two vertices must belong to one edge of a face + */ + void SetVertexAssociation(in GEOM::GEOM_Object sourceVertex1, + in GEOM::GEOM_Object sourceVertex2, + in GEOM::GEOM_Object targetVertex1, + in GEOM::GEOM_Object targetVertex2) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the -th source vertex associated with the -th target vertex. + * Result may be nil if association not set. + * Valid indices are 1 and 2 + */ + GEOM::GEOM_Object GetSourceVertex(in long i) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the -th target vertex associated with the -th source vertex. + * Result may be nil if association not set. + * Valid indices are 1 and 2 + */ + GEOM::GEOM_Object GetTargetVertex(in long i) + raises (SALOME::SALOME_Exception); + }; + + /*! + * interface of "ProjectionSource3D" hypothesis. + * This hypothesis specifies a meshed shell or solid to take a mesh pattern from + * and optionally association of vertices between the source shape and a + * target one (where a hipothesis is assigned to) + */ + interface StdMeshers_ProjectionSource3D : SMESH::SMESH_Hypothesis + { + /*! + * Sets a source to take a mesh pattern from + */ + void SetSource3DShape(in GEOM::GEOM_Object shape) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the source shape + */ + GEOM::GEOM_Object GetSource3DShape(); + + /*! + * Sets source to take a mesh pattern from + */ + void SetSourceMesh(in SMESH::SMESH_Mesh mesh); + + /*! + * Return source mesh + */ + SMESH::SMESH_Mesh GetSourceMesh(); + + /*! + * Sets vertex association between the source shape and the target one. + * This parameter is optional. + * Two vertices must belong to one edge of a shape + */ + void SetVertexAssociation(in GEOM::GEOM_Object sourceVertex1, + in GEOM::GEOM_Object sourceVertex2, + in GEOM::GEOM_Object targetVertex1, + in GEOM::GEOM_Object targetVertex2) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the -th source vertex associated with the -th target vertex. + * Result may be nil if association not set. + * Valid indices are 1 and 2 + */ + GEOM::GEOM_Object GetSourceVertex(in long i) + raises (SALOME::SALOME_Exception); + + /*! + * Returns the -th target vertex associated with the -th source vertex. + * Result may be nil if association not set. + * Valid indices are 1 and 2 + */ + GEOM::GEOM_Object GetTargetVertex(in long i) + raises (SALOME::SALOME_Exception); + }; + + /*! + * interface of "SegmentLengthAroundVertex" hypothesis. + * This hypothesis specifies length of segments adjacent to the vertex the + * hypothesis is assigned to + */ + interface StdMeshers_SegmentLengthAroundVertex : SMESH::SMESH_Hypothesis + { + /*! + * Sets parameter value + */ + void SetLength(in double length) + raises (SALOME::SALOME_Exception); + + /*! + * Returns parameter value + */ + double GetLength(); + }; + + /*! + * StdMeshers_SegmentAroundVertex_0D: interface of "SegmentAroundVertex" algorithm + */ + interface StdMeshers_SegmentAroundVertex_0D : SMESH::SMESH_0D_Algo + { + }; /*! * StdMeshers_Regular_1D: interface of "Wire discretisation" algorithm @@ -287,6 +608,13 @@ module StdMeshers { }; + /*! + * StdMeshers_CompositeSegment_1D: interface of "Composite side discretisation" algorithm + */ + interface StdMeshers_CompositeSegment_1D : SMESH::SMESH_1D_Algo + { + }; + /*! * StdMeshers_MEFISTO_2D: interface of "Triangle (Mefisto)" algorithm */ @@ -308,6 +636,57 @@ module StdMeshers { }; + /*! + * StdMeshers_Prism_3D: interface of "3D extrusion" algorithm + */ + interface StdMeshers_Prism_3D : SMESH::SMESH_3D_Algo + { + }; + + /*! + * StdMeshers_RadialPrism_3D: interface of "Radial Prism" algorithm + */ + interface StdMeshers_RadialPrism_3D : SMESH::SMESH_3D_Algo + { + }; + + /*! + * StdMeshers_Projection_3D: interface of "Projection 3D" algorithm + */ + interface StdMeshers_Projection_3D : SMESH::SMESH_3D_Algo + { + }; + + /*! + * StdMeshers_Projection_2D: interface of "Projection 2D" algorithm + */ + interface StdMeshers_Projection_2D : SMESH::SMESH_2D_Algo + { + }; + + /*! + * StdMeshers_Projection_1D: interface of "Projection 1D" algorithm + */ + interface StdMeshers_Projection_1D : SMESH::SMESH_1D_Algo + { + }; + + /*! + * StdMeshers_UseExisting_2D: interface of "UseExisting 2D" algorithm + * doing nothing to allow mesh generation by mesh edition functions in TUI mode + */ + interface StdMeshers_UseExisting_2D : SMESH::SMESH_2D_Algo + { + }; + + /*! + * StdMeshers_UseExisting_1D: interface of "UseExisting 1D" algorithm + * doing nothing to allow mesh generation by mesh edition functions in TUI mode + */ + interface StdMeshers_UseExisting_1D : SMESH::SMESH_1D_Algo + { + }; + }; #endif