]> SALOME platform Git repositories - plugins/hybridplugin.git/commitdiff
Salome HOME
Merge from BR_plugins_pbyacs 03/04/2013
authorvsr <vsr@opencascade.com>
Thu, 4 Apr 2013 07:09:59 +0000 (07:09 +0000)
committervsr <vsr@opencascade.com>
Thu, 4 Apr 2013 07:09:59 +0000 (07:09 +0000)
15 files changed:
configure.ac
doc/salome/Makefile.am
doc/salome/examples/Makefile.am [new file with mode: 0644]
doc/salome/examples/ghs3d_enfmesh.py [new file with mode: 0644]
doc/salome/examples/ghs3d_enfvert.py [new file with mode: 0644]
doc/salome/examples/ghs3ddemo.py [new file with mode: 0644]
doc/salome/gui/GHS3DPLUGIN/Makefile.am
doc/salome/gui/GHS3DPLUGIN/doxyfile.in
doc/salome/gui/GHS3DPLUGIN/doxyfile_py.in
doc/salome/gui/GHS3DPLUGIN/input/ghs3dplugin_python_interface.doc
resources/GHS3DPlugin.xml
src/GHS3DPlugin/GHS3DPluginBuilder.py [new file with mode: 0644]
src/GHS3DPlugin/GHS3DPluginDC.py [deleted file]
src/GHS3DPlugin/Makefile.am
src/GHS3DPlugin/__init__.py [new file with mode: 0644]

