X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FNETGENPlugin_Algorithm.idl;h=3b9499c64c38b76e8b32c5baefd0aba0e83385c9;hb=ab749f8f58fd82c99134f77f8f7e9a9a3f895fd1;hp=687419cb4420ff252af5d5aca0ba6e074dc3c04a;hpb=40bc6ed7626de9ad8b941dc0b844ef9829c81842;p=plugins%2Fnetgenplugin.git diff --git a/idl/NETGENPlugin_Algorithm.idl b/idl/NETGENPlugin_Algorithm.idl index 687419c..3b9499c 100644 --- a/idl/NETGENPlugin_Algorithm.idl +++ b/idl/NETGENPlugin_Algorithm.idl @@ -1,38 +1,42 @@ -// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2007-2023 CEA, EDF, 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, 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 +// 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 "SMESH_Group.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 */ @@ -40,6 +44,13 @@ module NETGENPlugin { }; + /*! + * NETGENPlugin_NETGEN_3D: interface of "Remote Tetrahedron (Netgen)" algorithm + */ + interface NETGENPlugin_NETGEN_3D_Remote : NETGENPlugin::NETGENPlugin_NETGEN_3D + { + }; + /*! * NETGENPlugin_NETGEN_2D: interface of "Netgen 1D-2D" algorithm */ @@ -63,31 +74,90 @@ module NETGENPlugin { }; + /*! + * NETGENPlugin_Remesher_2D: interface of "NETGEN Remesher" algorithm, + * generating 2D elements basing on an existing 2D mesh + */ + interface NETGENPlugin_Remesher_2D : 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 SetMaxSize(in double value); + double GetMaxSize(); + + void SetMinSize(in double value); + double GetMinSize(); - void SetSecondOrder(in boolean value); + void SetSecondOrder(in boolean value); boolean GetSecondOrder(); - void SetOptimize(in boolean value); + void SetOptimize(in boolean value); boolean GetOptimize(); - void SetFineness(in long value); - long GetFineness(); + void SetFineness(in long value); + long GetFineness(); + + void SetGrowthRate(in double value); + double GetGrowthRate(); + + void SetNbSegPerEdge(in double value); + double GetNbSegPerEdge(); - void SetGrowthRate(in double value); - double GetGrowthRate(); + void SetChordalErrorEnabled(in boolean value); + boolean GetChordalErrorEnabled(); + void SetChordalError(in double value); + double GetChordalError(); - void SetNbSegPerEdge(in double value); - double GetNbSegPerEdge(); + void SetNbSegPerRadius(in double value); + double GetNbSegPerRadius(); - void SetNbSegPerRadius(in double value); - double GetNbSegPerRadius(); + void SetQuadAllowed(in boolean value); + boolean GetQuadAllowed(); + + void SetUseSurfaceCurvature(in boolean value); + boolean GetUseSurfaceCurvature(); + + void SetFuseEdges(in boolean value); + boolean GetFuseEdges(); + + void SetLocalSizeOnShape(in GEOM::GEOM_Object GeomObj, in double localSize) + raises (SALOME::SALOME_Exception); + void SetLocalSizeOnEntry(in string entry, in double localSize); + double GetLocalSizeOnEntry(in string entry); + string_array GetLocalSizeEntries(); + void UnsetLocalSizeOnEntry(in string entry); + + void SetMeshSizeFile(in string fileName); + string GetMeshSizeFile(); + + void SetNbSurfOptSteps(in short nb ); + short GetNbSurfOptSteps(); + + void SetNbVolOptSteps(in short nb ); + short GetNbVolOptSteps(); + + void SetElemSizeWeight(in double size ); + double GetElemSizeWeight(); + + void SetWorstElemMeasure(in short val ); + short GetWorstElemMeasure(); + + void SetNbThreads(in short val ); + short GetNbThreads(); + + void SetUseDelauney(in boolean toUse); + boolean GetUseDelauney(); + + void SetCheckOverlapping(in boolean toCheck ); + boolean GetCheckOverlapping(); + + void SetCheckChartBoundary(in boolean toCheck ); + boolean GetCheckChartBoundary(); }; /*! @@ -95,8 +165,161 @@ module NETGENPlugin */ 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 algorithm + */ + 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 + { + }; + + /*! + * interface of "NETGEN Remesher parameters" hypothesis used by NETGENPlugin_Remesher_2D algorithm + */ + interface NETGENPlugin_RemesherHypothesis_2D : NETGENPlugin_Hypothesis_2D + { + /*! + * \brief Set/get ridge angle + */ + void SetRidgeAngle(in double angle ); + double GetRidgeAngle(); + + void SetEdgeCornerAngle(in double angle ); + double GetEdgeCornerAngle(); + + void SetChartAngle(in double angle ); + double GetChartAngle(); + + void SetOuterChartAngle(in double angle ); + double GetOuterChartAngle(); + + void SetRestHChartDistFactor(in double f ); + double GetRestHChartDistFactor(); + + void SetRestHChartDistEnable(in boolean enable ); + boolean GetRestHChartDistEnable(); + + void SetRestHLineLengthFactor(in double f ); + double GetRestHLineLengthFactor(); + + void SetRestHLineLengthEnable(in boolean enable ); + boolean GetRestHLineLengthEnable(); + + void SetRestHCloseEdgeFactor(in double f ); + double GetRestHCloseEdgeFactor(); + + void SetRestHCloseEdgeEnable(in boolean enable ); + boolean GetRestHCloseEdgeEnable(); + + void SetRestHSurfCurvFactor(in double f ); + double GetRestHSurfCurvFactor(); + + void SetRestHSurfCurvEnable(in boolean enable ); + boolean GetRestHSurfCurvEnable(); + + void SetRestHEdgeAngleFactor(in double f ); + double GetRestHEdgeAngleFactor(); + + void SetRestHEdgeAngleEnable(in boolean enable ); + boolean GetRestHEdgeAngleEnable(); + + void SetRestHSurfMeshCurvFactor(in double f ); + double GetRestHSurfMeshCurvFactor(); + + void SetRestHSurfMeshCurvEnable(in boolean enable ); + boolean GetRestHSurfMeshCurvEnable(); + + void SetKeepExistingEdges(in boolean toKeep ); + boolean GetKeepExistingEdges(); + + void SetMakeGroupsOfSurfaces(in boolean toMake ); + boolean GetMakeGroupsOfSurfaces(); + + void SetLoadMeshOnCancel(in boolean toLoad ); + boolean GetLoadMeshOnCancel(); + + void SetFixedEdgeGroup( in SMESH::SMESH_GroupBase edgeGroup ); + SMESH::SMESH_GroupBase GetFixedEdgeGroup( in SMESH::SMESH_Mesh mesh ); + }; + + /*! + * NETGENPlugin_Hypothesis: interface of "NETGEN 2D simple parameters" hypothesis + */ + interface NETGENPlugin_SimpleHypothesis_2D : SMESH::SMESH_Hypothesis + { + /*! + * Sets value + */ + void SetNumberOfSegments(in long nb) raises (SALOME::SALOME_Exception); + /*! + * Returns value. + * Can be zero in case if LocalLength() has been set + */ + long 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(); + + /*! + * Enables/disables generation of quadrangular faces + */ + void SetAllowQuadrangles(in boolean toAllow); + /*! + * Returns true if generation of quadrangular faces is enabled + */ + boolean GetAllowQuadrangles(); + }; + + /*! + * 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(); }; };