From: prascle Date: Wed, 20 Mar 2013 09:27:58 +0000 (+0000) Subject: PR: doc adaptation to smeshBuilder X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b92ee9018715470e9bb4f5958add62394ff79ee6;p=plugins%2Fnetgenplugin.git PR: doc adaptation to smeshBuilder --- diff --git a/doc/salome/gui/NETGENPLUGIN/Makefile.am b/doc/salome/gui/NETGENPLUGIN/Makefile.am index 2b360e8..89785de 100755 --- a/doc/salome/gui/NETGENPLUGIN/Makefile.am +++ b/doc/salome/gui/NETGENPLUGIN/Makefile.am @@ -32,10 +32,7 @@ guidoc_DATA = images/head.png DOC_PYTHONPATH=$(prefix)/bin/salome:$(SMESH_ROOT_DIR)/bin/salome:$(SMESH_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(MED_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(GEOM_ROOT_DIR)/bin/salome:$(GEOM_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/bin/salome:$(KERNEL_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages DOC_SMESH_MeshersList=NETGENPlugin -smesh.py: $(top_srcdir)/src/NETGENPlugin/NETGENPluginDC.py - @PYTHONPATH=$(DOC_PYTHONPATH):${PYTHONPATH} SMESH_MeshersList=$(DOC_SMESH_MeshersList) $(PYTHON) $(SMESH_ROOT_DIR)/bin/salome/collect_mesh_methods.py -d -o $@ NETGENPlugin - -usr_docs: doxyfile_py doxyfile smesh.py +usr_docs: doxyfile_py doxyfile @$(DOXYGEN) doxyfile_py ; \ $(DOXYGEN) doxyfile diff --git a/doc/salome/gui/NETGENPLUGIN/doxyfile_py.in b/doc/salome/gui/NETGENPLUGIN/doxyfile_py.in index 4863fbd..531aab1 100755 --- a/doc/salome/gui/NETGENPLUGIN/doxyfile_py.in +++ b/doc/salome/gui/NETGENPLUGIN/doxyfile_py.in @@ -99,8 +99,7 @@ EXAMPLE_RECURSIVE = NO #--------------------------------------------------------------------------- #Input related options #--------------------------------------------------------------------------- -INPUT = @top_srcdir@/src/NETGENPlugin/NETGENPluginDC.py \ - smesh.py \ +INPUT = @top_srcdir@/src/NETGENPlugin/NETGENPluginBuilder.py \ @SMESH_ROOT_DIR@/bin/salome/smesh_algorithm.py FILE_PATTERNS = IMAGE_PATH = @srcdir@/images diff --git a/doc/salome/gui/NETGENPLUGIN/input/netgenplugin_python_interface.doc b/doc/salome/gui/NETGENPLUGIN/input/netgenplugin_python_interface.doc index f5f6ecd..cd916f4 100644 --- a/doc/salome/gui/NETGENPLUGIN/input/netgenplugin_python_interface.doc +++ b/doc/salome/gui/NETGENPLUGIN/input/netgenplugin_python_interface.doc @@ -2,7 +2,7 @@ \page netgenplugin_python_interface_page Python Interface -Python package NETGENPluginDC defines several classes, destined for +Python package NETGENPluginBuilder defines several classes, destined for creation of the 2D and 3D meshes. NETGEN meshing plugin dynamically adds several methods to the diff --git a/src/NETGENPlugin/NETGENPluginDC.py b/src/NETGENPlugin/NETGENPluginDC.py deleted file mode 100644 index a826096..0000000 --- a/src/NETGENPlugin/NETGENPluginDC.py +++ /dev/null @@ -1,465 +0,0 @@ -# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE -# -# 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 -# - -## -# @package NETGENPluginDC -# Python API for the NETGEN meshing plug-in module. - -from smesh_algorithm import Mesh_Algorithm -from smeshDC import AssureGeomPublished, ParseParameters, IsEqual - -# import NETGENPlugin module if possible -noNETGENPlugin = 0 -try: - import NETGENPlugin -except ImportError: - noNETGENPlugin = 1 - pass - -#---------------------------- -# Mesh algo type identifiers -#---------------------------- - -## Algorithm type: Netgen tetrahedron 3D algorithm, see NETGEN_3D_Algorithm -NETGEN_3D = "NETGEN_3D" -## Algorithm type: Netgen tetrahedron 1D-2D-3D algorithm, see NETGEN_1D2D3D_Algorithm -NETGEN_1D2D3D = "NETGEN_2D3D" -## Algorithm type: Netgen triangle 1D-2D algorithm, see NETGEN_1D2D_Algorithm -NETGEN_1D2D = "NETGEN_2D" -## Algorithm type: Netgen triangle 2D algorithm, see NETGEN_2D_Only_Algorithm -NETGEN_2D = "NETGEN_2D_ONLY" -## Algorithm type: Synonim of NETGEN_1D2D3D, see NETGEN_1D2D3D_Algorithm -NETGEN_FULL = NETGEN_1D2D3D -## Algorithm type: Synonim of NETGEN_3D, see NETGEN_3D_Algorithm -NETGEN = NETGEN_3D -## Algorithm type: Synonim of NETGEN_1D2D3D, see NETGEN_1D2D3D_Algorithm -FULL_NETGEN = NETGEN_FULL - -#---------------------------- -# Hypothesis type enumeration -#---------------------------- - -## Hypothesis type enumeration: complex hypothesis -# (full set of parameters can be specified), -# see NETGEN_Algorithm.Parameters() -SOLE = 0 -## Hypothesis type enumeration: simple hypothesis -# (only major parameters are specified), -# see NETGEN_Algorithm.Parameters() -SIMPLE = 1 - -#---------------------- -# Fineness enumeration -#---------------------- - -## Fineness enumeration: very coarse quality of mesh, -# see NETGEN_Algorithm.SetFineness() -VeryCoarse = 0 -## Fineness enumeration: coarse quality of mesh, -# see NETGEN_Algorithm.SetFineness() -Coarse = 1 -## Fineness enumeration: moderate quality of mesh, -# see NETGEN_Algorithm.SetFineness() -Moderate = 2 -## Fineness enumeration: fine quality of mesh, -# see NETGEN_Algorithm.SetFineness() -Fine = 3 -## Fineness enumeration: very fine quality of mesh, -# see NETGEN_Algorithm.SetFineness() -VeryFine = 4 -## Fineness enumeration: custom quality of mesh specified by other parameters), -# see NETGEN_Algorithm.SetFineness() -Custom = 5 - -#---------------------- -# Algorithms -#---------------------- - -## Base of all NETGEN algorithms. -# -# This class provides common methods for all algorithms implemented by NETGEN plugin. -# @note This class must not be instantiated directly. -class NETGEN_Algorithm(Mesh_Algorithm): - - ## Private constructor - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - Mesh_Algorithm.__init__(self) - if noNETGENPlugin: print "Warning: NETGENPlugin module unavailable" - self.Create(mesh, geom, self.algoType, "libNETGENEngine.so") - self.params = None - pass - - ## Sets @c MaxSize parameter - # @param theSize new value of the @c MaxSize parameter - def SetMaxSize(self, theSize): - if self.Parameters(): self.params.SetMaxSize(theSize) - pass - - ## Sets @c MinSize parameter - # @param theSize new value of the @c MinSize parameter - def SetMinSize(self, theSize): - if self.Parameters(): self.params.SetMinSize(theSize) - pass - - ## Sets @c Optimize flag - # @param theVal new value of the @c Optimize parameter - def SetOptimize(self, theVal): - if self.Parameters(): self.params.SetOptimize(theVal) - pass - - ## Sets @c Fineness parameter - # @param theFineness new value of the @c Fineness parameter; it can be: - # @ref VeryCoarse, @ref Coarse, @ref Moderate, @ref Fine, @ref VeryFine or @ref Custom - def SetFineness(self, theFineness): - if self.Parameters(): self.params.SetFineness(theFineness) - pass - - ## Sets @c GrowthRate parameter - # @param theRate new value of the @c GrowthRate parameter - def SetGrowthRate(self, theRate): - if self.Parameters(): self.params.SetGrowthRate(theRate) - pass - - ## Creates meshing hypothesis according to the chosen algorithm type - # and initializes it with default parameters - # @param which hypothesis type; can be either @ref SOLE (default) or @ref SIMPLE - # @return hypothesis object - def Parameters(self, which=SOLE): - if self.algoType == NETGEN_1D2D: - if which == SIMPLE: - hypType = "NETGEN_SimpleParameters_2D" - else: - hypType = "NETGEN_Parameters_2D" - elif self.algoType == NETGEN_1D2D3D: - if which == SIMPLE: - hypType = "NETGEN_SimpleParameters_3D" - else: - hypType = "NETGEN_Parameters" - elif self.algoType == NETGEN_2D: - hypType = "NETGEN_Parameters_2D_ONLY" - else: - hypType = "NETGEN_Parameters_3D" - - if self.params and self.params.GetName() != hypType: - self.mesh.RemoveHypothesis( self.params, self.geom ) - self.params = None - if not self.params: - self.params = self.Hypothesis(hypType, [],"libNETGENEngine.so",UseExisting=0) - - return self.params - - pass # end of NETGEN_Algorithm class - - -## Tetrahedron 1D-2D-3D algorithm. -# -# It can be created by calling smesh.Mesh.Tetrahedron( smesh.NETGEN_1D2D3D, geom=0 ). -# This algorithm generates all 1D (edges), 2D (faces) and 3D (volumes) elements -# for given geometrical shape. -class NETGEN_1D2D3D_Algorithm(NETGEN_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - meshMethod = "Tetrahedron" - ## type of algorithm used with helper function in smesh.Mesh class - # @internal - algoType = NETGEN_1D2D3D - ## doc string of the method - # @internal - docHelper = "Creates tetrahedron 3D algorithm for solids" - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - NETGEN_Algorithm.__init__(self, mesh, geom) - pass - - ## Sets @c SecondOrder flag - # @param theVal new value of the @c SecondOrder parameter - def SetSecondOrder(self, theVal): - if self.Parameters(): self.params.SetSecondOrder(theVal) - pass - - ## Sets @c NbSegPerEdge parameter - # @param theVal new value of the @c NbSegPerEdge parameter - def SetNbSegPerEdge(self, theVal): - if self.Parameters(): self.params.SetNbSegPerEdge(theVal) - pass - - ## Sets @c NbSegPerRadius parameter - # @param theVal new value of the @c NbSegPerRadius parameter - def SetNbSegPerRadius(self, theVal): - if self.Parameters(): self.params.SetNbSegPerRadius(theVal) - pass - - ## Sets @c QuadAllowed flag - # @param toAllow new value of the @c QuadAllowed parameter (@c True by default) - def SetQuadAllowed(self, toAllow=True): - if self.Parameters(): self.params.SetQuadAllowed(toAllow) - pass - - ## Sets number of segments overriding the value set by SetLocalLength() - # @param theVal new value of number of segments parameter - def SetNumberOfSegments(self, theVal): - self.Parameters(SIMPLE).SetNumberOfSegments(theVal) - pass - - ## Sets number of segments overriding the value set by SetNumberOfSegments() - # @param theVal new value of local length parameter - def SetLocalLength(self, theVal): - self.Parameters(SIMPLE).SetLocalLength(theVal) - pass - - ## Defines @c MaxElementArea parameter of @c NETGEN_SimpleParameters_3D hypothesis. - # Overrides value set by LengthFromEdges() - # @param area new value of @c MaxElementArea parameter - def MaxElementArea(self, area): - self.Parameters(SIMPLE).SetMaxElementArea(area) - pass - - ## Defines @c LengthFromEdges parameter of @c NETGEN_SimpleParameters_3D hypothesis. - # Overrides value set by MaxElementArea() - def LengthFromEdges(self): - self.Parameters(SIMPLE).LengthFromEdges() - pass - - ## Defines @c LengthFromFaces parameter of @c NETGEN_SimpleParameters_3D hypothesis. - # Overrides value set by MaxElementVolume() - def LengthFromFaces(self): - self.Parameters(SIMPLE).LengthFromFaces() - pass - - ## Defines @c MaxElementVolume parameter of @c NETGEN_SimpleParameters_3D hypothesis. - # Overrides value set by LengthFromFaces() - # @param vol new value of @c MaxElementVolume parameter - def MaxElementVolume(self, vol): - self.Parameters(SIMPLE).SetMaxElementVolume(vol) - pass - - pass # end of NETGEN_1D2D3D_Algorithm class - - -## Triangle NETGEN 1D-2D algorithm. -# -# It can be created by calling smesh.Mesh.Triangle( smesh.NETGEN_1D2D, geom=0 ) -# -# This algorithm generates 1D (edges) and 2D (faces) elements -# for given geometrical shape. -class NETGEN_1D2D_Algorithm(NETGEN_1D2D3D_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - meshMethod = "Triangle" - ## type of algorithm used with helper function in smesh.Mesh class - # @internal - algoType = NETGEN_1D2D - ## doc string of the method - # @internal - docHelper = "Creates triangle 2D algorithm for faces" - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - NETGEN_1D2D3D_Algorithm.__init__(self, mesh, geom) - pass - - pass # end of NETGEN_1D2D_Algorithm class - - -## Triangle NETGEN 2D algorithm -# -# It can be created by calling smesh.Mesh.Triangle( smesh.NETGEN_2D, geom=0 ) -# -# This algorithm generates only 2D (faces) elements for given geometrical shape -# and, in contrast to NETGEN_1D2D_Algorithm class, should be used in conjunction -# with other 1D meshing algorithm. -class NETGEN_2D_Only_Algorithm(NETGEN_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - meshMethod = "Triangle" - ## type of algorithm used with helper function in smesh.Mesh class - # @internal - algoType = NETGEN_2D - ## doc string of the method - # @internal - docHelper = "Creates triangle 2D algorithm for faces" - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - NETGEN_Algorithm.__init__(self, mesh, geom) - pass - - ## Defines @c MaxElementArea parameter of hypothesis basing on the definition of the - # maximum area of each triangle - # @param area maximum area value of each triangle - # @param UseExisting if \c True - searches for an existing hypothesis created with the - # same parameters, else (default) - creates a new one - # @return hypothesis object - def MaxElementArea(self, area, UseExisting=0): - compFun = lambda hyp, args: IsEqual(hyp.GetMaxElementArea(), args[0]) - hyp = self.Hypothesis("MaxElementArea", [area], UseExisting=UseExisting, - CompareMethod=compFun) - hyp.SetMaxElementArea(area) - return hyp - - ## Defines @c LengthFromEdges hypothesis to build triangles - # based on the length of the edges taken from the wire - # @return hypothesis object - def LengthFromEdges(self): - hyp = self.Hypothesis("LengthFromEdges", UseExisting=1, CompareMethod=self.CompareEqualHyp) - return hyp - - ## Sets @c QuadAllowed flag. - # @param toAllow new value of the @c QuadAllowed parameter (@c True by default) - # @return hypothesis object - def SetQuadAllowed(self, toAllow=True): - if not self.params: - # use simple hyps - hasSimpleHyps = False - simpleHyps = ["QuadranglePreference","LengthFromEdges","MaxElementArea"] - for hyp in self.mesh.GetHypothesisList( self.geom ): - if hyp.GetName() in simpleHyps: - hasSimpleHyps = True - if hyp.GetName() == "QuadranglePreference": - if not toAllow: # remove QuadranglePreference - self.mesh.RemoveHypothesis( self.geom, hyp ) - else: - return hyp - return None - pass - pass - if hasSimpleHyps: - if toAllow: # add QuadranglePreference - return self.Hypothesis("QuadranglePreference", UseExisting=1, CompareMethod=self.CompareEqualHyp) - return None - pass - self.Parameters().SetQuadAllowed( toAllow ) - return self.params - - pass # end of NETGEN_2D_Only_Algorithm class - - -## Tetrahedron 3D algorithm -# -# It can be created by calling smesh.Mesh.Tetrahedron() or smesh.Mesh.Tetrahedron( smesh.NETGEN, geom=0 ) -# -# This algorithm generates only 3D (volumes) elements for given geometrical shape -# and, in contrast to NETGEN_1D2D3D_Algorithm class, should be used in conjunction -# with other 1D and 2D meshing algorithms. -class NETGEN_3D_Algorithm(NETGEN_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - meshMethod = "Tetrahedron" - ## type of algorithm used with helper function in smesh.Mesh class - # @internal - algoType = NETGEN - ## flag pointing either this algorithm should be used by default in dynamic method - # of smesh.Mesh class - # @internal - isDefault = True - ## doc string of the method - # @internal - docHelper = "Creates tetrahedron 3D algorithm for solids" - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - NETGEN_Algorithm.__init__(self, mesh, geom) - pass - - ## Defines @c MaxElementVolume hypothesis to specify the maximum volume value of each tetrahedron - # @param vol maximum volume value of each tetrahedron - # @param UseExisting if \c True - searches for the existing hypothesis created with - # the same parameters, else (default) - creates a new one - # @return hypothesis object - def MaxElementVolume(self, vol, UseExisting=0): - compFun = lambda hyp, args: IsEqual(hyp.GetMaxElementVolume(), args[0]) - hyp = self.Hypothesis("MaxElementVolume", [vol], UseExisting=UseExisting, - CompareMethod=compFun) - hyp.SetMaxElementVolume(vol) - return hyp - - pass # end of NETGEN_3D_Algorithm class - - -## Triangle (helper) 1D-2D algorithm -# -# This is the helper class that is used just to allow creating of create NETGEN_1D2D algorithm -# by calling smesh.Mesh.Triangle( smesh.NETGEN, geom=0 ); this is required for backward compatibility -# with old Python scripts. -# -# @note This class (and corresponding smesh.Mesh function) is obsolete; -# use smesh.Mesh.Triangle( smesh.NETGEN_1D2D, geom=0 ) instead. -class NETGEN_1D2D_Algorithm_2(NETGEN_1D2D_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - algoType = NETGEN - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - self.algoType = NETGEN_1D2D - NETGEN_1D2D_Algorithm.__init__(self,mesh, geom) - pass - - pass # end of NETGEN_1D2D_Algorithm_2 class - - -## Tetrahedron (helper) 1D-2D-3D algorithm. -# -# This is the helper class that is used just to allow creating of create NETGEN_1D2D3D -# by calling smesh.Mesh.Netgen(); this is required for backward compatibility with old Python scripts. -# -# @note This class (and corresponding smesh.Mesh function) is obsolete; -# use smesh.Mesh.Tetrahedron( smesh.NETGEN_1D2D3D, geom=0 ) instead. -class NETGEN_1D2D3D_Algorithm_2(NETGEN_1D2D3D_Algorithm): - - ## name of the dynamic method in smesh.Mesh class - # @internal - meshMethod = "Netgen" - ## doc string of the method - # @internal - docHelper = "Deprecated, used only for compatibility! See Tetrahedron() method." - - ## Private constructor. - # @param mesh parent mesh object algorithm is assigned to - # @param geom geometry (shape/sub-shape) algorithm is assigned to; - # if it is @c 0 (default), the algorithm is assigned to the main shape - def __init__(self, mesh, geom=0): - NETGEN_1D2D3D_Algorithm.__init__(self,mesh, geom) - pass - - pass # end of NETGEN_1D2D3D_Algorithm_2 class