// Copyright (C) 2007-2010 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 : NETGENPlugin_Algorithm.idl // Author : Julia DOROVSKIKH // $Header$ // #ifndef _SMESH_NETGENALGORITHM_IDL_ #define _SMESH_NETGENALGORITHM_IDL_ #include "SALOME_Exception.idl" #include "SMESH_Hypothesis.idl" #include "GEOM_Gen.idl" /*! * NETGENPlugin: interfaces to NETGEN related hypotheses and algorithms */ module NETGENPlugin { typedef sequence string_array; /*! * NETGENPlugin_NETGEN_3D: interface of "Tetrahedron (Netgen)" algorithm */ interface NETGENPlugin_NETGEN_3D : SMESH::SMESH_3D_Algo { }; /*! * NETGENPlugin_NETGEN_2D: interface of "Netgen 1D-2D" algorithm */ interface NETGENPlugin_NETGEN_2D : SMESH::SMESH_2D_Algo { }; /*! * NETGENPlugin_NETGEN_2D3D: interface of "Netgen 1D-2D-3D" algorithm */ interface NETGENPlugin_NETGEN_2D3D : SMESH::SMESH_3D_Algo { }; /*! * NETGENPlugin_NETGEN_2D_ONLY: interface of "Netgen 2D" algorithm, * generating 2D elements on a geometrical face taking * into account pre-existing nodes on face boundaries */ interface NETGENPlugin_NETGEN_2D_ONLY : SMESH::SMESH_2D_Algo { }; /*! * NETGENPlugin_Hypothesis: interface of "NETGEN parameters" hypothesis */ interface NETGENPlugin_Hypothesis : SMESH::SMESH_Hypothesis { void SetMaxSize(in double value); double GetMaxSize(); void SetSecondOrder(in boolean value); boolean GetSecondOrder(); void SetOptimize(in boolean value); boolean GetOptimize(); void SetFineness(in long value); long GetFineness(); void SetGrowthRate(in double value); double GetGrowthRate(); void SetNbSegPerEdge(in double value); double GetNbSegPerEdge(); void SetNbSegPerRadius(in double value); double GetNbSegPerRadius(); void SetLocalSizeOnShape(in GEOM::GEOM_Object GeomObj, in double localSize); void SetLocalSizeOnEntry(in string entry, in double localSize); double GetLocalSizeOnEntry(in string entry); string_array GetLocalSizeEntries(); void UnsetLocalSizeOnEntry(in string entry); }; /*! * NETGENPlugin_Hypothesis_2D: interface of "NETGEN 2D parameters" hypothesis */ interface NETGENPlugin_Hypothesis_2D : NETGENPlugin_Hypothesis { void SetQuadAllowed(in boolean value); boolean GetQuadAllowed(); }; /*! * interface of "NETGEN 2D parameters" hypothesis used by NETGENPlugin_NETGEN_2D_ONLY algoritm */ interface NETGENPlugin_Hypothesis_2D_ONLY : NETGENPlugin_Hypothesis_2D { }; /*! * interface of "NETGEN 3D parameters" hypothesis used by NETGENPlugin_NETGEN_3D algorithm */ interface NETGENPlugin_Hypothesis_3D : NETGENPlugin_Hypothesis { }; /*! * NETGENPlugin_Hypothesis: interface of "NETGEN 2D simple parameters" hypothesis */ interface NETGENPlugin_SimpleHypothesis_2D : SMESH::SMESH_Hypothesis { /*! * Sets value */ void SetNumberOfSegments(in short nb) raises (SALOME::SALOME_Exception); /*! * Returns value. * Can be zero in case if LocalLength() has been set */ short GetNumberOfSegments(); /*! * Sets value */ void SetLocalLength(in double segmentLength); /*! * Returns value. * Can be zero in case if NumberOfSegments() has been set */ double GetLocalLength(); /*! * Sets to be dependent on 1D discretization */ void LengthFromEdges(); /*! * Sets value. * Zero or negative value means same as LengthFromEdges(). */ void SetMaxElementArea(in double area); /*! * Returns value. * Can be zero in case of LengthFromEdges() */ double GetMaxElementArea(); }; /*! * NETGENPlugin_SimpleHypothesis_3D: interface of "NETGEN 3D simple parameters" hypothesis */ interface NETGENPlugin_SimpleHypothesis_3D : NETGENPlugin_SimpleHypothesis_2D { /*! * Sets to be dependent on 2D discretization */ void LengthFromFaces(); /*! * Sets value. * Zero or negative value means same as LengthFromFaces(). */ void SetMaxElementVolume(in double volume); /*! * Returns value * Can be zero in case of LengthFromFaces() */ double GetMaxElementVolume(); }; }; #endif