index 6708ddb4ddb3bedac41114fbc3f0953060f38f97..985d94ba1aefcf6a4c6120ed1554d0fe1fdff1e1 100644 (file)
@@ -425,6 +425,7 @@ AC_OUTPUT([ \
   GHS3DPLUGIN_version.h \
   doc/Makefile \
   doc/salome/Makefile \
+  doc/salome/examples/Makefile \
   doc/salome/gui/Makefile \
   doc/salome/gui/GHS3DPLUGIN/Makefile \
   doc/salome/gui/GHS3DPLUGIN/doxyfile \
index 9fd2b2d92e42b9e34957432c71603aef9a056203..f55ed012a689ca1a6609a234f146a8b89fc11361 100644 (file)
@@ -17,7 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-SUBDIRS = gui
+SUBDIRS = examples gui
 SUBDIRSGUI = gui
 
 usr_docs:
diff --git a/doc/salome/examples/Makefile.am b/doc/salome/examples/Makefile.am
new file mode 100644 (file)
index 0000000..2eab4ae
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright (C) 2007-2013  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
+#
+
+#  File   : Makefile
+#  Author : Alexander KOVALEV (Open Cascade NN)
+#  Modified by : 
+#  Module : doc
+#
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+pyexamplesdir = $(docdir)/examples/GHS3DPLUGIN
+
+pyexamples_SCRIPTS = ghs3ddemo.py \
+                    ghs3d_enfvert.py \
+                    ghs3d_enfmesh.py
+
+EXTRA_DIST += $(pyexamples_SCRIPTS)
diff --git a/doc/salome/examples/ghs3d_enfmesh.py b/doc/salome/examples/ghs3d_enfmesh.py
new file mode 100644 (file)
index 0000000..4da517e
--- /dev/null
@@ -0,0 +1,107 @@
+
+# It is possible to constrain GHS3D with another mesh or group.
+# The constraint can refer to the nodes, edges or faces.
+# This feature is available only on 2D meshes without geometry.
+# The constraining elements are called enforced elements for the mesh.
+# They can be recovered using groups if necessary.
+
+# In the following examples, a box and a cylinder are meshed in 2D.
+# The mesh of the cylinder will be used as a constraint for the 
+# 3D mesh of the box.
+
+import salome
+salome.salome_init()
+import GEOM
+from salome.geom import geomBuilder
+geompy = geomBuilder.New(salome.myStudy)
+
+import SMESH, SALOMEDS
+from salome.smesh import smeshBuilder
+smesh =  smeshBuilder.New(salome.myStudy)
+
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+geompy.addToStudy( box, "box" )
+cylindre = geompy.MakeCylinderRH(50, 50)
+geompy.TranslateDXDYDZ(cylindre, 100, 100, 30)
+face_cyl = geompy.ExtractShapes(cylindre, geompy.ShapeType["FACE"], True)[1]
+geompy.addToStudy( cylindre, 'cylindre' )
+geompy.addToStudyInFather( cylindre, face_cyl, 'face_cyl' )
+p1 = geompy.MakeVertex(20, 20, 20)
+p2 = geompy.MakeVertex(180, 180, 20)
+c = geompy.MakeCompound([p1,p2])
+geompy.addToStudy( p1, "p1" )
+geompy.addToStudy( p2, "p2" )
+geompy.addToStudy( c, "c" )
+
+# Create the 2D algorithm and hypothesis
+BLSURF = smesh.CreateHypothesis('BLSURF', 'BLSURFEngine')
+# For the box
+BLSURF_Parameters = smesh.CreateHypothesis('BLSURF_Parameters', 'BLSURFEngine')
+BLSURF_Parameters.SetPhysicalMesh( 1 )
+BLSURF_Parameters.SetPhySize( 200 )
+# For the cylinder
+BLSURF_Parameters2 = smesh.CreateHypothesis('BLSURF_Parameters', 'BLSURFEngine')
+BLSURF_Parameters2.SetGeometricMesh( 1 )
+
+# Create the 3D algorithm and hypothesis
+GHS3D = smesh.CreateHypothesis('GHS3D_3D', 'GHS3DEngine')
+GHS3D_Parameters_node = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+#GHS3D_Parameters_node.SetToMeshHoles( 1 )
+GHS3D_Parameters_edge = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+#GHS3D_Parameters_edge.SetToMeshHoles( 1 )
+GHS3D_Parameters_face = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+GHS3D_Parameters_face.SetToMeshHoles( 1 ) # to mesh inside the cylinder
+GHS3D_Parameters_mesh = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+GHS3D_Parameters_mesh.SetToMeshHoles( 1 ) # to mesh inside the cylinder
+
+# Create the mesh on the cylinder
+Mesh_cylindre = smesh.Mesh(cylindre)
+smesh.SetName(Mesh_cylindre,"Mesh_cylindre")
+Mesh_cylindre.AddHypothesis( BLSURF )
+Mesh_cylindre.AddHypothesis( BLSURF_Parameters2 )
+# Create some groups
+face_cyl_faces = Mesh_cylindre.GroupOnGeom(face_cyl,'group_face_cyl', SMESH.FACE)
+face_cyl_edges = Mesh_cylindre.GroupOnGeom(face_cyl,'group_edge_cyl', SMESH.EDGE)
+face_cyl_nodes = Mesh_cylindre.GroupOnGeom(face_cyl,'group_node_cyl', SMESH.NODE)
+Mesh_cylindre.Compute()
+
+# Create the mesh on the cylinder
+Mesh_box_tri = smesh.Mesh(box)
+smesh.SetName(Mesh_box_tri,"Mesh_box_tri")
+Mesh_box_tri.AddHypothesis( BLSURF )
+Mesh_box_tri.AddHypothesis( BLSURF_Parameters )
+Mesh_box_tri.Compute()
+
+# Create 4 copies of the 2D mesh to test the 3 types of contraints (NODE, EDGE, FACE)
+# from the whole mesh and from groups of elements.
+# Then the 3D algo and hypothesis are assigned to them.
+
+mesh_mesh = smesh.CopyMesh( Mesh_box_tri, 'Enforced by faces of mesh', 0, 0)
+mesh_mesh.AddHypothesis( GHS3D )
+mesh_mesh.AddHypothesis( GHS3D_Parameters_mesh)
+
+mesh_node = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of nodes', 0, 0)
+mesh_node.AddHypothesis( GHS3D )
+mesh_node.AddHypothesis( GHS3D_Parameters_node)
+
+mesh_edge = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of edges', 0, 0)
+mesh_edge.AddHypothesis( GHS3D )
+mesh_edge.AddHypothesis( GHS3D_Parameters_edge)
+
+mesh_face = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of faces', 0, 0)
+mesh_face.AddHypothesis( GHS3D )
+mesh_face.AddHypothesis( GHS3D_Parameters_face)
+
+# Add the enforced elements
+GHS3D_Parameters_mesh.SetEnforcedMeshWithGroup(Mesh_cylindre.GetMesh(),SMESH.FACE,"faces from cylinder")
+GHS3D_Parameters_node.SetEnforcedMeshWithGroup(face_cyl_nodes,SMESH.NODE,"nodes from face_cyl_nodes")
+GHS3D_Parameters_edge.SetEnforcedMeshWithGroup(face_cyl_edges,SMESH.EDGE,"edges from face_cyl_edges")
+GHS3D_Parameters_face.SetEnforcedMeshWithGroup(face_cyl_faces,SMESH.FACE,"faces from face_cyl_faces")
+
+#Compute the meshes
+mesh_node.Compute()
+mesh_edge.Compute()
+mesh_face.Compute()
+mesh_mesh.Compute()
+
+# End of script
diff --git a/doc/salome/examples/ghs3d_enfvert.py b/doc/salome/examples/ghs3d_enfvert.py
new file mode 100644 (file)
index 0000000..319ca32
--- /dev/null
@@ -0,0 +1,68 @@
+
+# An enforced vertex can be added via:
+# - the coordinates x,y,z
+# - a GEOM vertex or compound (No geometry, TUI only)
+#
+# The created enforced nodes can also be stored in
+# a group.
+#
+# This feature is available only on meshes without geometry.
+
+# Ex1: Add one enforced vertex with coordinates (50,50,100) 
+#      and physical size 2.
+
+import salome
+salome.salome_init()
+import GEOM
+from salome.geom import geomBuilder
+geompy = geomBuilder.New(salome.myStudy)
+
+import SMESH, SALOMEDS
+from salome.smesh import smeshBuilder
+smesh =  smeshBuilder.New(salome.myStudy)
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(200., 200., 200.)
+geompy.addToStudy(box, "box")
+# create a mesh on the box
+ghs3dMesh = smesh.Mesh(box,"box: Ghs3D and BLSurf mesh")
+# create a BLSurf algorithm for faces
+ghs3dMesh.Triangle(algo=smeshBuilder.BLSURF)
+# compute the mesh
+ghs3dMesh.Compute()
+
+# Make a copy of the 2D mesh
+ghs3dMesh_wo_geometry = smesh.CopyMesh( ghs3dMesh, 'Ghs3D wo geometry', 0, 0)
+
+# create a Ghs3D algorithm and hypothesis and assign them to the mesh
+GHS3D = smesh.CreateHypothesis('GHS3D_3D', 'GHS3DEngine')
+GHS3D_Parameters = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+ghs3dMesh.AddHypothesis( GHS3D )
+ghs3dMesh.AddHypothesis( GHS3D_Parameters )
+# Create the enforced vertex
+GHS3D_Parameters.SetEnforcedVertex( 50, 50, 100, 2) # no group
+# Compute the mesh
+ghs3dMesh.Compute()
+
+
+# Ex2: Add one vertex enforced by a GEOM vertex at (50,50,100) 
+#      with physical size 5 and add it to a group called "My special nodes"
+
+# Create another GHS3D hypothesis and assign it to the mesh without geometry
+GHS3D_Parameters_wo_geometry = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
+ghs3dMesh_wo_geometry.AddHypothesis( GHS3D )
+ghs3dMesh_wo_geometry.AddHypothesis( GHS3D_Parameters_wo_geometry )
+
+# Create the enforced vertex
+p1 = geompy.MakeVertex(150, 150, 100)
+geompy.addToStudy(p1, "p1")
+GHS3D_Parameters_wo_geometry.SetEnforcedVertexGeomWithGroup( p1, 5 , "My special nodes")
+#GHS3D_Parameters.SetEnforcedVertexGeom( p1, 5 ) # no group
+
+# compute the mesh
+ghs3dMesh_wo_geometry.Compute()
+
+# Erase all enforced vertices
+GHS3D_Parameters.ClearEnforcedVertices()
+
+# End of script
diff --git a/doc/salome/examples/ghs3ddemo.py b/doc/salome/examples/ghs3ddemo.py
new file mode 100644 (file)
index 0000000..2e43838
--- /dev/null
@@ -0,0 +1,27 @@
+
+import salome
+salome.salome_init()
+import GEOM
+from salome.geom import geomBuilder
+geompy = geomBuilder.New(salome.myStudy)
+
+import SMESH, SALOMEDS
+from salome.smesh import smeshBuilder
+smesh =  smeshBuilder.New(salome.myStudy)
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(200., 200., 200.)
+geompy.addToStudy(box, "box")
+
+# create a mesh on the box
+ghs3dMesh = smesh.Mesh(box,"box: Ghs3D and BLSurf mesh")
+
+# create a BLSurf algorithm for faces
+BLSURF = ghs3dMesh.Triangle(algo=smeshBuilder.BLSURF)
+GHS3D = ghs3dMesh.Tetrahedron(algo=smeshBuilder.GHS3D)
+
+# compute the mesh
+ghs3dMesh.Compute()
+
+# End of script
+
index 84a38aad1b7c0bb9544219a1ea9bab3ae060bf48..c1fd421a3528c7bf5ebc40095c7a2df11b568957 100755 (executable)
@@ -27,10 +27,7 @@ DOC_PYTHONPATH=$(prefix)/bin/salome:$(SMESH_ROOT_DIR)/bin/salome:$(SMESH_ROOT_DI
 DOC_LD_LIBRARY_PATH=$(prefix)/lib/salome:${SMESH_ROOT_DIR}/lib/salome:${MED_ROOT_DIR}/lib/salome:${GEOM_ROOT_DIR}/lib/salome:${KERNEL_ROOT_DIR}/lib/salome
 DOC_SMESH_MeshersList=GHS3DPlugin
 
-smesh.py: $(top_srcdir)/src/GHS3DPlugin/GHS3DPluginDC.py
-       @PYTHONPATH=$(DOC_PYTHONPATH):${PYTHONPATH} LD_LIBRARY_PATH=$(DOC_LD_LIBRARY_PATH):${LD_LIBRARY_PATH} SMESH_MeshersList=$(DOC_SMESH_MeshersList) $(PYTHON) $(SMESH_ROOT_DIR)/bin/salome/collect_mesh_methods.py -d -o $@ GHS3DPlugin
-
-usr_docs: doxyfile_py doxyfile smesh.py
+usr_docs: doxyfile_py doxyfile
        @$(DOXYGEN) doxyfile_py ; \
        $(DOXYGEN) doxyfile
 
index cbb8f6a0a13392e901090c2eafaab2dfe64c9e06..46366d3673a41766fc498deacf64d2b44bbfc314 100755 (executable)
@@ -39,7 +39,7 @@ INPUT             = @srcdir@/input
 FILE_PATTERNS     = *.doc
 EXCLUDE           = 
 IMAGE_PATH        = @srcdir@/images
-EXAMPLE_PATH      = 
+EXAMPLE_PATH      = @top_srcdir@/doc/salome/examples
 
 #---------------------------------------------------------------------------
 #HTML related options
@@ -78,4 +78,9 @@ GENERATE_RTF      = NO
 #rnv: 07.04.2011 Workaround for the doxygen 1.7.3:
 #because it wrongly defines location of the html files for search.
 TAGFILES          = ghs3dpluginpy_doc.tag=../GHS3DPLUGIN/ghs3dpluginpy_doc
-SEARCHENGINE      = YES
\ No newline at end of file
+SEARCHENGINE      = YES
+
+#---------------------------------------------------------------------------
+#Custom commands
+#---------------------------------------------------------------------------
+ALIASES += tui_script{1}="\include \1 <a href=\"../../examples/GHS3DPLUGIN/\1\">Download this script</a>"
index 9a63aa623044f5e3894024eb391623e2914acc2d..e4e2f9dccb06d416c830396ba62a0b76398237e9 100755 (executable)
@@ -96,9 +96,9 @@ EXAMPLE_RECURSIVE      = NO
 #---------------------------------------------------------------------------
 #Input related options
 #---------------------------------------------------------------------------
-INPUT             = @top_srcdir@/src/GHS3DPlugin/GHS3DPluginDC.py \
-                    smesh.py \
-                   @SMESH_ROOT_DIR@/bin/salome/smesh_algorithm.py
+INPUT             = @top_srcdir@/src/GHS3DPlugin/GHS3DPluginBuilder.py \
+                    @SMESH_ROOT_DIR@/lib/python@PYTHON_VERSION@/site-packages/salome/salome/smesh/smeshBuilder.py \
+                    @SMESH_ROOT_DIR@/lib/python@PYTHON_VERSION@/site-packages/salome/salome/smesh/smesh_algorithm.py
 FILE_PATTERNS     = 
 IMAGE_PATH        = @srcdir@/images
 RECURSIVE         = NO
index 220bd07d822f54135e5c3a7127922d0998c7508a..73c4639b02204963b94323b1401f43e062e2d2c6 100644 (file)
@@ -2,9 +2,9 @@
 
 \page ghs3dplugin_python_interface_page Python Interface
 
-Python package GHS3DPluginDC defines several classes, destined for creation of the 3D meshes.
+Python package GHS3DPlugin defines several classes, destined for creation of the 3D meshes.
 
-GHS3D meshing plugin dynamically adds several methods to the smesh.Mesh class to create meshing algorithms.
+GHS3D meshing plugin dynamically adds several methods to the  \ref SMESH_SWIG.smeshBuilder.Mesh "class Mesh" class to create meshing algorithms.
 
 Below you can see an example of usage of the GHS3DPlugin Python API for mesh generation:
 
@@ -16,28 +16,10 @@ Below you can see an example of usage of the GHS3DPlugin Python API for mesh gen
 
 \section tui_ghs3d_basic Construction of Mesh using Ghs3D algorithm
 
-\code
-import geompy
-import smesh
-import BLSURFPlugin
-import GHS3DPlugin
+\anchor example_BLSURFPlugin
+<h2>Example of mesh generation with GHS3D algorithm:</h2>
+\tui_script{ghs3ddemo.py}
 
-# create a box
-box = geompy.MakeBoxDXDYDZ(200., 200., 200.)
-geompy.addToStudy(box, "box")
-
-# create a mesh on the box
-ghs3dMesh = smesh.Mesh(box,"box: Ghs3D and BLSurf mesh")
-
-# create a BLSurf algorithm for faces
-BLSURF = ghs3dMesh.Triangle(algo=smesh.BLSURF)
-GHS3D = ghs3dMesh.Tetrahedron(algo=smesh.GHS3D)
-
-# compute the mesh
-ghs3dMesh.Compute()
-
-# End of script
-\endcode
 
 \image html ghs3d_screenshot.png Ghs3d mesh without hypothesis
 
@@ -45,72 +27,9 @@ ghs3dMesh.Compute()
 
 \section tui_ghs3d_enforced_vertices Adding enforced vertices
 
-\code
-
-# An enforced vertex can be added via:
-# - the coordinates x,y,z
-# - a GEOM vertex or compound (No geometry, TUI only)
-#
-# The created enforced nodes can also be stored in
-# a group.
-#
-# This feature is available only on meshes without geometry.
-
-# Ex1: Add one enforced vertex with coordinates (50,50,100) 
-#      and physical size 2.
-
-import geompy
-import smesh
-import BLSURFPlugin
-import GHS3DPlugin
-
-# create a box
-box = geompy.MakeBoxDXDYDZ(200., 200., 200.)
-geompy.addToStudy(box, "box")
-# create a mesh on the box
-ghs3dMesh = smesh.Mesh(box,"box: Ghs3D and BLSurf mesh")
-# create a BLSurf algorithm for faces
-ghs3dMesh.Triangle(algo=smesh.BLSURF)
-# compute the mesh
-ghs3dMesh.Compute()
-
-# Make a copy of the 2D mesh
-ghs3dMesh_wo_geometry = smesh.CopyMesh( ghs3dMesh, 'Ghs3D wo geometry', 0, 0)
-
-# create a Ghs3D algorithm and hypothesis and assign them to the mesh
-GHS3D = smesh.CreateHypothesis('GHS3D_3D', 'GHS3DEngine')
-GHS3D_Parameters = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-ghs3dMesh.AddHypothesis( GHS3D )
-ghs3dMesh.AddHypothesis( GHS3D_Parameters )
-# Create the enforced vertex
-GHS3D_Parameters.SetEnforcedVertex( 50, 50, 100, 2) # no group
-# Compute the mesh
-ghs3dMesh.Compute()
-
-
-# Ex2: Add one vertex enforced by a GEOM vertex at (50,50,100) 
-#      with physical size 5 and add it to a group called "My special nodes"
-
-# Create another GHS3D hypothesis and assign it to the mesh without geometry
-GHS3D_Parameters_wo_geometry = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-ghs3dMesh_wo_geometry.AddHypothesis( GHS3D )
-ghs3dMesh_wo_geometry.AddHypothesis( GHS3D_Parameters_wo_geometry )
-
-# Create the enforced vertex
-p1 = geompy.MakeVertex(150, 150, 100)
-geompy.addToStudy(p1, "p1")
-GHS3D_Parameters_wo_geometry.SetEnforcedVertexGeomWithGroup( p1, 5 , "My special nodes")
-#GHS3D_Parameters.SetEnforcedVertexGeom( p1, 5 ) # no group
-
-# compute the mesh
-ghs3dMesh_wo_geometry.Compute()
-
-# Erase all enforced vertices
-GHS3D_Parameters.ClearEnforcedVertices()
-
-# End of script
-
-\endcode
+<h2>Example of enforced vertices with GHS3D algorithm:</h2>
+\tui_script{ghs3d_enfvert.py}
+
 
 \image html ghs3d_screenshot_enf1.png Ghs3d mesh with enforced vertex
 \image html ghs3d_screenshot_enf2.png Ghs3d mesh with enforced vertex from GEOM vertex
@@ -119,111 +38,8 @@ GHS3D_Parameters.ClearEnforcedVertices()
 
 \section tui_ghs3d_enforced_meshes Adding enforced mesh
 
-\code
-
-# It is possible to constrain GHS3D with another mesh or group.
-# The constraint can refer to the nodes, edges or faces.
-# This feature is available only on 2D meshes without geometry.
-# The constraining elements are called enforced elements for the mesh.
-# They can be recovered using groups if necessary.
-
-# In the following examples, a box and a cylinder are meshed in 2D.
-# The mesh of the cylinder will be used as a constraint for the 
-# 3D mesh of the box.
-
-import geompy
-import smesh
-import BLSURFPlugin
-import GHS3DPlugin
-
-box = geompy.MakeBoxDXDYDZ(200, 200, 200)
-geompy.addToStudy( box, "box" )
-cylindre = geompy.MakeCylinderRH(50, 50)
-geompy.TranslateDXDYDZ(cylindre, 100, 100, 30)
-face_cyl = geompy.ExtractShapes(cylindre, geompy.ShapeType["FACE"], True)[1]
-geompy.addToStudy( cylindre, 'cylindre' )
-geompy.addToStudyInFather( cylindre, face_cyl, 'face_cyl' )
-p1 = geompy.MakeVertex(20, 20, 20)
-p2 = geompy.MakeVertex(180, 180, 20)
-c = geompy.MakeCompound([p1,p2])
-geompy.addToStudy( p1, "p1" )
-geompy.addToStudy( p2, "p2" )
-geompy.addToStudy( c, "c" )
-
-# Create the 2D algorithm and hypothesis
-BLSURF = smesh.CreateHypothesis('BLSURF', 'BLSURFEngine')
-# For the box
-BLSURF_Parameters = smesh.CreateHypothesis('BLSURF_Parameters', 'BLSURFEngine')
-BLSURF_Parameters.SetPhysicalMesh( 1 )
-BLSURF_Parameters.SetPhySize( 200 )
-# For the cylinder
-BLSURF_Parameters2 = smesh.CreateHypothesis('BLSURF_Parameters', 'BLSURFEngine')
-BLSURF_Parameters2.SetGeometricMesh( 1 )
-
-# Create the 3D algorithm and hypothesis
-GHS3D = smesh.CreateHypothesis('GHS3D_3D', 'GHS3DEngine')
-GHS3D_Parameters_node = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-#GHS3D_Parameters_node.SetToMeshHoles( 1 )
-GHS3D_Parameters_edge = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-#GHS3D_Parameters_edge.SetToMeshHoles( 1 )
-GHS3D_Parameters_face = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-GHS3D_Parameters_face.SetToMeshHoles( 1 ) # to mesh inside the cylinder
-GHS3D_Parameters_mesh = smesh.CreateHypothesis('GHS3D_Parameters', 'GHS3DEngine')
-GHS3D_Parameters_mesh.SetToMeshHoles( 1 ) # to mesh inside the cylinder
-
-# Create the mesh on the cylinder
-Mesh_cylindre = smesh.Mesh(cylindre)
-smesh.SetName(Mesh_cylindre,"Mesh_cylindre")
-Mesh_cylindre.AddHypothesis( BLSURF )
-Mesh_cylindre.AddHypothesis( BLSURF_Parameters2 )
-# Create some groups
-face_cyl_faces = Mesh_cylindre.GroupOnGeom(face_cyl,'group_face_cyl', smesh.FACE)
-face_cyl_edges = Mesh_cylindre.GroupOnGeom(face_cyl,'group_edge_cyl', smesh.EDGE)
-face_cyl_nodes = Mesh_cylindre.GroupOnGeom(face_cyl,'group_node_cyl', smesh.NODE)
-Mesh_cylindre.Compute()
-
-# Create the mesh on the cylinder
-Mesh_box_tri = smesh.Mesh(box)
-smesh.SetName(Mesh_box_tri,"Mesh_box_tri")
-Mesh_box_tri.AddHypothesis( BLSURF )
-Mesh_box_tri.AddHypothesis( BLSURF_Parameters )
-Mesh_box_tri.Compute()
-
-# Create 4 copies of the 2D mesh to test the 3 types of contraints (NODE, EDGE, FACE)
-# from the whole mesh and from groups of elements.
-# Then the 3D algo and hypothesis are assigned to them.
-
-mesh_mesh = smesh.CopyMesh( Mesh_box_tri, 'Enforced by faces of mesh', 0, 0)
-mesh_mesh.AddHypothesis( GHS3D )
-mesh_mesh.AddHypothesis( GHS3D_Parameters_mesh)
-
-mesh_node = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of nodes', 0, 0)
-mesh_node.AddHypothesis( GHS3D )
-mesh_node.AddHypothesis( GHS3D_Parameters_node)
-
-mesh_edge = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of edges', 0, 0)
-mesh_edge.AddHypothesis( GHS3D )
-mesh_edge.AddHypothesis( GHS3D_Parameters_edge)
-
-mesh_face = smesh.CopyMesh( Mesh_box_tri, 'Enforced by group of faces', 0, 0)
-mesh_face.AddHypothesis( GHS3D )
-mesh_face.AddHypothesis( GHS3D_Parameters_face)
-
-# Add the enforced elements
-GHS3D_Parameters_mesh.SetEnforcedMeshWithGroup(Mesh_cylindre.GetMesh(),smesh.FACE,"faces from cylinder")
-GHS3D_Parameters_node.SetEnforcedMeshWithGroup(face_cyl_nodes,smesh.NODE,"nodes from face_cyl_nodes")
-GHS3D_Parameters_edge.SetEnforcedMeshWithGroup(face_cyl_edges,smesh.EDGE,"edges from face_cyl_edges")
-GHS3D_Parameters_face.SetEnforcedMeshWithGroup(face_cyl_faces,smesh.FACE,"faces from face_cyl_faces")
-
-#Compute the meshes
-mesh_node.Compute()
-mesh_edge.Compute()
-mesh_face.Compute()
-mesh_mesh.Compute()
-
-# End of script
-
-\endcode
+<h2>Example of enforced meshes with GHS3D algorithm:</h2>
+\tui_script{ghs3d_enfmesh.py}
 
 \image html ghs3d_screenshot_enf3.png
 \image html ghs3d_screenshot_enf4.png
index fcea00ff982ebfbfd253162218a1d49b8f7b71a0..144cb6da374988921e9f682c0a9f3b77c473b6ba 100644 (file)
@@ -61,7 +61,7 @@
                opt-hypos="GHS3D_Parameters, ViscousLayers"
                dim="3">
       <python-wrap>
-        <algo>GHS3D_3D=Tetrahedron(algo=smesh.GHS3D)</algo>
+        <algo>GHS3D_3D=Tetrahedron(algo=smeshBuilder.GHS3D)</algo>
         <hypo>GHS3D_Parameters=Parameters()</hypo>
         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
       </python-wrap>
diff --git a/src/GHS3DPlugin/GHS3DPluginBuilder.py b/src/GHS3DPlugin/GHS3DPluginBuilder.py
new file mode 100644 (file)
index 0000000..daefa79
--- /dev/null
@@ -0,0 +1,241 @@
+# Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+#
+# 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 GHS3DPluginBuilder
+# Python API for the GHS3D meshing plug-in module.
+
+from salome.smesh.smesh_algorithm import Mesh_Algorithm
+from salome.smesh.smeshBuilder import AssureGeomPublished
+
+# import GHS3DPlugin module if possible
+noGHS3DPlugin = 0
+try:
+    import GHS3DPlugin
+except ImportError:
+    noGHS3DPlugin = 1
+    pass
+
+# Optimization level of GHS3D
+# V3.1
+None_Optimization, Light_Optimization, Medium_Optimization, Strong_Optimization = 0,1,2,3
+# V4.1 (partialy redefines V3.1). Issue 0020574
+None_Optimization, Light_Optimization, Standard_Optimization, StandardPlus_Optimization, Strong_Optimization = 0,1,2,3,4
+
+#----------------------------
+# Mesh algo type identifiers
+#----------------------------
+
+## Algorithm type: GHS3D tetrahedron 3D algorithm, see GHS3D_Algorithm
+GHS3D = "GHS3D_3D"
+
+## Tetrahedron GHS3D 3D algorithm
+#  
+#  It can be created by calling smesh.Mesh.Tetrahedron( smesh.GHS3D, geom=0 )
+class GHS3D_Algorithm(Mesh_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   = GHS3D
+    ## doc string of the method in smesh.Mesh class
+    #  @internal
+    docHelper  = "Creates tetrahedron 3D algorithm for volumes"
+
+    ## 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 noGHS3DPlugin: print "Warning: GHS3DPlugin module unavailable"
+        self.Create(mesh, geom, self.algoType, "libGHS3DEngine.so")
+        self.params = None
+        pass
+
+    ## Defines hypothesis having several parameters
+    #  @return hypothesis object
+    def Parameters(self):
+        if not self.params:
+            self.params = self.Hypothesis("GHS3D_Parameters", [],
+                                          "libGHS3DEngine.so", UseExisting=0)
+            pass
+        return self.params
+
+    ## To mesh "holes" in a solid or not. Default is to mesh.
+    #  @param toMesh "mesh holes" flag value
+    def SetToMeshHoles(self, toMesh):
+        self.Parameters().SetToMeshHoles(toMesh)
+        pass
+
+    ## Set Optimization level:
+    #  @param level optimization level, one of the following values
+    #  - None_Optimization
+    #  - Light_Optimization
+    #  - Standard_Optimization
+    #  - StandardPlus_Optimization
+    #  - Strong_Optimization.
+    #  .
+    #  Default is Standard_Optimization
+    def SetOptimizationLevel(self, level):
+        self.Parameters().SetOptimizationLevel(level)
+        pass
+
+    ## Set maximal size of memory to be used by the algorithm (in Megabytes).
+    #  @param MB maximal size of memory
+    def SetMaximumMemory(self, MB):
+        self.Parameters().SetMaximumMemory(MB)
+        pass
+
+    ## Set initial size of memory to be used by the algorithm (in Megabytes) in
+    #  automatic memory adjustment mode.
+    #  @param MB initial size of memory
+    def SetInitialMemory(self, MB):
+        self.Parameters().SetInitialMemory(MB)
+        pass
+
+    ## Set path to working directory.
+    #  @param path working directory
+    def SetWorkingDirectory(self, path):
+        self.Parameters().SetWorkingDirectory(path)
+        pass
+
+    ## To keep working files or remove them. Log file remains in case of errors anyway.
+    #  @param toKeep "keep working files" flag value
+    def SetKeepFiles(self, toKeep):
+        self.Parameters().SetKeepFiles(toKeep)
+        pass
+
+    ## Set verbosity level [0-10].
+    #  @param level verbosity level
+    #  - 0 - no standard output,
+    #  - 2 - prints the data, quality statistics of the skin and final meshes and
+    #    indicates when the final mesh is being saved. In addition the software
+    #    gives indication regarding the CPU time.
+    #  - 10 - same as 2 plus the main steps in the computation, quality statistics
+    #    histogram of the skin mesh, quality statistics histogram together with
+    #    the characteristics of the final mesh.
+    def SetVerboseLevel(self, level):
+        self.Parameters().SetVerboseLevel(level)
+        pass
+
+    ## To create new nodes.
+    #  @param toCreate "create new nodes" flag value
+    def SetToCreateNewNodes(self, toCreate):
+        self.Parameters().SetToCreateNewNodes(toCreate)
+        pass
+
+    ## To use boundary recovery version which tries to create mesh on a very poor
+    #  quality surface mesh.
+    #  @param toUse "use boundary recovery version" flag value
+    def SetToUseBoundaryRecoveryVersion(self, toUse):
+        self.Parameters().SetToUseBoundaryRecoveryVersion(toUse)
+        pass
+
+    ## Applies finite-element correction by replacing overconstrained elements where
+    #  it is possible. The process is cutting first the overconstrained edges and
+    #  second the overconstrained facets. This insure that no edges have two boundary
+    #  vertices and that no facets have three boundary vertices.
+    #  @param toUseFem "apply finite-element correction" flag value
+    def SetFEMCorrection(self, toUseFem):
+        self.Parameters().SetFEMCorrection(toUseFem)
+        pass
+
+    ## To remove initial central point.
+    #  @param toRemove "remove initial central point" flag value
+    def SetToRemoveCentralPoint(self, toRemove):
+        self.Parameters().SetToRemoveCentralPoint(toRemove)
+        pass
+
+    ## To set an enforced vertex.
+    #  @param x            : x coordinate
+    #  @param y            : y coordinate
+    #  @param z            : z coordinate
+    #  @param size         : size of 1D element around enforced vertex
+    #  @param vertexName   : name of the enforced vertex
+    #  @param groupName    : name of the group
+    def SetEnforcedVertex(self, x, y, z, size, vertexName = "", groupName = ""):
+        if vertexName == "":
+            if groupName == "":
+                return self.Parameters().SetEnforcedVertex(x, y, z, size)
+            else:
+                return self.Parameters().SetEnforcedVertexWithGroup(x, y, z, size, groupName)
+            pass
+        else:
+            if groupName == "":
+                return self.Parameters().SetEnforcedVertexNamed(x, y, z, size, vertexName)
+            else:
+                return self.Parameters().SetEnforcedVertexNamedWithGroup(x, y, z, size, vertexName, groupName)
+            pass
+        pass
+
+    ## To set an enforced vertex given a GEOM vertex, group or compound.
+    #  @param theVertex    : GEOM vertex (or group, compound) to be projected on theFace.
+    #  @param size         : size of 1D element around enforced vertex
+    #  @param groupName    : name of the group
+    def SetEnforcedVertexGeom(self, theVertex, size, groupName = ""):
+        AssureGeomPublished( self.mesh, theVertex )
+        if groupName == "":
+            return self.Parameters().SetEnforcedVertexGeom(theVertex, size)
+        else:
+            return self.Parameters().SetEnforcedVertexGeomWithGroup(theVertex, size, groupName)
+        pass
+
+    ## To remove an enforced vertex.
+    #  @param x            : x coordinate
+    #  @param y            : y coordinate
+    #  @param z            : z coordinate
+    def RemoveEnforcedVertex(self, x, y, z):
+        return self.Parameters().RemoveEnforcedVertex(x, y, z)
+
+    ## To remove an enforced vertex given a GEOM vertex, group or compound.
+    #  @param theVertex    : GEOM vertex (or group, compound) to be projected on theFace.
+    def RemoveEnforcedVertexGeom(self, theVertex):
+        AssureGeomPublished( self.mesh, theVertex )
+        return self.Parameters().RemoveEnforcedVertexGeom(theVertex)
+
+    ## To set an enforced mesh with given size and add the enforced elements in the group "groupName".
+    #  @param theSource    : source mesh which provides constraint elements/nodes
+    #  @param elementType  : SMESH.ElementType (NODE, EDGE or FACE)
+    #  @param size         : size of elements around enforced elements. Unused if -1.
+    #  @param groupName    : group in which enforced elements will be added. Unused if "".
+    def SetEnforcedMesh(self, theSource, elementType, size = -1, groupName = ""):
+        if size < 0:
+            if groupName == "":
+                return self.Parameters().SetEnforcedMesh(theSource, elementType)
+            else:
+                return self.Parameters().SetEnforcedMeshWithGroup(theSource, elementType, groupName)
+            pass
+        else:
+            if groupName == "":
+                return self.Parameters().SetEnforcedMeshSize(theSource, elementType, size)
+            else:
+                return self.Parameters().SetEnforcedMeshSizeWithGroup(theSource, elementType, size, groupName)
+            pass
+        pass
+
+    ## Sets command line option as text.
+    #  @param option command line option
+    def SetTextOption(self, option):
+        self.Parameters().SetTextOption(option)
+        pass
+    
+    pass # end of GHS3D_Algorithm class
diff --git a/src/GHS3DPlugin/GHS3DPluginDC.py b/src/GHS3DPlugin/GHS3DPluginDC.py
deleted file mode 100644 (file)
index 3c1028b..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-# Copyright (C) 2007-2013  CEA/DEN, EDF R&D
-#
-# 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 GHS3DPluginDC
-# Python API for the GHS3D meshing plug-in module.
-
-from smesh_algorithm import Mesh_Algorithm
-from smesh import AssureGeomPublished
-
-# import GHS3DPlugin module if possible
-noGHS3DPlugin = 0
-try:
-    import GHS3DPlugin
-except ImportError:
-    noGHS3DPlugin = 1
-    pass
-
-# Optimization level of GHS3D
-# V3.1
-None_Optimization, Light_Optimization, Medium_Optimization, Strong_Optimization = 0,1,2,3
-# V4.1 (partialy redefines V3.1). Issue 0020574
-None_Optimization, Light_Optimization, Standard_Optimization, StandardPlus_Optimization, Strong_Optimization = 0,1,2,3,4
-
-#----------------------------
-# Mesh algo type identifiers
-#----------------------------
-
-## Algorithm type: GHS3D tetrahedron 3D algorithm, see GHS3D_Algorithm
-GHS3D = "GHS3D_3D"
-
-## Tetrahedron GHS3D 3D algorithm
-#  
-#  It can be created by calling smesh.Mesh.Tetrahedron( smesh.GHS3D, geom=0 )
-class GHS3D_Algorithm(Mesh_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   = GHS3D
-    ## doc string of the method in smesh.Mesh class
-    #  @internal
-    docHelper  = "Creates tetrahedron 3D algorithm for volumes"
-
-    ## 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 noGHS3DPlugin: print "Warning: GHS3DPlugin module unavailable"
-        self.Create(mesh, geom, self.algoType, "libGHS3DEngine.so")
-        self.params = None
-        pass
-
-    ## Defines hypothesis having several parameters
-    #  @return hypothesis object
-    def Parameters(self):
-        if not self.params:
-            self.params = self.Hypothesis("GHS3D_Parameters", [],
-                                          "libGHS3DEngine.so", UseExisting=0)
-            pass
-        return self.params
-
-    ## To mesh "holes" in a solid or not. Default is to mesh.
-    #  @param toMesh "mesh holes" flag value
-    def SetToMeshHoles(self, toMesh):
-        self.Parameters().SetToMeshHoles(toMesh)
-        pass
-
-    ## Set Optimization level:
-    #  @param level optimization level, one of the following values
-    #  - None_Optimization
-    #  - Light_Optimization
-    #  - Standard_Optimization
-    #  - StandardPlus_Optimization
-    #  - Strong_Optimization.
-    #  .
-    #  Default is Standard_Optimization
-    def SetOptimizationLevel(self, level):
-        self.Parameters().SetOptimizationLevel(level)
-        pass
-
-    ## Set maximal size of memory to be used by the algorithm (in Megabytes).
-    #  @param MB maximal size of memory
-    def SetMaximumMemory(self, MB):
-        self.Parameters().SetMaximumMemory(MB)
-        pass
-
-    ## Set initial size of memory to be used by the algorithm (in Megabytes) in
-    #  automatic memory adjustment mode.
-    #  @param MB initial size of memory
-    def SetInitialMemory(self, MB):
-        self.Parameters().SetInitialMemory(MB)
-        pass
-
-    ## Set path to working directory.
-    #  @param path working directory
-    def SetWorkingDirectory(self, path):
-        self.Parameters().SetWorkingDirectory(path)
-        pass
-
-    ## To keep working files or remove them. Log file remains in case of errors anyway.
-    #  @param toKeep "keep working files" flag value
-    def SetKeepFiles(self, toKeep):
-        self.Parameters().SetKeepFiles(toKeep)
-        pass
-
-    ## Set verbosity level [0-10].
-    #  @param level verbosity level
-    #  - 0 - no standard output,
-    #  - 2 - prints the data, quality statistics of the skin and final meshes and
-    #    indicates when the final mesh is being saved. In addition the software
-    #    gives indication regarding the CPU time.
-    #  - 10 - same as 2 plus the main steps in the computation, quality statistics
-    #    histogram of the skin mesh, quality statistics histogram together with
-    #    the characteristics of the final mesh.
-    def SetVerboseLevel(self, level):
-        self.Parameters().SetVerboseLevel(level)
-        pass
-
-    ## To create new nodes.
-    #  @param toCreate "create new nodes" flag value
-    def SetToCreateNewNodes(self, toCreate):
-        self.Parameters().SetToCreateNewNodes(toCreate)
-        pass
-
-    ## To use boundary recovery version which tries to create mesh on a very poor
-    #  quality surface mesh.
-    #  @param toUse "use boundary recovery version" flag value
-    def SetToUseBoundaryRecoveryVersion(self, toUse):
-        self.Parameters().SetToUseBoundaryRecoveryVersion(toUse)
-        pass
-
-    ## Applies finite-element correction by replacing overconstrained elements where
-    #  it is possible. The process is cutting first the overconstrained edges and
-    #  second the overconstrained facets. This insure that no edges have two boundary
-    #  vertices and that no facets have three boundary vertices.
-    #  @param toUseFem "apply finite-element correction" flag value
-    def SetFEMCorrection(self, toUseFem):
-        self.Parameters().SetFEMCorrection(toUseFem)
-        pass
-
-    ## To remove initial central point.
-    #  @param toRemove "remove initial central point" flag value
-    def SetToRemoveCentralPoint(self, toRemove):
-        self.Parameters().SetToRemoveCentralPoint(toRemove)
-        pass
-
-    ## To set an enforced vertex.
-    #  @param x            : x coordinate
-    #  @param y            : y coordinate
-    #  @param z            : z coordinate
-    #  @param size         : size of 1D element around enforced vertex
-    #  @param vertexName   : name of the enforced vertex
-    #  @param groupName    : name of the group
-    def SetEnforcedVertex(self, x, y, z, size, vertexName = "", groupName = ""):
-        if vertexName == "":
-            if groupName == "":
-                return self.Parameters().SetEnforcedVertex(x, y, z, size)
-            else:
-                return self.Parameters().SetEnforcedVertexWithGroup(x, y, z, size, groupName)
-            pass
-        else:
-            if groupName == "":
-                return self.Parameters().SetEnforcedVertexNamed(x, y, z, size, vertexName)
-            else:
-                return self.Parameters().SetEnforcedVertexNamedWithGroup(x, y, z, size, vertexName, groupName)
-            pass
-        pass
-
-    ## To set an enforced vertex given a GEOM vertex, group or compound.
-    #  @param theVertex    : GEOM vertex (or group, compound) to be projected on theFace.
-    #  @param size         : size of 1D element around enforced vertex
-    #  @param groupName    : name of the group
-    def SetEnforcedVertexGeom(self, theVertex, size, groupName = ""):
-        AssureGeomPublished( self.mesh, theVertex )
-        if groupName == "":
-            return self.Parameters().SetEnforcedVertexGeom(theVertex, size)
-        else:
-            return self.Parameters().SetEnforcedVertexGeomWithGroup(theVertex, size, groupName)
-        pass
-
-    ## To remove an enforced vertex.
-    #  @param x            : x coordinate
-    #  @param y            : y coordinate
-    #  @param z            : z coordinate
-    def RemoveEnforcedVertex(self, x, y, z):
-        return self.Parameters().RemoveEnforcedVertex(x, y, z)
-
-    ## To remove an enforced vertex given a GEOM vertex, group or compound.
-    #  @param theVertex    : GEOM vertex (or group, compound) to be projected on theFace.
-    def RemoveEnforcedVertexGeom(self, theVertex):
-        AssureGeomPublished( self.mesh, theVertex )
-        return self.Parameters().RemoveEnforcedVertexGeom(theVertex)
-
-    ## To set an enforced mesh with given size and add the enforced elements in the group "groupName".
-    #  @param theSource    : source mesh which provides constraint elements/nodes
-    #  @param elementType  : SMESH.ElementType (NODE, EDGE or FACE)
-    #  @param size         : size of elements around enforced elements. Unused if -1.
-    #  @param groupName    : group in which enforced elements will be added. Unused if "".
-    def SetEnforcedMesh(self, theSource, elementType, size = -1, groupName = ""):
-        if size < 0:
-            if groupName == "":
-                return self.Parameters().SetEnforcedMesh(theSource, elementType)
-            else:
-                return self.Parameters().SetEnforcedMeshWithGroup(theSource, elementType, groupName)
-            pass
-        else:
-            if groupName == "":
-                return self.Parameters().SetEnforcedMeshSize(theSource, elementType, size)
-            else:
-                return self.Parameters().SetEnforcedMeshSizeWithGroup(theSource, elementType, size, groupName)
-            pass
-        pass
-
-    ## Sets command line option as text.
-    #  @param option command line option
-    def SetTextOption(self, option):
-        self.Parameters().SetTextOption(option)
-        pass
-    
-    pass # end of GHS3D_Algorithm class
index f6a90059cbaf4256d4917ffeeb9123fc3349f311..4af27ab8d54210bdda87f10346e1e657b8b2b407 100644 (file)
@@ -63,4 +63,8 @@ libGHS3DEngine_la_LDFLAGS  = \
   $(KERNEL_LDFLAGS) -lSalomeGenericObj -lSALOMELocalTrace -lSALOMEBasics -lSalomeNS -lOpUtil
 
 # Scripts to be installed.
-dist_salomescript_DATA= GHS3DPluginDC.py
+#dist_salomescript_DATA= GHS3DPluginDC.py
+mypkgpythondir = $(salomepythondir)/salome/GHS3DPlugin
+mypkgpython_PYTHON = \
+       __init__.py \
+       GHS3DPluginBuilder.py
diff --git a/src/GHS3DPlugin/__init__.py b/src/GHS3DPlugin/__init__.py
new file mode 100644 (file)
index 0000000..72bdea5
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+#
+# 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 GHS3DPluginBuilder
+# Python API for the GHS3D meshing plug-in module.
+