X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_BasicHypothesis.idl;h=e3510b109e7fa8ae883dafd06a601f0e3f65b688;hp=186b066810f8dfa2267aaaa9ad1a16498a9e4fe1;hb=88141f757b048eaa5aae0be49faaf274448bbcaf;hpb=f7aba4830d53719b963fdb7fccc98b760fdef2d1 diff --git a/idl/SMESH_BasicHypothesis.idl b/idl/SMESH_BasicHypothesis.idl index 186b06681..e3510b109 100644 --- a/idl/SMESH_BasicHypothesis.idl +++ b/idl/SMESH_BasicHypothesis.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -128,7 +128,7 @@ module StdMeshers }; /*! - * Common inteface of 1D hypotheses that can be reversed + * Common interface of 1D hypotheses that can be reversed */ interface Reversible1D { @@ -857,11 +857,26 @@ module StdMeshers void GetCopySourceMesh(out boolean toCopyMesh,out boolean toCopyGroups); }; + /*! + * Method of computing translation of a node at Viscous Layers construction + */ + enum VLExtrusionMethod { + // node is translated along normal to a surface with possible further smoothing + SURF_OFFSET_SMOOTH, + // node is translated along the average normal of surrounding faces till + // intersection with a neighbor face translated along its own normal + // by the layers thickness + FACE_OFFSET, + // node is translated along the average normal of surrounding faces + // by the layers thickness + NODE_OFFSET + }; + /*! * interface of "Viscous Layers" hypothesis. * This hypothesis specifies parameters of layers of prisms to build * near mesh boundary. This hypothesis can be used by several 3D algorithms: - * NETGEN 3D, GHS3D, Hexahedron(i,j,k) + * NETGEN 3D, Hexahedron(i,j,k), MG_Tetra */ interface StdMeshers_ViscousLayers : SMESH::SMESH_Hypothesis { @@ -892,10 +907,13 @@ module StdMeshers short GetNumberLayers(); /*! - * Set factor (>1.0) of growth of layer thickness towards inside of mesh + * Set factor (>=1.0) of growth of layer thickness towards inside of mesh */ void SetStretchFactor(in double factor) raises (SALOME::SALOME_Exception); double GetStretchFactor(); + + void SetMethod( in VLExtrusionMethod how ); + VLExtrusionMethod GetMethod(); }; /*! @@ -933,7 +951,7 @@ module StdMeshers short GetNumberLayers(); /*! - * Set factor (>1.0) of growth of layer thickness towards inside of mesh + * Set factor (>=1.0) of growth of layer thickness towards inside of mesh */ void SetStretchFactor(in double factor) raises (SALOME::SALOME_Exception); double GetStretchFactor(); @@ -942,8 +960,9 @@ module StdMeshers /*! * interface of "Body fitting Parameters" hypothesis. * This hypothesis specifies - * - Definition of the Cartesian grid * - Size threshold + * - Definition of the Cartesian grid + * - Direction of grid axes */ interface StdMeshers_CartesianParameters3D : SMESH::SMESH_Hypothesis { @@ -965,8 +984,8 @@ module StdMeshers /*! * Set coordinates of nodes along an axis (countered from zero) */ - void SetGrid(in SMESH::double_array coords, - in short axis) raises (SALOME::SALOME_Exception); + void SetGrid(in SMESH::double_array coords, + in short axis) raises (SALOME::SALOME_Exception); SMESH::double_array GetGrid(in short axis) raises (SALOME::SALOME_Exception); /*! @@ -975,8 +994,8 @@ module StdMeshers * \param internalPoints - points dividing a grid into parts along an axis * \param axis - index of an axis counterd from zero, i.e. 0==X, 1==Y, 2==Z * - * Parameter t of spaceFunction f(t) is a position [0,1] withing bounding box of - * the shape to mesh or withing an interval defined by internal points + * Parameter t of spaceFunction f(t) is a position [0,1] within bounding box of + * the shape to mesh or within an interval defined by internal points */ void SetGridSpacing(in SMESH::string_array spaceFunctions, in SMESH::double_array internalPoints, @@ -985,6 +1004,22 @@ module StdMeshers void GetGridSpacing(out SMESH::string_array spaceFunctions, out SMESH::double_array internalPoints, in short axis) raises (SALOME::SALOME_Exception); + /*! + * Set custom direction of axes + */ + void SetAxesDirs(in SMESH::DirStruct x, + in SMESH::DirStruct y, + in SMESH::DirStruct z ) raises (SALOME::SALOME_Exception); + void GetAxesDirs(out SMESH::DirStruct x, + out SMESH::DirStruct y, + out SMESH::DirStruct z ); + /*! + * Set/unset a fixed point, at which a node will be created provided that grid + * is defined by spacing in all directions + */ + void SetFixedPoint(in SMESH::PointStruct p, in boolean toUnset); + boolean GetFixedPoint(out SMESH::PointStruct p); + /*! * Enables implementation of geometrical edges into the mesh. If this feature * is disabled, sharp edges of the shape are lost ("smoothed") in the mesh if @@ -993,6 +1028,16 @@ module StdMeshers void SetToAddEdges(in boolean toAdd); boolean GetToAddEdges(); + /*! + * Returns axes at which a number of generated hexahedra is maximal + */ + void ComputeOptimalAxesDirs(in GEOM::GEOM_Object shape, + in boolean isOrthogonal, + out SMESH::DirStruct x, + out SMESH::DirStruct y, + out SMESH::DirStruct z ) + raises (SALOME::SALOME_Exception); + /*! * \brief Computes node coordinates by spacing functions * \param x0 - lower coordinate @@ -1045,6 +1090,20 @@ module StdMeshers { }; + /*! + * StdMeshers_QuadFromMedialAxis_1D2D: interface of "Quadrangle (Medial Axis Projection)" algorithm + */ + interface StdMeshers_QuadFromMedialAxis_1D2D : SMESH::SMESH_2D_Algo + { + }; + + /*! + * StdMeshers_PolygonPerFace_2D: interface of "Polygon Per Face" 2D algorithm + */ + interface StdMeshers_PolygonPerFace_2D : SMESH::SMESH_2D_Algo + { + }; + /*! * StdMeshers_Hexa_3D: interface of "Hexahedron (i,j,k)" algorithm */