]> SALOME platform Git repositories - modules/homard.git/commitdiff
Salome HOME
Merge from V6_main_20120808 08Aug12
authorvsr <vsr@opencascade.com>
Thu, 9 Aug 2012 13:20:32 +0000 (13:20 +0000)
committervsr <vsr@opencascade.com>
Thu, 9 Aug 2012 13:20:32 +0000 (13:20 +0000)
283 files changed:
HOMARD_version.h.in [new file with mode: 0644]
Makefile.am
adm_local/Makefile.am [new file with mode: 0644]
adm_local/unix/Makefile.am
adm_local/unix/config_files/Makefile.am [new file with mode: 0644]
adm_local/unix/config_files/check_GUI.m4
adm_local/unix/config_files/check_Med2.m4
adm_local/unix/config_files/check_sphinx.m4
adm_local/unix/make_common_starter.am
bin/Makefile.am [new file with mode: 0644]
bin/VERSION [deleted file]
bin/VERSION.in [new file with mode: 0644]
bin/runAppli.in
bin/runSalome.py
build_configure
clean_configure
configure.ac
doc/Makefile.am
doc/conf.py [deleted file]
doc/conf.py.in [new file with mode: 0644]
doc/files/tutorial_1.00.med.gz
doc/files/tutorial_1.py
doc/files/tutorial_2.00.med.gz
doc/files/tutorial_2.py
doc/files/tutorial_3.00.med.gz
doc/files/tutorial_3.01.med.gz
doc/files/tutorial_3.py
doc/files/tutorial_4.00.med.gz [new file with mode: 0644]
doc/files/tutorial_4.fr.med.gz [new file with mode: 0644]
doc/files/tutorial_4.py [new file with mode: 0644]
doc/files/tutorial_5.00.med.gz [new file with mode: 0644]
doc/files/tutorial_5.fr.med.gz [new file with mode: 0644]
doc/files/tutorial_5.py [new file with mode: 0644]
doc/glossaire.rst
doc/gui_create_boundary.rst [new file with mode: 0644]
doc/gui_create_case.rst
doc/gui_create_hypothese.rst
doc/gui_create_iteration.rst
doc/gui_create_zone.rst
doc/gui_homard.rst [new file with mode: 0644]
doc/gui_usage.rst
doc/images/create_boundary_1.png [new file with mode: 0644]
doc/images/create_boundary_an_1.png [new file with mode: 0644]
doc/images/create_boundary_an_2.png [new file with mode: 0644]
doc/images/create_boundary_an_3.png [new file with mode: 0644]
doc/images/create_boundary_an_4.png [new file with mode: 0644]
doc/images/create_boundary_an_cy.png [new file with mode: 0644]
doc/images/create_boundary_an_sp.png [new file with mode: 0644]
doc/images/create_boundary_di_1.png [new file with mode: 0644]
doc/images/create_boundary_di_2.png [new file with mode: 0644]
doc/images/create_boundary_di_3.png [new file with mode: 0644]
doc/images/create_case_1.png
doc/images/create_case_2.png
doc/images/create_case_3.png
doc/images/create_case_4.png
doc/images/create_case_5.png
doc/images/create_case_6.png [new file with mode: 0644]
doc/images/create_case_7.png [new file with mode: 0644]
doc/images/create_hypothese_1.png
doc/images/create_hypothese_2.png
doc/images/create_hypothese_3.png [deleted file]
doc/images/create_hypothese_4.png [deleted file]
doc/images/create_hypothese_5.png [deleted file]
doc/images/create_hypothese_6.png [deleted file]
doc/images/create_hypothese_7.png [deleted file]
doc/images/create_hypothese_8.png [deleted file]
doc/images/create_hypothese_av_1.png [new file with mode: 0644]
doc/images/create_hypothese_ch_1.png [new file with mode: 0644]
doc/images/create_hypothese_ch_2.png [new file with mode: 0644]
doc/images/create_hypothese_ch_3.png [new file with mode: 0644]
doc/images/create_hypothese_ch_4.png [new file with mode: 0644]
doc/images/create_hypothese_ch_5.png [new file with mode: 0644]
doc/images/create_hypothese_gr_1.png [new file with mode: 0644]
doc/images/create_hypothese_gr_2.png [new file with mode: 0644]
doc/images/create_hypothese_zo_1.png [new file with mode: 0644]
doc/images/create_hypothese_zo_2.png [new file with mode: 0644]
doc/images/create_iteration_1.png
doc/images/create_iteration_2.png
doc/images/create_iteration_3.png
doc/images/create_iteration_4.png
doc/images/create_iteration_5.png
doc/images/create_iteration_6.png
doc/images/create_iteration_7.png [new file with mode: 0644]
doc/images/create_zone_1.png
doc/images/create_zone_2.png
doc/images/create_zone_21.png [new file with mode: 0644]
doc/images/create_zone_22.png [new file with mode: 0644]
doc/images/create_zone_23.png [new file with mode: 0644]
doc/images/create_zone_3.png [new file with mode: 0644]
doc/images/create_zone_4.png [new file with mode: 0644]
doc/images/homard_1.png [new file with mode: 0644]
doc/images/intro_3.png [new file with mode: 0644]
doc/images/intro_31.png [new file with mode: 0644]
doc/images/intro_32.png [new file with mode: 0644]
doc/images/intro_33.png [new file with mode: 0644]
doc/images/intro_34.png [new file with mode: 0644]
doc/images/intro_35.png [new file with mode: 0644]
doc/images/intro_36.png [new file with mode: 0644]
doc/images/intro_37.png [new file with mode: 0644]
doc/images/intro_38.png [new file with mode: 0644]
doc/images/intro_39.png [new file with mode: 0644]
doc/images/intro_4.png [new file with mode: 0644]
doc/images/intro_40.png [new file with mode: 0644]
doc/images/intro_5.png [new file with mode: 0644]
doc/images/intro_6.png [new file with mode: 0644]
doc/images/intro_7.png [new file with mode: 0644]
doc/images/intro_8.gif [new file with mode: 0644]
doc/images/lancement_1.png
doc/images/lancement_2.png [new file with mode: 0644]
doc/images/lancement_3.png [new file with mode: 0644]
doc/index.rst
doc/intro.rst
doc/tui_create_boundary.rst [new file with mode: 0644]
doc/tui_create_case.rst
doc/tui_create_hypothese.rst
doc/tui_create_iteration.rst
doc/tui_create_zone.rst
doc/tui_homard.rst
doc/tui_usage.rst
doc/tutorial_3.py [deleted file]
doc/tutorials.rst
idl/Gen.xml [new file with mode: 0644]
idl/HOMARD_Boundary.idl
idl/HOMARD_Cas.idl
idl/HOMARD_Gen.idl
idl/HOMARD_Hypothesis.idl
idl/HOMARD_Iteration.idl
idl/HOMARD_Zone.idl
idl/Makefile.am
resources/HOMARDCatalog.xml [deleted file]
resources/HOMARDCatalog.xml.in [new file with mode: 0644]
resources/HOMARD_en.xml
resources/HOMARD_fr.xml
resources/Makefile.am
resources/SalomeApp.xml [deleted file]
resources/SalomeApp.xml.in [new file with mode: 0644]
resources/boxdxy.png [new file with mode: 0644]
resources/boxdxy_2.png [new file with mode: 0644]
resources/cylinderpointvector.png
resources/disk.png [new file with mode: 0644]
resources/disk_2.png [new file with mode: 0644]
resources/diskwithhole.png [new file with mode: 0644]
resources/diskwithhole_2.png [new file with mode: 0644]
resources/pipe.png [new file with mode: 0644]
resources/pipe_2.png [new file with mode: 0644]
resources/pipeold.png [new file with mode: 0644]
resources/plane.png [new file with mode: 0644]
src/HOMARD/HOMARD_Boundary.cxx
src/HOMARD/HOMARD_Boundary.hxx
src/HOMARD/HOMARD_Cas.cxx
src/HOMARD/HOMARD_Cas.hxx
src/HOMARD/HOMARD_DriverTools.cxx
src/HOMARD/HOMARD_DriverTools.hxx
src/HOMARD/HOMARD_Gen.cxx
src/HOMARD/HOMARD_Gen.hxx
src/HOMARD/HOMARD_Hypothesis.cxx
src/HOMARD/HOMARD_Hypothesis.hxx
src/HOMARD/HOMARD_Iteration.cxx
src/HOMARD/HOMARD_Iteration.hxx
src/HOMARD/HOMARD_Zone.cxx
src/HOMARD/HOMARD_Zone.hxx
src/HOMARD/HomardDriver.cxx
src/HOMARD/HomardDriver.hxx
src/HOMARD/Makefile.am
src/HOMARDGUI/CreateBoundaryAn.h [new file with mode: 0644]
src/HOMARDGUI/CreateBoundaryAn.ui [new file with mode: 0644]
src/HOMARDGUI/CreateBoundaryDi.h
src/HOMARDGUI/CreateBoundaryDi.ui
src/HOMARDGUI/CreateCase.h
src/HOMARDGUI/CreateCase.ui
src/HOMARDGUI/CreateHypothesis.h
src/HOMARDGUI/CreateHypothesis.ui
src/HOMARDGUI/CreateIteration.h
src/HOMARDGUI/CreateIteration.ui
src/HOMARDGUI/CreateListGroup.h
src/HOMARDGUI/CreateListGroup.ui
src/HOMARDGUI/CreateZone.h
src/HOMARDGUI/CreateZone.ui
src/HOMARDGUI/EditFile.h
src/HOMARDGUI/EditFile.ui
src/HOMARDGUI/HOMARDGUI.cxx
src/HOMARDGUI/HOMARDGUI.h
src/HOMARDGUI/HOMARDGUI_Utils.cxx
src/HOMARDGUI/HOMARDGUI_Utils.h
src/HOMARDGUI/HOMARD_icons.po [deleted file]
src/HOMARDGUI/HOMARD_msg_en.po [deleted file]
src/HOMARDGUI/HOMARD_msg_en.ts
src/HOMARDGUI/HOMARD_msg_fr.po [deleted file]
src/HOMARDGUI/HOMARD_msg_fr.ts
src/HOMARDGUI/HomardConfigFile.cxx [deleted file]
src/HOMARDGUI/HomardConfigFile.hxx [deleted file]
src/HOMARDGUI/HomardDlg.h [deleted file]
src/HOMARDGUI/HomardQtCommun.cxx
src/HOMARDGUI/HomardQtCommun.h
src/HOMARDGUI/Makefile.am
src/HOMARDGUI/MonCreateBoundaryAn.cxx [new file with mode: 0644]
src/HOMARDGUI/MonCreateBoundaryAn.h [new file with mode: 0644]
src/HOMARDGUI/MonCreateBoundaryDi.cxx
src/HOMARDGUI/MonCreateBoundaryDi.h
src/HOMARDGUI/MonCreateCase.cxx
src/HOMARDGUI/MonCreateCase.h
src/HOMARDGUI/MonCreateHypothesis.cxx
src/HOMARDGUI/MonCreateHypothesis.h
src/HOMARDGUI/MonCreateIteration.cxx
src/HOMARDGUI/MonCreateIteration.h
src/HOMARDGUI/MonCreateListGroup.cxx
src/HOMARDGUI/MonCreateListGroup.h
src/HOMARDGUI/MonCreateZone.cxx
src/HOMARDGUI/MonCreateZone.h
src/HOMARDGUI/MonEditBoundaryAn.cxx [new file with mode: 0644]
src/HOMARDGUI/MonEditBoundaryAn.h [new file with mode: 0644]
src/HOMARDGUI/MonEditBoundaryDi.cxx
src/HOMARDGUI/MonEditBoundaryDi.h
src/HOMARDGUI/MonEditCase.cxx
src/HOMARDGUI/MonEditCase.h
src/HOMARDGUI/MonEditFile.cxx
src/HOMARDGUI/MonEditFile.h
src/HOMARDGUI/MonEditHypothesis.cxx
src/HOMARDGUI/MonEditHypothesis.h
src/HOMARDGUI/MonEditIteration.cxx
src/HOMARDGUI/MonEditIteration.h
src/HOMARDGUI/MonEditListGroup.cxx
src/HOMARDGUI/MonEditListGroup.h
src/HOMARDGUI/MonEditZone.cxx
src/HOMARDGUI/MonEditZone.h
src/HOMARDGUI/MonHomardDlg.cxx [deleted file]
src/HOMARDGUI/MonHomardDlg.h [deleted file]
src/HOMARDGUI/ui/HomardCas.ui [deleted file]
src/HOMARDGUI/ui/HomardDlg.ui [deleted file]
src/HOMARDGUI/ui/HomardEditLog.ui [deleted file]
src/HOMARDGUI/ui/HomardIteration.ui [deleted file]
src/HOMARDGUI/ui/HomardPourLesNuls.ui [deleted file]
src/HOMARDGUI/ui/HomardRaffiUniforme.ui [deleted file]
src/HOMARD_I/HOMARD_Boundary_i.cxx
src/HOMARD_I/HOMARD_Boundary_i.hxx
src/HOMARD_I/HOMARD_Cas_i.cxx
src/HOMARD_I/HOMARD_Cas_i.hxx
src/HOMARD_I/HOMARD_Gen_i.cxx
src/HOMARD_I/HOMARD_Gen_i.hxx
src/HOMARD_I/HOMARD_Hypothesis_i.cxx
src/HOMARD_I/HOMARD_Hypothesis_i.hxx
src/HOMARD_I/HOMARD_Iteration_i.cxx
src/HOMARD_I/HOMARD_Iteration_i.hxx
src/HOMARD_I/HOMARD_Zone_i.cxx
src/HOMARD_I/HOMARD_Zone_i.hxx
src/HOMARD_I/HomardMedCommun.cxx
src/HOMARD_I/HomardMedCommun.h
src/HOMARD_I/Makefile.am
src/HOMARD_I/driver_gen_i.cxx [deleted file]
src/HOMARD_I/driver_gen_i.h [deleted file]
src/HOMARD_SCRIPTS/Makefile.am
src/HOMARD_SCRIPTS/testHomard.py
src/HOMARD_SCRIPTS/test_homard.py
src/HOMARD_SWIG/HOMARD_shared_modules.py
src/HOMARD_SWIG/Makefile.am
src/HOMARD_SWIG/libHOMARD_Swig.i
src/Makefile.am
tests/Makefile.am
tests/test_1.00.med
tests/test_1.01.med
tests/test_1.02.med
tests/test_1.en.odt [new file with mode: 0644]
tests/test_1.en.pdf [new file with mode: 0644]
tests/test_1.odt
tests/test_1.pdf
tests/test_1.py
tests/test_2.00.med
tests/test_2.en.odt [new file with mode: 0644]
tests/test_2.en.pdf [new file with mode: 0644]
tests/test_2.fr.med
tests/test_2.odt
tests/test_2.pdf
tests/test_2.png
tests/test_2.py
tests/test_3.00.med [new file with mode: 0644]
tests/test_3.apad.02.bilan [new file with mode: 0644]
tests/test_3.en.odt [new file with mode: 0644]
tests/test_3.en.pdf [new file with mode: 0644]
tests/test_3.fr.med [new file with mode: 0644]
tests/test_3.odt [new file with mode: 0644]
tests/test_3.pdf [new file with mode: 0644]
tests/test_3.png [new file with mode: 0644]
tests/test_3.py [new file with mode: 0644]

diff --git a/HOMARD_version.h.in b/HOMARD_version.h.in
new file mode 100644 (file)
index 0000000..d1873f6
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2007-2012  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
+//
+
+//  File   : HOMARD_version.h
+//  Author : Vadim SANDLER
+//  Module : SALOME
+//
+#if !defined(__HOMARD_VERSION_H__)
+#define __HOMARD_VERSION_H__
+
+/*
+  HOMARD_VERSION is (major << 16) + (minor << 8) + patch.
+*/
+
+#define HOMARD_VERSION_STR "@VERSION@"
+#define HOMARD_VERSION     @XVERSION@
+#define HOMARD_DEVELOPMENT @VERSION_DEV@
+
+#endif // __HOMARD_VERSION_H__
index 49498a471769c7b6c4fb2b90fb81dabcac9f2e6b..39df6985abaf1c5a6853b6c616d1084e3108df5b 100644 (file)
@@ -1,24 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # -* Makefile *- 
 # Author : Patrick GOLDBRONN (CEA)
 # Date : 28/06/2001
 #
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
-ACLOCAL_AMFLAGS = -I $(top_srcdir)/adm_local/unix/config_files                 \
+ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \
                   -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
                   -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \
-                  -I ${HOMARD_SRC}/adm_local/unix/config_files
-
-SUBDIRS = idl resources src doc tests
+                 -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+                 -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files
+                               
+SUBDIRS = idl adm_local resources src bin doc tests
 
-DIST_SUBDIRS = idl resources src doc tests
+DIST_SUBDIRS = idl adm_local resources src bin doc tests
 
-DISTCLEANFILES = a.out aclocal.m4 configure
+DISTCLEANFILES = a.out aclocal.m4 configure hack_libtool
 
+salomeinclude_DATA = HOMARD_version.h
 
 EXTRA_DIST +=          \
        build_configure \
diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am
new file mode 100644 (file)
index 0000000..88aeda6
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2011-2012  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
+#
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+SUBDIRS = unix
index 5f6d5f7536c72fc43090c511c2a26518cb92af5d..328edada5302c02a47f3733ca2c8d6220e07d95b 100644 (file)
@@ -1,23 +1,20 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am
new file mode 100644 (file)
index 0000000..edbfd5b
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright (C) 2011-2012  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
+#
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+dist_admlocalm4_DATA = \
+check_GUI.m4 \
+check_Med2.m4 \
+check_sphinx.m4
index 73a026ee205a3b35115fa2b89e97aa6314046f1b..8907e15ebaa44c8642ee0d1d935185b5af24bf2e 100755 (executable)
@@ -1,24 +1,20 @@
-#  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#------------------------------------------------------------
-#  Check availability of Salome binary distribution
+# 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
 #
 #  Author : Marc Tajchman (CEA, 2002)
 #------------------------------------------------------------
index 82b1078800b408d69655879ab9e6db7de13fa185..bd8f7deb4bb3d0db4f73758bcbc1700b250c4e88 100644 (file)
@@ -1,23 +1,20 @@
-dnl  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-dnl  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-dnl 
-dnl  This library is free software; you can redistribute it and/or 
-dnl  modify it under the terms of the GNU Lesser General Public 
-dnl  License as published by the Free Software Foundation; either 
-dnl  version 2.1 of the License. 
-dnl 
-dnl  This library is distributed in the hope that it will be useful, 
-dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-dnl  Lesser General Public License for more details. 
-dnl 
-dnl  You should have received a copy of the GNU Lesser General Public 
-dnl  License along with this library; if not, write to the Free Software 
-dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-dnl 
-dnl  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+dnl Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License.
 dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+dnl
+dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 dnl
 
 AC_DEFUN([CHECK_MED2],[
index eec149530e86e7ec9cbee4ea172d2c4b88080f58..91bb85735249c0e4848e8c947fcd14e14d96dcd3 100644 (file)
@@ -1,20 +1,20 @@
-dnl  Copyright (C) 2006-2008  CEA/DEN, EDF R&D
+dnl Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 dnl
-dnl  This library is free software; you can redistribute it and/or
-dnl  modify it under the terms of the GNU Lesser General Public
-dnl  License as published by the Free Software Foundation; either
-dnl  version 2.1 of the License.
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License.
 dnl
-dnl  This library is distributed in the hope that it will be useful,
-dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-dnl  Lesser General Public License for more details.
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl Lesser General Public License for more details.
 dnl
-dnl  You should have received a copy of the GNU Lesser General Public
-dnl  License along with this library; if not, write to the Free Software
-dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 dnl
-dnl  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 dnl
 AC_DEFUN([CHECK_SPHINX],[
 
index 36ad8c3a7c7e37c3da0591452c8cc09f24250858..e76403b63981098ba5403455b50330214fc89263 100644 (file)
@@ -1,24 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ============================================================
 # This file defines the common definitions used in several
 # Makefile. This file must be included, if needed, by the file
diff --git a/bin/Makefile.am b/bin/Makefile.am
new file mode 100644 (file)
index 0000000..4a6b36b
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright (C) 2011-2012  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
+#
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+nodist_salomescript_DATA = \
+       VERSION
diff --git a/bin/VERSION b/bin/VERSION
deleted file mode 100755 (executable)
index db96e4c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-THIS IS SALOME PRO - HOMARD VERSION: 0
diff --git a/bin/VERSION.in b/bin/VERSION.in
new file mode 100644 (file)
index 0000000..9cdb476
--- /dev/null
@@ -0,0 +1,3 @@
+[SALOME HOMARD] : @VERSION@
+[DEVELOPMENT]   : @VERSION_DEV@
+
index 9a47b009c88a0f7292fa2705e54d3cfe173f515b..16b7fb540483228e80fb73af2b513b0585c00489 100755 (executable)
@@ -1,4 +1,22 @@
 #!/bin/sh
+# Copyright (C) 2011-2012  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
+#
 
 export KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@
 export PYHELLO_ROOT_DIR=@prefix@
index c7eb2e758f7af0b40ff6559bb2de11c50a9ce919..f481b367594d1f5c3091962f741bff342cf23ef9 100755 (executable)
@@ -1,4 +1,22 @@
 #!/usr/bin/env python
+# Copyright (C) 2011-2012  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
+#
 
 usage="""USAGE: runSalome.py [options]
 
index 2bc6c3dd11248dd73a84e072ae32e78f57e89d23..9a3b6c24bd779254dd4b63512abbeacb8fa9b3bc 100755 (executable)
@@ -1,25 +1,23 @@
 #!/bin/bash
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # Tool for updating list of .in file for the SALOME project 
 # and regenerating configure script
 # Author : 
@@ -69,14 +67,10 @@ fi
 cd ${CONF_DIR}
 ABS_CONF_DIR=`pwd`
 
-mkdir -p salome_adm/unix/config_files
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix
-
-
 
 # ____________________________________________________________________
 # aclocal creates the aclocal.m4 file from the standard macro and the
-# custom macro embedded in the directory salome_adm/unix/config_files
+# custom macro embedded in the directory adm_local/unix/config_files
 # and KERNEL config_files directory.
 # output:
 #   aclocal.m4
@@ -95,9 +89,9 @@ aclocal -I adm_local/unix/config_files \
 # version. The files are created in the directory specified with the
 # AC_CONFIG_AUX_DIR(<mydir>) tag (see configure.ac).
 # output:
-#   salome_adm/unix/config_files/config.guess
-#   salome_adm/unix/config_files/config.sub
-#   salome_adm/unix/config_files/ltmain.sh
+#   adm_local/unix/config_files/config.guess
+#   adm_local/unix/config_files/config.sub
+#   adm_local/unix/config_files/ltmain.sh
 #echo "====================================================== libtoolize"
 
 libtoolize --force --copy --automake || exit 1
@@ -118,11 +112,11 @@ autoconf
 # AC_CONFIG_AUX_DIR(<mydir>) tag (see configure.ac). This step also
 # creates the Makefile.in files from the Makefile.am files.
 # output:
-#   salome_adm/unix/config_files/compile
-#   salome_adm/unix/config_files/depcomp
-#   salome_adm/unix/config_files/install-sh
-#   salome_adm/unix/config_files/missing
-#   salome_adm/unix/config_files/py-compile
+#   adm_local/unix/config_files/compile
+#   adm_local/unix/config_files/depcomp
+#   adm_local/unix/config_files/install-sh
+#   adm_local/unix/config_files/missing
+#   adm_local/unix/config_files/py-compile
 #   Makefile.in (from Makefile.am)
 echo "====================================================== automake"
 
index 6ebb5297eb247e1dc4f874cb57452aa51d002ab4..c7c8b7f03653cdbdfca43766108863b5c381b0aa 100755 (executable)
@@ -1,34 +1,29 @@
 #!/bin/sh
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-rm -rf autom4te.cache aclocal.m4 configure make_config
+rm -rf autom4te.cache aclocal.m4 configure make_config \$\(top_srcdir\)
 find . -name "*~" -print -exec rm {} \;
 find . -name "*.pyc" -print -exec rm {} \;
 #exit
 # ==================== ON SORT AVANT
 
-find bin -name Makefile.in | xargs rm -f
-find idl -name Makefile.in | xargs rm -f
-find resources -name Makefile.in | xargs rm -f
-find salome_adm -name Makefile.in | xargs rm -f
-find src -name Makefile.in | xargs rm -f
-rm -f Makefile.in
+# Files created by libtoolize and automake
+( cd adm_local/unix/config_files && rm -f config.* depcomp install-sh l*.m4 ltmain.sh missing py-compile install-sh missing depcomp py-compile )
+find . -name Makefile.in | xargs rm -f
+rm -f COPYING INSTALL
index 90e8b1692641a893a5da6646f19c93daa02b2152..7094ead4d5f932d6d26317e0c562b8f01f5d173d 100644 (file)
@@ -1,23 +1,20 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 # Author : Marc Tajchman (CEA)
 # Date : 28/06/2001
 # Modified by : Alexander BORODIN (OCN) - autotools usage
 # Created from configure.in.base
 #
-AC_INIT([Salome2 Project HOMARD module], [5.1.0], [webmaster.salome@opencascade.com], [SalomeHOMARD])
-AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
+AC_INIT([Salome2 Project HOMARD module], [6.5.0], [webmaster.salome@opencascade.com], [SalomeHOMARD])
+AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([-Wno-portability])
 
+SHORT_VERSION=`echo $VERSION | awk -F. '{printf("%d.%d",$1,$2)}'`
+AC_SUBST(SHORT_VERSION)
 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
 AC_SUBST(XVERSION)
+VERSION_DEV=1
+AC_SUBST(VERSION_DEV)
 
 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
 MODULE_NAME=homard
@@ -107,7 +108,7 @@ dnl Fix up the INSTALL macro if it s a relative path. We want the
 dnl full-path to the binary instead.
 case "$INSTALL" in
    *install-sh*)
-      INSTALL='\${ROOT_BUILDDIR}'/salome_adm/unix/config_files/install-sh
+      INSTALL='\${ROOT_BUILDDIR}'/adm_local/unix/config_files/install-sh
       ;;
 esac
 
@@ -266,6 +267,14 @@ echo
 
 CHECK_HDF5
 
+echo
+echo ---------------------------------------------
+echo BOOST Library
+echo ---------------------------------------------
+echo
+
+CHECK_BOOST
+
 echo
 echo ---------------------------------------------
 echo Testing OpenCascade
@@ -286,11 +295,11 @@ CHECK_MPI
 
 echo
 echo ---------------------------------------------
-echo Testing Med
+echo Testing Med library
 echo ---------------------------------------------
 echo
 
-CHECK_MED2
+CHECK_MED3
 
 
 echo
@@ -327,7 +336,7 @@ echo
 
 echo Configure
 if test "${HOMARD_WITH_GUI}" = "yes"; then
-variables="cc_ok fortran_ok   python_ok swig_ok threads_ok OpenGL_ok qt_ok  hdf5_ok omniORB_ok Kernel_ok med2_ok SalomeGUI_ok Med_ok SMesh_ok  sphinx_ok"
+variables="cc_ok fortran_ok boost_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok  hdf5_ok omniORB_ok Kernel_ok med3_ok SalomeGUI_ok Med_ok SMesh_ok  sphinx_ok"
 fi
 
 if test "${HOMARD_WITH_GUI}" = "no"; then
@@ -372,20 +381,39 @@ echo
 #  chmod +x ./bin/salome/*; \
 #])
 
+AC_HACK_LIBTOOL
+AC_CONFIG_COMMANDS([hack_libtool],[
+                    sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
+                          $(pwd)/hack_libtool \1 \"\$[@]\" \n\
+                          }\n\
+                          CC=\"hack_libtool\"%g" libtool
+                    sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool
+                    sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool
+                    sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1  if ! test -d \$sss; then continue; fi\n\1  ssss=\$(cd \$sss; pwd)\n\1  if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1    case \$ssss in\n\1      /usr/lib | /usr/lib64 ) ;;\n\1      * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1    esac\n\1  fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool
+                    ],[])
+
 # This list is initiated using autoscan and must be updated manually
 # when adding a new file <filename>.in to manage. When you execute
 # autoscan, the Makefile list is generated in the output file configure.scan.
 # This could be helpfull to update de configuration.
 AC_OUTPUT([ \
-       salome_adm/unix/SALOMEconfig.h \
        Makefile \
        idl/Makefile \
+       adm_local/Makefile \
+       adm_local/unix/Makefile \
+       adm_local/unix/config_files/Makefile \
+       bin/Makefile \
+       bin/VERSION \
        doc/Makefile \
-       src/Makefile \
+       doc/conf.py \
+        HOMARD_version.h \
+       src/Makefile \
        src/HOMARD_I/Makefile \
        src/HOMARD/Makefile \
        src/HOMARDGUI/Makefile \
        src/HOMARD_SWIG/Makefile \
        resources/Makefile \
+       resources/HOMARDCatalog.xml \
+       resources/SalomeApp.xml \
        tests/Makefile \
 ])
index f6d358dfd47d6deea10fc759db88d9faedce4ba1..9c9af87b361d2b67af2e752a074805d3e19587f2 100644 (file)
@@ -1,24 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 #  File   : Makefile.in
 #  Author : Vasily Rusyaev (Open Cascade NN)
 #  Module : doc
@@ -30,6 +28,7 @@ if SPHINX_IS_OK
 homarddoc_DATA=html/index.html
 html/index.html:$(RSTFILES)
        make htm
+
 endif
 
 homarddocdir=$(docdir)/gui/HOMARD
@@ -40,18 +39,34 @@ SPHINXBUILD     = sphinx-build
 PAPEROPT_a4     = -D latex_paper_size=a4
 ALLSPHINXOPTS   = -d doctrees $(PAPEROPT_a4) $(SPHINXOPTS) $(SOURCEDIR)
 
-EXTRA_DIST+= images files html $(docdir) $(docdir)/gui $(homarddoc_DATA)
 htm:
        mkdir -p html doctrees
-       $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) html
+       $(SPHINXBUILD) -c $(top_builddir)/doc -b html $(ALLSPHINXOPTS) html
        @echo
        @echo "Build finished. The HTML pages are in html."
 
-RSTFILES=          \
-index.rst          \
-intro.rst    \
+RSTFILES= \
+glossaire.rst \
+gui_create_boundary.rst \
+gui_create_case.rst \
+gui_create_hypothese.rst \
+gui_create_iteration.rst \
+gui_create_zone.rst \
+gui_homard.rst \
+gui_usage.rst \
+index.rst \
+intro.rst \
+tui_create_boundary.rst \
+tui_create_case.rst \
+tui_create_hypothese.rst \
+tui_create_iteration.rst \
+tui_create_zone.rst \
+tui_homard.rst \
+tui_usage.rst \
 tutorials.rst
 
+EXTRA_DIST+= $(RSTFILES) images files
+
 usr_docs: 
        make install-data-local
 
@@ -59,7 +74,17 @@ docs: usr_docs
 
 install-data-local:
        $(INSTALL) -d $(DESTDIR)$(homarddocdir)
-       if test -d "html"; then cp -rf html/* $(DESTDIR)$(homarddocdir); fi;
+       if test -d "html"; then b=; else b="$(srcdir)/"; fi; \
+       if test -d $$b"html"; then cp -rf $$b"html"/* $(DESTDIR)$(homarddocdir); fi;
 
 uninstall-local:
+       chmod -R +w $(DESTDIR)$(homarddocdir)
        rm -rf $(DESTDIR)$(homarddocdir)/*
+
+clean-local:
+       -rm -rf doctrees
+       if test -d "html"; then rm -rf html ; fi
+
+dist-hook:
+       if test -d "html"; then b=; else b="$(srcdir)/"; fi; \
+       if test -d $$b"html"; then cp -rf $$b"html" $(distdir) ; fi
diff --git a/doc/conf.py b/doc/conf.py
deleted file mode 100644 (file)
index ca7e356..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# HOMARD documentation build configuration file, created by
-# sphinx-quickstart on Tue Jan  5 08:51:14 2010.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.append(os.path.abspath('.'))
-
-# -- General configuration -----------------------------------------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest',  'sphinx.ext.coverage',  'sphinx.ext.ifconfig']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'HOMARD'
-copyright = u'1996, 2010, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '9.6'
-# The full version, including alpha/beta/rc tags.
-release = '9.6'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
-#unused_docs = []
-
-# List of directories, relative to source directory, that shouldn't be searched
-# for source files.
-exclude_trees = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'HOMARDdoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
-  ('index', 'HOMARD.tex', u'HOMARD Documentation',
-   u'G. NICOLAS et T. FOUQUET', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
-
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'http://docs.python.org/': None}
diff --git a/doc/conf.py.in b/doc/conf.py.in
new file mode 100644 (file)
index 0000000..4aa0a92
--- /dev/null
@@ -0,0 +1,198 @@
+# -*- coding: iso-8859-1 -*-
+#
+# HOMARD documentation build configuration file, created by
+# sphinx-quickstart on Tue Jan  5 08:51:14 2010.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.append(os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest',  'sphinx.ext.coverage',  'sphinx.ext.ifconfig']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+source_encoding = 'iso-8859-1'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'HOMARD'
+copyright = u'1996, 2011, 2012, EDF R&D, G. Nicolas, T. Fouquet, P. Noyret'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '@SHORT_VERSION@'
+# The full version, including alpha/beta/rc tags.
+release = '@VERSION@'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directory, that shouldn't be searched
+# for source files.
+exclude_trees = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  Major themes that come with
+# Sphinx are currently 'default' and 'sphinxdoc'.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'HOMARDdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+  ('index', 'HOMARD.tex', u'HOMARD Documentation',
+   u'G. NICOLAS et T. FOUQUET', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'http://docs.python.org/': None}
index 500cd01962ea2b40daf34136436810eb3881c10c..68242dfd0943fb04eb3954997d1d4eb3e9812cc9 100644 (file)
Binary files a/doc/files/tutorial_1.00.med.gz and b/doc/files/tutorial_1.00.med.gz differ
index 607f72c0704a25a59505196dc51455ff34caefc5..eaebabc20d5a138a60d4fe70caed768b3a54e059 100644 (file)
@@ -1,10 +1,37 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
+
+# Copyright (C) 2011-2012  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
+#
+
 """
 Exemple de couplage HOMARD-Salome
 Copyright EDF-R&D 1996, 2010
 """
-__revision__ = "V1.0"
+__revision__ = "V1.2"
+#
+# ==================================
+# Repertoire a personnaliser
+# Ce repertoire contient les fichiers de donnees : tutorial_1.00.med
+# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med, maill.03.med
+dircase = "/tmp"
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -14,41 +41,39 @@ homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
 study_main = salome.myStudyManager.NewStudy("HOMARD")
 homard.SetCurrentStudy(salome.myStudy)
 #
-dircase = "/tmp"
-#
 # Hypothesis "Hypo_0"
 # ===================
 Hypo_0 = homard.CreateHypothesis('Hypo_0')
 Hypo_0.SetAdapRefinUnRef(-1, 1, 0)
 #
-# Case "Case_0"
+# Case "Case_1"
 # =============
-Case_0 = homard.CreateCase('Case_0', 'MESH', dircase+'/tutorial_1.00.med')
-Case_0.SetDirName(dircase)
-Case_0.SetConfType(1)
+Case_1 = homard.CreateCase('Case_1', 'MAILL', dircase+'/tutorial_1.00.med')
+Case_1.SetDirName(dircase)
+Case_1.SetConfType(1)
 #
 # Iterations
 # ==========
 # Iteration "Iter_0"
-Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
+Iter_0 = homard.CreateIteration('Iter_0', Case_1.GetIter0Name())
 Iter_0.SetMeshName('MESH')
 Iter_0.SetMeshFile(dircase+'/maill.01.med')
 homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-codret = homard.Compute('Iter_0', 1)
+codret = Iter_0.Compute(1)
 
 # Iteration "Iter_1"
 Iter_1 = homard.CreateIteration('Iter_1', 'Iter_0')
 Iter_1.SetMeshName('MESH')
 Iter_1.SetMeshFile(dircase+'/maill.02.med')
 homard.AssociateIterHypo('Iter_1', 'Hypo_0')
-codret = homard.Compute('Iter_1', 1)
+codret = Iter_1.Compute(1)
 
 # Iteration "Iter_2"
 Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
 Iter_2.SetMeshName('MESH')
 Iter_2.SetMeshFile(dircase+'/maill.03.med')
 homard.AssociateIterHypo('Iter_2', 'Hypo_0')
-codret = homard.Compute('Iter_2', 1)
+codret = Iter_2.Compute(1)
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
index 2ad4223c194d0d2164ec40e91fc4fca2d673ad7c..51a01c9c686500443d42d233dbb350fa1c9eaf9d 100644 (file)
Binary files a/doc/files/tutorial_2.00.med.gz and b/doc/files/tutorial_2.00.med.gz differ
index d6e7ca8de90518d8bba6f53db0c18793a00fba2c..6f4ec2333bd42b3f87941dc7474ed4c184bbf3d0 100644 (file)
@@ -1,10 +1,37 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
+
+# Copyright (C) 2011-2012  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
+#
+
 """
 Exemple de couplage HOMARD-Salome
 Copyright EDF-R&D 1996, 2010
 """
-__revision__ = "V1.0"
+__revision__ = "V1.3"
+#
+# ==================================
+# Repertoire a personnaliser
+# Ce repertoire contient les fichiers de donnees : tutorial_2.00.med
+# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
+dircase = "/tmp"
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -14,21 +41,16 @@ homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
 study_main = salome.myStudyManager.NewStudy("HOMARD")
 homard.SetCurrentStudy(salome.myStudy)
 #
-dircase = "/tmp"
-#
 # Creation of the zones
 # =====================
 # Box "Zone_0"
-Zone_0 = homard.CreateZone('Zone_0', 2)
-Zone_0.SetBox(-0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
+Zone_0 = homard.CreateZoneBox ('Zone_0', -0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
 #
 # Sphere "Zone_1"
-Zone_1 = homard.CreateZone('Zone_1', 4)
-Zone_1.SetSphere(0., 0., 0., 1.05)
+Zone_1 = homard.CreateZoneSphere ('Zone_1', 0., 0., 0., 1.05)
 #
 # Box "Zone_2"
-Zone_2 = homard.CreateZone('Zone_2', 2)
-Zone_2.SetBox(-0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
+Zone_2 = homard.CreateZoneBox ('Zone_2', -0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
 #
 # Hypothesis "Hypo_0"
 # ===================
@@ -44,18 +66,18 @@ Hypo_1.SetAdapRefinUnRef(0, 1, 0)
 homard.AssociateHypoZone('Zone_0', 'Hypo_1')
 homard.AssociateHypoZone('Zone_2', 'Hypo_1')
 #
-# Case "Case_0"
+# Case "Case_1"
 # =============
-Case_0 = homard.CreateCase('Case_0', 'MZERO', dircase+'/tutorial_2.00.med')
-Case_0.SetDirName(dircase)
+Case_1 = homard.CreateCase('Case_1', 'MZERO', dircase+'/tutorial_2.00.med')
+Case_1.SetDirName(dircase)
 #
 # Iteration "Iter_0"
 # ==================
-Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
+Iter_0 = homard.CreateIteration('Iter_0', Case_1.GetIter0Name())
 Iter_0.SetMeshName('M_1')
 Iter_0.SetMeshFile(dircase+'/maill.01.med')
 homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-codret = homard.Compute('Iter_0', 1)
+codret = Iter_0.Compute(1)
 #
 # Iteration "Iter_1"
 # ==================
@@ -63,7 +85,7 @@ Iter_1 = homard.CreateIteration('Iter_1', 'Iter_0')
 Iter_1.SetMeshName('M_2')
 Iter_1.SetMeshFile(dircase+'/maill.02.med')
 homard.AssociateIterHypo('Iter_1', 'Hypo_1')
-codret = homard.Compute('Iter_1', 1)
+codret = Iter_1.Compute(1)
 
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
index 6dd54234c1a18d3ff547c52a5dd7cac25dc34485..8fb733a6b1d58cc3ad1a21d5e0947625f3227475 100644 (file)
Binary files a/doc/files/tutorial_3.00.med.gz and b/doc/files/tutorial_3.00.med.gz differ
index efdae65c97b7adc83c8a21098a690e7e24cf79a1..266b495e891f5ea26871ac1909e4cb8a7e2739f6 100644 (file)
Binary files a/doc/files/tutorial_3.01.med.gz and b/doc/files/tutorial_3.01.med.gz differ
index c9f3cd16f3866bbede0c36c1d9d65d66174190e1..c0aaeb5cda37ced83b52a0e7e3fe249547e55efa 100644 (file)
@@ -1,10 +1,37 @@
 #!/usr/bin/env python
 # -*- coding: iso-8859-1 -*-
+
+# Copyright (C) 2011-2012  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
+#
+
 """
 Exemple de couplage HOMARD-Salome
 Copyright EDF-R&D 1996, 2010
 """
-__revision__ = "V1.0"
+__revision__ = "V1.3"
+#
+# ==================================
+# Repertoire a personnaliser
+# Ce repertoire contient les fichiers de donnees : tutorial_3.00.med, tutorial_3.01.med
+# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
+dircase = "/tmp"
+# ==================================
 #
 import salome
 salome.salome_init()
@@ -14,51 +41,81 @@ homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
 study_main = salome.myStudyManager.NewStudy("HOMARD")
 homard.SetCurrentStudy(salome.myStudy)
 #
-dircase = "/tmp"
+# Hypothesis "Hypo_0vers1"
+# ========================
+Hypo_0vers1 = homard.CreateHypothesis('Hypo_0vers1')
+Hypo_0vers1.SetAdapRefinUnRef(1, 1, 0)
+# Characterization of the field
+Hypo_0vers1.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
+Hypo_0vers1.SetUseComp(0)
+Hypo_0vers1.AddComp('ERREST          ')
+Hypo_0vers1.SetRefinThr(3, 1.0)
+Hypo_0vers1.SetTypeFieldInterp(2)
+Hypo_0vers1.AddFieldInterp('SOLU_0__DEPL____________________')
+Hypo_0vers1.AddFieldInterp('SOLU_0__ERRE_ELEM_SIGM__________')
 #
-# Hypothesis "Hypo_0"
-# ===================
-Hypo_0 = homard.CreateHypothesis('Hypo_0')
-Hypo_0.SetAdapRefinUnRef(1, 1, 0)
+# Hypothesis "Hypo_1vers2"
+# ========================
+Hypo_1vers2 = homard.CreateHypothesis('Hypo_1vers2')
+Hypo_1vers2.SetAdapRefinUnRef(1, 1, 1)
 # Characterization of the field
-Hypo_0.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
-Hypo_0.SetUseComp(0)
-Hypo_0.AddComp('ERREST          ')
-Hypo_0.SetRefinThr(3, 1.0)
-#
-# Hypothesis "Hypo_1"
-# ===================
-Hypo_1 = homard.CreateHypothesis('Hypo_1')
-Hypo_1.SetAdapRefinUnRef(1, 1, 1)
+Hypo_1vers2.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
+Hypo_1vers2.SetUseComp(0)
+Hypo_1vers2.AddComp('ERREST          ')
+Hypo_1vers2.SetRefinThr(3, 1.5)
+Hypo_1vers2.SetUnRefThr(3, 6.)
+Hypo_1vers2.SetTypeFieldInterp(2)
+Hypo_1vers2.AddFieldInterp('SOLU_1__DEPL____________________')
+Hypo_1vers2.AddFieldInterp('SOLU_1__QIRE_ELEM_SIGM__________')
+#
+# Hypothesis "Hypo_1vers2_bis"
+# ============================
+Hypo_1vers2_bis = homard.CreateHypothesis('Hypo_1vers2_bis')
+Hypo_1vers2_bis.SetAdapRefinUnRef(1, 1, 1)
 # Characterization of the field
-Hypo_1.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
-Hypo_1.SetUseComp(0)
-Hypo_1.AddComp('ERREST          ')
-Hypo_1.SetRefinThr(3, 1.5)
-Hypo_1.SetUnRefThr(3, 6.)
+Hypo_1vers2_bis.SetField('SOLU_1__DEPL____________________')
+Hypo_1vers2_bis.SetUseComp(1)
+Hypo_1vers2_bis.AddComp('DX')
+Hypo_1vers2_bis.AddComp('DY')
+Hypo_1vers2_bis.AddComp('DZ')
+Hypo_1vers2_bis.SetRefinThr(1, 0.0001)
+Hypo_1vers2_bis.SetUnRefThr(1, 0.000001)
+Hypo_1vers2_bis.SetTypeFieldInterp(0)
 #
-# Case "Case_0"
+# Case "Case_1"
 # =============
-Case_0 = homard.CreateCase('Case_0', 'G_0', dircase+'/tutorial_3.00.med')
-Case_0.SetDirName(dircase)
+Case_1 = homard.CreateCase('Case_1', 'G_0', dircase+'/tutorial_3.00.med')
+Case_1.SetDirName(dircase)
 #
-# Iteration "Iter_0"
+# Iteration "Iter_1"
 # ==================
-Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
-Iter_0.SetMeshName('H_1')
-Iter_0.SetMeshFile(dircase+'/maill.01.med')
-Iter_0.SetField(dircase+'/tutorial_3.00.med', 1, 1)
-homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-codret = homard.Compute('Iter_0', 1)
+Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name())
+Iter_1.SetMeshName('H_1')
+Iter_1.SetMeshFile(dircase+'/maill.01.med')
+Iter_1.SetFieldFile(dircase+'/tutorial_3.00.med')
+Iter_1.SetTimeStepRank( 1, 1)
+homard.AssociateIterHypo('Iter_1', 'Hypo_0vers1')
+codret = Iter_1.Compute(1)
 #
-# Iteration "Iter_1"
+# Iteration "Iter_2"
 # ==================
-Iter_1 = homard.CreateIteration('Iter_1', 'Iter_0')
-Iter_1.SetMeshName('H_2')
-Iter_1.SetMeshFile('/tmp/maill.02.med')
-Iter_1.SetField(dircase+'/tutorial_3.01.med', 1, 1)
-homard.AssociateIterHypo('Iter_1', 'Hypo_1')
-codret = homard.Compute('Iter_1', 1)
-
+Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+Iter_2.SetMeshName('H_2')
+Iter_2.SetMeshFile(dircase+'/maill.02.med')
+Iter_2.SetFieldFile(dircase+'/tutorial_3.01.med')
+Iter_2.SetTimeStepRank(1, 1)
+homard.AssociateIterHypo('Iter_2', 'Hypo_1vers2')
+codret = Iter_2.Compute(1)
+#
+# Iteration "Iter_2_bis"
+# ======================
+Iter_2_bis = homard.CreateIteration('Iter_2_bis', 'Iter_1')
+Iter_2_bis.SetMeshName('H_2_bis')
+Iter_2_bis.SetMeshFile(dircase+'/maill.02.bis.med')
+Iter_2_bis.SetFieldFile(dircase+'/tutorial_3.01.med')
+Iter_2_bis.SetTimeStepRank(1, 1)
+homard.AssociateIterHypo('Iter_2_bis', 'Hypo_1vers2_bis')
+codret = Iter_2_bis.Compute(1)
+#
 if salome.sg.hasDesktop():
   salome.sg.updateObjBrowser(1)
diff --git a/doc/files/tutorial_4.00.med.gz b/doc/files/tutorial_4.00.med.gz
new file mode 100644 (file)
index 0000000..a9c94d7
Binary files /dev/null and b/doc/files/tutorial_4.00.med.gz differ
diff --git a/doc/files/tutorial_4.fr.med.gz b/doc/files/tutorial_4.fr.med.gz
new file mode 100644 (file)
index 0000000..3bdc67a
Binary files /dev/null and b/doc/files/tutorial_4.fr.med.gz differ
diff --git a/doc/files/tutorial_4.py b/doc/files/tutorial_4.py
new file mode 100644 (file)
index 0000000..c3aa70f
--- /dev/null
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+
+# Copyright (C) 2011-2012  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
+#
+
+"""
+Exemple de couplage HOMARD-Salome
+Copyright EDF-R&D 1996, 2011
+"""
+__revision__ = "V1.3"
+#
+# ==================================
+# Repertoire a personnaliser
+# Ce repertoire contient les fichiers de donnees : tutorial_4.00.med, tutorial_4.fr.med
+# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
+dircase = "/tmp"
+# ==================================
+#
+import salome
+salome.salome_init()
+import HOMARD
+#
+homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
+study_main = salome.myStudyManager.NewStudy("HOMARD")
+homard.SetCurrentStudy(salome.myStudy)
+#
+# Creation of the boundaries
+# ==========================
+Boundary_1 = homard.CreateBoundaryDi('intersection', 'PIQUAGE', dircase+'/tutorial_4.fr.med')
+#
+Boundary_2 = homard.CreateBoundaryCylinder('cyl_1_ext', 0.0, 25., -25., 25., 50., 75., 100.)
+#
+Boundary_3 = homard.CreateBoundaryCylinder('cyl_2_ext', 17.5, -2.5, -12.5, -100., -75., -25., 50.)
+#
+Boundary_4 = homard.CreateBoundaryCylinder('cyl_1_int', 0.0, 25., -25., 25., 50., 75., 75.)
+#
+Boundary_5 = homard.CreateBoundaryCylinder('cyl_2_int', 17.5, -2.5, -12.5, -100., -75., -25., 25.)
+#
+# Hypothesis
+# ==========
+# Creation of the hypothesis Hypo_1
+Hypo_1 = homard.CreateHypothesis('Hypo_1')
+Hypo_1.SetAdapRefinUnRef(-1, 1, 0)
+Hypo_1.AddGroup('T1_INT_I')
+Hypo_1.AddGroup('T1_INT_O')
+Hypo_1.AddGroup('T2_INT')
+# Creation of the hypothesis Hypo_2
+Hypo_2 = homard.CreateHypothesis('Hypo_2')
+Hypo_2.SetAdapRefinUnRef(-1, 1, 0)
+Hypo_2.AddGroup('T1_EXT_I')
+Hypo_2.AddGroup('T1_EXT_O')
+Hypo_2.AddGroup('T2_EXT')
+#
+# Case "Case"
+# =============
+Case = homard.CreateCase('Case', 'PIQUAGE', dircase+'/tutorial_4.00.med')
+Case.SetDirName(dircase)
+Case.AddBoundaryGroup( 'intersection', '' )
+Case.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_I' )
+Case.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_O' )
+Case.AddBoundaryGroup( 'cyl_2_ext', 'T2_EXT' )
+Case.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_I' )
+Case.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_O' )
+Case.AddBoundaryGroup( 'cyl_2_int', 'T2_INT' )
+#
+# Creation of the iterations
+# ==========================
+# Creation of the iteration Iter_1
+Iter_1 = homard.CreateIteration('Iter_1', Case.GetIter0Name() )
+Iter_1.SetMeshName('PIQUAGE_1')
+Iter_1.SetMeshFile(dircase+'/maill.01.med')
+homard.AssociateIterHypo('Iter_1', 'Hypo_1')
+codret = Iter_1.Compute(1)
+# Creation of the iteration Iter_2
+Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1' )
+Iter_2.SetMeshName('PIQUAGE_2')
+Iter_2.SetMeshFile(dircase+'/maill.02.med')
+homard.AssociateIterHypo('Iter_2', 'Hypo_2')
+codret = Iter_2.Compute(1)
+
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
diff --git a/doc/files/tutorial_5.00.med.gz b/doc/files/tutorial_5.00.med.gz
new file mode 100644 (file)
index 0000000..e017044
Binary files /dev/null and b/doc/files/tutorial_5.00.med.gz differ
diff --git a/doc/files/tutorial_5.fr.med.gz b/doc/files/tutorial_5.fr.med.gz
new file mode 100644 (file)
index 0000000..4c9ccbd
Binary files /dev/null and b/doc/files/tutorial_5.fr.med.gz differ
diff --git a/doc/files/tutorial_5.py b/doc/files/tutorial_5.py
new file mode 100644 (file)
index 0000000..a876501
--- /dev/null
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+
+# Copyright (C) 2011-2012  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
+#
+
+"""
+Exemple de couplage HOMARD-Salome
+Copyright EDF-R&D 1996, 2010
+"""
+__revision__ = "V1.2"
+#
+# ==================================
+# Repertoire a personnaliser
+# Ce repertoire contient les fichiers de donnees : tutorial_5.00.med, tutorial_5.fr.med
+# Ce repertoire contiendra les fichiers de resultats : maill.01.med, maill.02.med
+dircase = "/tmp"
+# ==================================
+#
+import salome
+salome.salome_init()
+import HOMARD
+#
+homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
+study_main = salome.myStudyManager.NewStudy("HOMARD")
+homard.SetCurrentStudy(salome.myStudy)
+#
+# Creation of the boundaries
+# ==========================
+# Creation of the discrete boundary Boun_1
+Boun_1 = homard.CreateBoundaryDi('Boun_1', 'MAIL_EXT', dircase+'/tutorial_5.fr.med')
+#
+# Creation of the zones
+# =====================
+# Creation of the disk with hole enveloppe
+enveloppe = homard.CreateZoneDiskWithHole( 'enveloppe', 0., 0., 250., 193., 1 )
+# Creation of the rectangle quart_sup
+quart_sup = homard.CreateZoneBox2D( 'quart_sup', 0., 250., 0., 250., 1 )
+#
+# Hypothesis
+# ==========
+# Creation of the hypothesis Hypo_1
+Hypo_1 = homard.CreateHypothesis('Hypo_1')
+Hypo_1.SetAdapRefinUnRef(0, 1, 0)
+homard.AssociateHypoZone('enveloppe', 'Hypo_1')
+# Creation of the hypothesis Hypo_2
+Hypo_2 = homard.CreateHypothesis('Hypo_2')
+Hypo_2.SetAdapRefinUnRef(0, 1, 0)
+homard.AssociateHypoZone('quart_sup', 'Hypo_2')
+#
+# Case "Case_1"
+# =============
+Case_1 = homard.CreateCase('Case_1', 'COEUR_2D', dircase+'/tutorial_5.00.med')
+Case_1.SetDirName(dircase)
+Case_1.SetConfType(3)
+Case_1.AddBoundaryGroup('Boun_1', '')
+#
+# Iteration "Iter_1"
+# ==================
+Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name())
+Iter_1.SetMeshName('COEUR_2D_01')
+Iter_1.SetMeshFile(dircase+'/maill.01.med')
+homard.AssociateIterHypo('Iter_1', 'Hypo_1')
+codret = Iter_1.Compute(1)
+#
+# Iteration "Iter_2"
+# ==================
+Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+Iter_2.SetMeshName('COEUR_2D_02')
+Iter_2.SetMeshFile(dircase+'/maill.02.med')
+homard.AssociateIterHypo('Iter_2', 'Hypo_2')
+codret = Iter_2.Compute(1)
+
+
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
index 1e44872538e1fe454753a538e807f78d697cf53e..bd5469f3e91384d937fd071ec433a3df6f4dbfc6 100644 (file)
@@ -7,28 +7,28 @@ Glossaire
    :sorted:
 
    raffinement
-      Le raffinement est une opération consistant à découper les mailles sélectionnées.
+      Le raffinement est une opération consistant à découper les mailles sélectionnées.
 
    niveau
-      Le niveau d'une maille est le nombre de découpages qu'il a fallu pour l'obtenir. Les mailles du maillage initial sont du niveau 0 par convention.
+      Le niveau d'une maille est le nombre de découpages qu'il a fallu pour l'obtenir. Les mailles du maillage initial sont du niveau 0 par convention.
 
-   déraffinement
-      Le déraffinement est une opération consistant à supprimer des mailles. Il s'agit en fait d'annuler un précédent découpage : on ne reviendra jamais 'plus haut' que le maillage initial.
+   déraffinement
+      Le déraffinement est une opération consistant à supprimer des mailles. Il s'agit en fait d'annuler un précédent découpage : on ne reviendra jamais 'plus haut' que le maillage initial.
 
    zone
-      Une zone est une région qui définit un pilotage de raffinement : toutes les mailles dont au moins une arête est dans une zone seront raffinées.
+      Une zone est une région qui définit un pilotage de raffinement : toutes les mailles dont au moins une arête est dans une zone seront raffinées.
 
    cas
-      Un cas est défini par un maillage initial et une succession d'adaptations.
+      Un cas est défini par un maillage initial et une succession d'adaptations.
 
-   itération
-      Une itération est le processus qui permet de passer d'un maillage à un autre au sein d'un cas. Une itération met en oeuvre du raffinement et/ou du déraffinement selon l'hypothèse qui lui est attachée.
+   itération
+      Une itération est le processus qui permet de passer d'un maillage à un autre au sein d'un cas. Une itération met en oeuvre du raffinement et/ou du déraffinement selon l'hypothèse qui lui est attachée.
 
-   hypothèse
-      Une hypothèse décrit les conditions de passage d'un maillage à un autre : raffinement et/ou déraffinement, mode de pilotage, etc. Une hypothèse est référencée par une ou plusieurs itérations.
+   hypothèse
+      Une hypothèse décrit les conditions de passage d'un maillage à un autre : raffinement et/ou déraffinement, mode de pilotage, etc. Une hypothèse est référencée par une ou plusieurs itérations.
 
    champ
-      Un champ est exprimé sur un maillage, par noeud ou par maille, avec une ou plusieurs composantes. La valeur de ce champ pilote l'adaptation.
+      Un champ est exprimé sur un maillage, par noeud ou par maille, avec une ou plusieurs composantes. La valeur de ce champ pilote l'adaptation.
 
    MED
-      C'est le format d'échange des maillages et des champs pour Salome.
\ No newline at end of file
+      C'est le format d'échange des maillages et des champs pour Salome.
\ No newline at end of file
diff --git a/doc/gui_create_boundary.rst b/doc/gui_create_boundary.rst
new file mode 100644 (file)
index 0000000..9fb1847
--- /dev/null
@@ -0,0 +1,116 @@
+.. _gui_create_boundary:
+
+La frontière
+============
+.. index:: single: boundary
+.. index:: single: frontière
+
+L'objet frontière contient toutes les définitions géométriques permettant de décrire une frontière courbe à suivre.
+
+Il existe deux modes de description d'une frontière :
+
+  - Discrète : ce mode est utilisé pour décrire une courbe 1D
+  - Analytique : ce mode est utilisé pour décrire une surface
+
+
+Frontière discrète
+==================
+
+Le suivi d'une frontière discrète se fera en sélectionnant une frontière choisie dans la liste des frontières discrètes existantes.
+
+Au démarrage, la liste est vide. Il faut créer une première frontière discrète par activation du bouton "*Nouveau*" :
+
+.. image:: images/create_boundary_di_1.png
+   :align: center
+
+La fenêtre proposée invite au choix d'un fichier de maillage. Ce maillage est celui de toutes les lignes constituant la frontière. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+
+.. image:: images/create_boundary_di_2.png
+   :align: center
+
+.. note::
+  Le fichier ne doit contenir qu'un seul maillage.
+
+Si des frontières discrètes ont déjà été définies pour un autre cas, on peut sélectionner l'une d'elles. On peut également créer une nouvelle frontière discrète par activation du bouton "*Nouveau*", comme expliqué précédemment.
+
+.. image:: images/create_boundary_di_3.png
+   :align: center
+
+
+
+Frontière analytique
+====================
+Au démarrage, Salome affiche un tableau avec un seule colonne. Cette colonne contient la liste de tous les groupes du maillage initial définissant le cas.
+
+.. image:: images/create_boundary_an_1.png
+   :align: center
+
+Il faut créer une première frontière analytique par activation du bouton "*Nouveau*". On aura le choix entre cylindre ou sphère. Une fois que la frontière sera validée, son nom figurera en en-tête d'une deuxième colonne.
+
+.. image:: images/create_boundary_an_2.png
+   :align: center
+
+Il faut maintenant établir le lien entre le maillage définissant le cas et cette frontière décrite analytiquement. Cela se fait en cochant les groupes des faces qui doivent se trouver sur la frontière.
+
+.. image:: images/create_boundary_an_3.png
+   :align: center
+
+Cette opération est répétée autant de fois que l'on souhaite placer des faces du maillages sur une surface courbe :
+
+.. image:: images/create_boundary_an_4.png
+   :align: center
+
+.. note::
+
+  Un groupe peut très bien ne jamais être coché : cela signifie que les mailles qu'il définit n'appartiennent à aucune des frontières décrites.
+
+  Un groupe ne peut être coché qu'une seule fois. En effet, des mailles surfaciques ne peuvent pas appartenir à plus d'une surface.
+
+  Plusieurs groupes peuvent être cochés pour une même frontière. Cela arrive quand le maillage initial de la zone a été subdivisé en plusieurs groupes : toutes les mailles surfaciques appartiennent à cette surface mais ont été réparties en plusieurs groupes.
+
+  Inversement, une frontière peut très bien n'être retenue par aucun groupe. Cela arrive si elle a été définie pour un cas précédent et qu'elle est sans objet pour le cas en cours de définition.
+
+
+Il existe deux types de frontière analytique :
+
+  - Cylindre
+  - Sphère
+
+.. note::
+  Les valeurs numériques proposées par défaut tiennent compte de la géométrie du maillage.
+
+
+Un cylindre
+"""""""""""
+.. index:: single: cylindre
+
+Le cylindre est défini par un point de l'axe, son axe et son rayon. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+
+.. image:: images/create_boundary_an_cy.png
+   :align: center
+
+Une sphère
+""""""""""
+.. index:: single: sphere
+
+La sphère est définie par son centre et son rayon. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière.
+
+.. image:: images/create_boundary_an_sp.png
+   :align: center
+
+.. index:: single: arbre d'étude
+
+L'arbre d'étude
+"""""""""""""""
+A l'issue de cette création de frontières, l'arbre d'études a été enrichi. On y trouve toutes les frontières créées, identifiées par leur nom, avec la possibilité de les éditer.
+
+.. image:: images/create_boundary_1.png
+   :align: center
+
+
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter : :ref:`tui_create_boundary`
+
+
+
index 88b3abc65ecac18ed00753cfb94f759c214874e8..5758e8e9713aef9d86d4f1ebc030dc8d37943b5d 100644 (file)
@@ -3,12 +3,14 @@
 Le cas
 ======
 .. index:: single: cas
-La définition du cas se fait par la donnée des informations suivantes :
+
+La définition du cas se fait par la donnée des informations suivantes :
 
   - Un nom
-  - Un répertoire
+  - Un répertoire
   - Le fichier du maillage initial
-  - Le type de conformité pour la série d'adaptations envisagées
+  - Le type de conformité pour la série d'adaptations envisagées
+  - Les éventuelles frontières courbes à respecter
 
 .. image:: images/create_case_1.png
    :align: center
@@ -16,20 +18,21 @@ La définition du cas se fait par la donnée des informations suivantes :
 
 Le nom du cas
 """""""""""""
-Un nom de cas est proposé automatiquement : Case_0, Case_1, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour un cas précédent.
+Un nom de cas est proposé automatiquement : Case_1, Case_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour un autre cas.
 
-Le répertoire
+Le répertoire
 """""""""""""
-Le répertoire est celui qui contiendra les fichiers produits par les adaptations successives. Ce répertoire doit exister. Par défaut, Salome propose ``/tmp``. Ce choix peut être modifié, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. C'est dans ce répertoire que seront exportés les maillages au format MED, dans des fichiers de nom ``maill.xx.med``, où ``xx`` est un numéro d'ordre créé automatiquement ; ces noms de fichiers seront visibles dans l'arbre d'études.
+Le répertoire est celui qui contiendra les fichiers produits par les adaptations successives. Ce répertoire doit exister. Par défaut, Salome propose ``/tmp``. Ce choix peut être modifié, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. C'est dans ce répertoire que seront exportés les maillages au format MED, dans des fichiers de nom ``maill.xx.med``, où ``xx`` est un numéro d'ordre créé automatiquement ; ces noms de fichiers seront visibles dans l'arbre d'études.
 
 .. image:: images/create_case_2.png
    :align: center
 
 .. index:: single: maillage;initial
 .. index:: single: MED
+
 Le maillage initial
 """""""""""""""""""
-Le maillage initial doit se trouver dans un fichier au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Mais il peut également avoir été créé avec le module SMESH et exporté au format MED. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
+Le maillage initial doit se trouver dans un fichier au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Mais il peut également avoir été créé avec le module SMESH et exporté au format MED. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
 
 .. image:: images/create_case_3.png
    :align: center
@@ -38,30 +41,74 @@ Le maillage initial doit se trouver dans un fichier au format MED. Classiquement
   Le fichier ne doit contenir qu'un seul maillage.
 
 .. warning::
-  Le maillage ne doit pas être lui-même le produit d'une adaptation de maillage par HOMARD, sous peine de perdre la cohérence entre les différents niveaux de raffinement/déraffinement
+  Le maillage ne doit pas être lui-même le produit d'une adaptation de maillage par HOMARD, sous peine de perdre la cohérence entre les différents niveaux de raffinement/déraffinement
+
+.. index:: single: type de conformité
 
-.. index:: single: type de conformité
-Le type de conformité
+Le type de conformité
 """""""""""""""""""""
-Les itérations qui seront définies pour ce cas devront respecter le même comportement vis-à-vis de la conformité.
+Les itérations qui seront calculées pour ce cas devront toutes respecter le même comportement vis-à-vis de la conformité.
 
-L'option par défaut, 'conforme', implique que les maillages produits par HOMARD seront conformes au sens des éléments finis. C'est le choix classique de la plupart des logiciels de simulation par éléments finis.
+L'option par défaut, 'conforme', implique que les maillages produits par HOMARD seront conformes au sens des éléments finis. C'est le choix classique de la plupart des logiciels de simulation par éléments finis.
 
-Si le calcul est possible avec des maillages non conforme, on a le choix entre 3 possibilités :
+Néanmoins, si le calcul est possible avec des maillages non conformes, on a le choix entre 3 possibilités :
 
 .. image:: images/create_case_4.png
    :align: center
 
-* 1 noeud par maille : une maille ne peut posséder qu'un seul noeud de non conformité avec ses voisines.
-* 1 noeud par arête : chaque arête d'une maille peut être découpée sans que la maille voisine par cette arête ne le soit.
-* quelconque : aucune limitation sur les raccords de conformité d'une maille à l'autre.
+* 1 noeud par maille : une maille ne peut posséder qu'un seul noeud de non conformité avec ses voisines.
+* 1 noeud par arête : chaque arête d'une maille peut être découpée sans que la maille voisine par cette arête ne le soit.
+* quelconque : aucune limitation sur les raccords de conformité d'une maille à l'autre.
 
-.. index:: single: arbre d'étude
-L'arbre d'étude
-"""""""""""""""
-A l'issue de cette création de cas, l'arbre d'études a été enrichi de ce nouveau cas. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni.
+.. index:: single: frontière
+
+Les frontières courbes
+""""""""""""""""""""""
+Quand le bord du domaine est courbe, HOMARD sait placer les nouveaux noeuds sur ces frontières pour éviter des singularités artificielles. Cette technique est aussi applicable à une courbure intérieure à un domaine.
+
+Deux cas de figure sont présents :
+
+* courbe 1D : cette courbe peut être définie dans un plan, par exemple pour un calcul 2D. Elle peut également être définie dans l'espace 3D, par exemple pour l'intersection de deux surfaces. Une ligne à suivre est décrite de manière discrète.
+* surface : une surface à suivre est décrite de manière analytique.
+
+On cochera le ou les boutons voulus :
 
 .. image:: images/create_case_5.png
    :align: center
 
+La définition des frontières est décrite dans :ref:`gui_create_boundary`.
+
+.. index:: single: pyramide
+
+Les options avancées
+""""""""""""""""""""
+Par défaut, aucune option avancée n'est active.
+
+Néanmoins, on peut définir une oprion avancée :
+
+.. image:: images/create_case_7.png
+   :align: center
+
+Par défaut, HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
+   - mailles-points
+   - segments
+   - triangles
+   - quadrangles
+   - tétraèdres
+   - hexaèdres
+   - prismes
+Si le maillage initial comporte des pyramides, il y a arrêt en erreur. Toutefois, si on est certain que les raffinements ultérieurs ne toucheront aucune des arêtes des pyramides, on cochera la case "Pyramides autorisées". Les adaptations se dérouleront normalement et les pyramides seront restituées telles quelles dans le maillage final.
+
+L'arbre d'étude
+"""""""""""""""
+A l'issue de cette création de cas, l'arbre d'études a été enrichi de ce nouveau cas. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni.
+
+.. image:: images/create_case_6.png
+   :align: center
+
+
+
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter :ref:`tui_create_case`
 
index c3e5c3d5419c8dc0b04a6e063106ed6da454a11a..a3bb4b1d69afb9fb524452d44adec212f70b3661 100644 (file)
@@ -1,55 +1,59 @@
 .. _gui_create_hypothese:
 
-L'hypothèse
+L'hypothèse
 ===========
-.. index:: single: hypothèse
+.. index:: single: hypothèse
 
-L'hypothèse contient toutes les paramètres de pilotage d'une adaptation d'un maillage. Cette opération permet de réaliser l'itération à laquelle elle est attachée. 
+L'hypothèse contient toutes les paramètres de pilotage d'une adaptation d'un maillage. Cette opération permet de réaliser l'itération à laquelle elle est attachée.
 
-Il existe trois classes d'hypothèses :
+Il existe trois classes d'hypothèses :
 
   - Uniforme sur tout le maillage,
   - Selon un champ,
-  - En fonction de zone géométrique. 
+  - En fonction de zone géométrique.
 
 .. image:: images/create_hypothese_1.png
    :align: center
 
 
-Nom de l'hypothèse
+Nom de l'hypothèse
 """"""""""""""""""
-Un nom de l'hypothèse est proposé automatiquement : Hypo_0, Hypo_1, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une hypothèse précédente.
+Un nom de l'hypothèse est proposé automatiquement : Hypo_1, Hypo_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une hypothèse précédente.
 
 Adaptation uniforme
 """""""""""""""""""
-Par défaut on propose un raffinement uniforme. Quand on part d'un maillage qui a déjà été raffiné, l'option de déraffinement supprimera les mailles produites.
+Par défaut on propose un raffinement uniforme. Quand on part d'un maillage qui a déjà été raffiné, l'option de déraffinement supprimera les mailles produites.
 
 Adaptation selon un champ
 """""""""""""""""""""""""
 
 .. note::
-  Pour pouvoir adapter le maillage selon un champ il faut avoir au préalable indiqué dans la fenêtre de construction de l'itération le fichier med contenant le champ.
+  Pour pouvoir adapter le maillage selon un champ il faut avoir au préalable désigné le fichier med contenant le champ. Cela se fait dans la fenêtre de construction de l'itération (voir :ref:`gui_create_iteration`). Le nom du fichier qui a été sélectionné est affiché sans modification possible ici :
 
-Le nom du fichier qui a été sélectionné est affiché sans modification possible dans cette fenêtre. Le champ voulu est à choisir dans la liste qui s'affiche. 
-
-.. image:: images/create_hypothese_4.png
+.. image:: images/create_hypothese_ch_1.png
    :align: center
 
-Une fois ce champ choisi, la liste des ses composantes s'affiche. Il suffit de désigner la (ou les) composantes désirées. Si l'on choisi une seule composante, par défaut, c'est sa valeur absolue qui sera utilisée, mais il est possible d'utiliser la valeur relative. Dans le cas de plusieurs composantes, par défaut HOMARD utilisera la norme L2 (euclidienne). On peut toutefois choisir d'utiliser la norme infinie (le max des valeurs absolues des composantes).
+Le champ voulu est à choisir dans la liste des champs contenus dans le fichier.
+Une fois ce champ choisi, la liste des ses composantes s'affiche. Il suffit de désigner la (ou les) composantes désirées.
+
+Si l'on choisit une seule composante, par défaut, c'est sa valeur absolue qui sera utilisée, mais il est possible d'utiliser la valeur relative. Dans le cas de plusieurs composantes, par défaut HOMARD utilisera la norme L2 (euclidienne). On peut toutefois choisir d'utiliser la norme infinie (le max des valeurs absolues des composantes).
 
-.. image:: images/create_hypothese_5.png
+On peut choisir de ne pas utiliser directement le champ, mais sa variation d'un élément à ses voisins. Pour cela, on activera le bouton "*Saut entre éléments*".
+
+.. image:: images/create_hypothese_ch_2.png
    :align: center
 
-Le raffinement se fait selon un seuil qui définit un critère haut de raffinement. Toutes les mailles pour lesquels l’indicateur est supérieur à ce critère seront raffinées.
-Pour le choix du critère, trois variantes sont possibles :
 
-  - selon un pourcentage de mailles à raffiner, nombre réel compris entre 0 et 100 ; HOMARD raffinera les x% des mailles qui ont la plus grande valeur du champ.
-  - selon une valeur relative du champ, nombre compris entre 0 et 100 ; HOMARD raffinera les mailles où le champ est supérieur à x% de l'intervalle [mini,maxi].
-  - selon une valeur absolue ; toutes les mailles avec une valeur de champ supérieure à cette valeur seront raffinées.
+Le raffinement se fait selon un seuil qui définit un critère haut de raffinement. Toutes les mailles pour lesquelles l'indicateur est supérieur à ce critère seront raffinées.
+Pour le choix du critère, trois variantes sont possible :
+
+  - selon un pourcentage de mailles à raffiner, nombre réel compris entre 0 et 100 ; HOMARD raffinera les x% des mailles qui ont la plus grande valeur du champ.
+  - selon une valeur relative du champ, nombre compris entre 0 et 100 ; HOMARD raffinera les mailles où le champ est supérieur à x% de l'intervalle [mini,maxi].
+  - selon une valeur absolue ; toutes les mailles avec une valeur de champ supérieure à cette valeur seront raffinées.
 
-La même convention s'applique au déraffinement, en remplaçant supérieur par inférieur. On peut inactiver une des fonctions (raffinement ou déraffinement) en cochant le bouton ad_hoc.
+La même convention s'applique au déraffinement, en remplaçant supérieur par inférieur. On peut inactiver une des fonctions (raffinement ou déraffinement) en cochant le bouton ad_hoc.
 
-.. image:: images/create_hypothese_6.png
+.. image:: images/create_hypothese_ch_3.png
    :align: center
 
 
@@ -57,34 +61,77 @@ Adaptation selon une zone
 """""""""""""""""""""""""
 .. index:: single: zone
 
-Au démarrage, il faut créer une première zone par activation du bouton 'New' (voir :ref:`gui_create_zone`) :
+Au démarrage, il faut créer une première zone par activation du bouton "*Nouveau*" (voir :ref:`gui_create_zone`) :
 
-.. image:: images/create_hypothese_2.png
+.. image:: images/create_hypothese_zo_1.png
    :align: center
 
-Lorsque des zones ont déjà été créées, la liste apparaît dans la fenêtre ce qui permet de sélectionner les zones voulues. 
+Lorsque des zones ont déjà été créées, la liste apparaît dans la fenêtre, ce qui permet de sélectionner les zones voulues. On doit alors préciser si une zone est utilisée pour raffiner toutes les mailles dont une arête est contenue dans la zone, ou si la zone est utilisée pour déraffiner les mailles intérieures à la zone. Si aucun choix n'est fait, la zone est ignorée dans cette hypothèse.
 
-.. image:: images/create_hypothese_3.png
+.. image:: images/create_hypothese_zo_2.png
    :align: center
 
 
 Filtrage par les groupes
 """"""""""""""""""""""""
-.. index:: single: zone
+.. index:: single: groupe
+
+On peut restreindre l'application de l'hypothèse d'adaptation à des groupes. Ainsi les mailles n'appartenant pas à ces groupes ne seront pas modidiées, sauf par contamination ultérieure du raffinement pour assurer la conformité du maillage final.
+On coche le bouton associé :
+
+.. image:: images/create_hypothese_gr_1.png
+   :align: center
+
+La liste des groupes de mailles présents dans le maillage est affichée. Il suffit de cocher ceux voulus pour restreindre l'hypothèse d'adaptation.
+
+.. image:: images/create_hypothese_gr_2.png
+   :align: center
+
+
+Interpolation de champs
+"""""""""""""""""""""""
+.. index:: single: interpolation
 
-Après l'activation du filtrage par les groupes, la liste des groupes de mailles présents dans le maillage est affichée. Il suffit de cocher ceux voulus pour restreindre l'hypothèse d'adaptation.
+.. note::
+  Pour pouvoir interpoler un champ de l'ancien vers le nouveau maillage, il faut avoir au préalable désigné le fichier med contenant le champ. Cela se fait dans la fenêtre de construction de l'itération (voir :ref:`gui_create_iteration`).
+
+Par défaut, aucun champ n'est interpolé. A contrario, on peut demander l'interpolation de tous les champs présents dans le fichier fourni :
+
+.. image:: images/create_hypothese_ch_4.png
+   :align: center
+
+Si on veut choisir les champs à interpoler, il faut les cocher dans la liste de tous les champs présents dans le fichier fourni :
+
+.. image:: images/create_hypothese_ch_5.png
+   :align: center
 
-.. image:: images/create_hypothese_8.png
+
+Les options avancées
+""""""""""""""""""""
+Si la case "Options avancées" n'est pas cochée, aucune contrainte supplémentaire n'est définie.
+Si la case est cochée, on définira les options avancées.
+
+Une première série d'options portent sur la finesse maximale de maillage que l'on ne veut pas dépasser. Deux directives sont possibles, séparément ou ensemble. On peut imposer une taille de maille minimale : une maille dont le diamètre est inférieur à cette limite ne sera plus découpée. Par défaut, on propose un diamètre minimal nul, ce qui revient à ne rien imposer. On peut imposer un niveau de raffinement maximal. Par défaut, le maximum est à 99, ce qui équivaut en général à ne rien imposer.
+
+La seconde série d'options n'a d'intérêt que dans le cas où l'adaptation est piloté par un champ et que ce champ n'est pas défini partout dans le maillage. Cela arrive par exemple quand on construit un champ basé sur une distance dans un plan alors que le domaine est 3D : le champ ne sera pas défini sur les noeuds hors du plan. Pour de tels champs, cette option permet de préciser le comportement que l'on souhaite dans les régions où le champ n'est pas défini. Par défaut, il ne se passe rien : les mailles sont gardées telles quelles. On peut choisir les deux autres variantes : raffiner, toutes les mailles seront a priori coupées, ou déraffiner, toutes les mailles seront candidates au déraffinement.
+
+
+.. image:: images/create_hypothese_av_1.png
    :align: center
 
+.. index:: single: arbre d'étude
 
-L'arbre d'étude
+L'arbre d'étude
 """""""""""""""
-.. index:: single: arbre d'étude
+.. index:: single: arbre d'étude
 
-L'arbre d'études contient les hypothèses créées et les itérations qui les utilisent. La description des zones qui leur sont éventuellement attachées est présente.
+L'arbre d'études contient les hypothèses créées et les itérations qui les utilisent. La description des zones qui leur sont éventuellement attachées est présente.
 
-.. image:: images/create_hypothese_7.png
+.. image:: images/create_hypothese_2.png
    :align: center
 
 
+
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter :ref:`tui_create_hypothese`
index 6d0675703d029635d354f8368221c64ddd3554b1..0b662fd0a6959842d9443b4a3184f681be7d930e 100644 (file)
@@ -1,74 +1,83 @@
 .. _gui_create_iteration:
 
-L'itération
+L'itération
 ===========
-.. index:: single: itération
-La définition d'une itération se fait par la donnée des informations suivantes :
+.. index:: single: itération
 
-  - L'itération précédente
-  - Le nom du maillage résultat
-  - L'hypothèse utilisée
+La définition d'une itération se fait par la donnée des informations suivantes :
+
+  - L'itération précédente
+  - Le nom du maillage résultat
+  - L'hypothèse utilisée
   - Eventuellement, le fichier du champ d'indicateurs d'erreur
 
 .. image:: images/create_iteration_1.png
    :align: center
 
-
-Le nom de l'itération
+Le nom de l'itération
 """""""""""""""""""""
-Un nom de cas est proposé automatiquement : Iter_0, Iter_1, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une itération précédente.
+Un nom de cas est proposé automatiquement : Iter_1, Iter_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une itération précédente.
 
-L'itération précédente
+L'itération précédente
 """"""""""""""""""""""
-L'itération précédente est choisie dans l'arbre d'étude. Le nom du maillage correspondant sera affiché.
+L'itération précédente est choisie dans l'arbre d'étude. Le nom du maillage correspondant sera affiché.
+
+.. index:: single: maillage;résultat
 
-.. index:: single: maillage;résultat
-Le nom du maillage résultat
+Le nom du maillage résultat
 """""""""""""""""""""""""""
-L'itération en cours de création produira un maillage. Ce maillage sera connu sous un nom. Ce nom est fourni en le tapant dans la zone de texte. Par défaut, on propose un nom identique à celui de l'itération précédente.
+L'itération en cours de création produira un maillage. Ce maillage sera connu sous un nom. Ce nom est fourni en le tapant dans la zone de texte. Par défaut, on propose un nom identique à celui de l'itération précédente.
 
-.. index:: single: hypothèse
-L'hypothèse utilisée
-""""""""""""""""""""
-L'itération en cours pilotera l'adaptation par HOMARD selon un scénario défini dans une hypothèse. Celle-ci est choisi dans la liste
+.. index:: single: champ
+.. index:: single: MED
+
+Le champ
+""""""""
+Pour créer ou utiliser une hypothèse d'adaptation basée sur un champ exprimé sur le maillage, on doit fournir le fichier où se trouve le champ. C'est également le cas si on veut interpoler des champs du maillage n au maillage n+1. Ce fichier est au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
 
-Au démarrage, il faut créer une première hypothèse par activation du bouton 'New' (voir :ref:`gui_create_hypothese`) :
 
 .. image:: images/create_iteration_2.png
    :align: center
 
-Ensuite, il faut éventuellement créer une nouvelle hypothèse par activation du bouton 'New', puis sélectionner celle voulue dans la liste proposée :
+Dans le cas où des pas de temps ont été définis, une solution simple consiste à traiter les champs au dernier pas de temps enregistré dans le fichier. Si on veut définir un autre pas de temps, on coche le bouton "*Pas de temps choisi*". Les valeurs de 'Pas de temps' et de 'Numéro d'ordre' sont celles correspondant à la convention MED (time step / rank). Ces valeurs dépendent de la logique qui a été retenue par le logiciel qui a écrit le fichier. Souvent ces deux valeurs sont identiques mais il arrive que l'on disjoigne les pas de temps et les intervalles d'archivage.
 
 .. image:: images/create_iteration_3.png
    :align: center
 
+.. index:: single: hypothèse
 
-.. note::
-  Si on envisage une adaptation selon les valeurs d'un champ sur le maillage, il faut avoir renseigné les informations sur ce champ avant de créer une nouvelle hypothèse.
-
-.. index:: single: champ
-.. index:: single: MED
-Le champ
-""""""""
-Pour créer ou utiliser une hypothèse d'adaptation basée sur un champ exprimé sur le maillage, on doit fournir le fichier où se trouve le champ. Ce fichier est au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche.
+L'hypothèse utilisée
+""""""""""""""""""""
+L'itération en cours pilotera l'adaptation par HOMARD selon un scénario défini dans une hypothèse. Celle-ci est choisie dans la liste des hypothèses existantes.
 
-Les valeurs de 'Time Step' et de 'Rank' sont celles correspondant à la convention MED.
+Au démarrage, il faut créer une première hypothèse par activation du bouton "*Nouveau*" (voir :ref:`gui_create_hypothese`) :
 
 .. image:: images/create_iteration_4.png
    :align: center
 
-.. index:: single: arbre d'étude
-L'arbre d'étude
-"""""""""""""""
-A l'issue de cette création d'itération, l'arbre d'études a été enrichi. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni, l'itération courante, identifiée par son nom. On trouve aussi l'hypothèse qui lui est attachée.
+Ensuite, si une hypothèse précédemment définie convient, il suffit de la sélectionner dans la liste proposée. Sinon, il faut créer une nouvelle hypothèse par activation du bouton "*Nouveau*", puis la sélectionner dans la liste proposée :
 
 .. image:: images/create_iteration_5.png
    :align: center
 
-Quand plusieurs itérations s'enchaînent, leur hypothèse est visible dans l'arbre d'étude. On remarquera dans la figure ci-après que deux itérations peuvent partager la même hypothèse.
+
+.. note::
+  Si on envisage une adaptation selon les valeurs d'un champ sur le maillage, il faut avoir renseigné les informations sur ce champ avant de créer une nouvelle hypothèse.
+
+.. index:: single: arbre d'étude
+
+L'arbre d'étude
+"""""""""""""""
+A l'issue de cette création d'itération, l'arbre d'études a été enrichi. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni, l'itération courante, identifiée par son nom. On trouve aussi l'hypothèse qui lui est attachée. L'icône en regard de l'itération permet de différencier les itérations calculées ou non.
 
 .. image:: images/create_iteration_6.png
    :align: center
 
+Quand plusieurs itérations s'enchaînent, leur hypothèse est visible dans l'arbre d'étude. On remarquera dans la figure ci-après que deux itérations peuvent partager la même hypothèse.
 
+.. image:: images/create_iteration_7.png
+   :align: center
 
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter :ref:`tui_create_iteration`
index 083438396e3b045b30be69734f464255e8316d18..b57e47250062bce21a96f533723449d11d43e746 100644 (file)
@@ -3,38 +3,99 @@
 La zone
 =======
 .. index:: single: zone
+.. index:: single: 2D
 
-L'objet zone contient toutes les définitions géométriques permettant de décrire une zone à raffiner. 
+L'objet zone contient toutes les définitions géométriques permettant de décrire une zone à raffiner.
 
-Il existe deux types de zone :
+En 3D, il existe quatre types de zone :
 
-  - Parallélépipède
-  - Sphère
+  - Parallélépipède
+  - Cylindre
+  - Tuyau
+  - Sphère
+
+Leurs analogues en 2D sont :
+
+  - Rectangle
+  - Disque
+  - Disque percé
+
+Le principe du raffinement selon des zones est le suivant. Chaque arête de maille dont les deux extrémités
+sont incluses dans une même zone sera coupée. Ensuite HOMARD applique l'algorithme de traitement de la
+conformité pour produire un maillage correct.
+
+.. note::
+  Les valeurs proposées par défaut pour les dimensions des zones tiennent compte de la géométrie du maillage.
 
 Nom de la zone
 """"""""""""""
-Un nom de zone est proposé automatiquement : Zone_0, Zone_1, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une zone précédente.
+Un nom de zone est proposé automatiquement : Zone_1, Zone_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été déjà utilisé pour une autre zone.
 
-Un parallélépipède
+Un parallélépipède
 """"""""""""""""""
 .. index:: single: boite
 
-Le parallélépipède est forcément parallèle aux axes de coordonnées, il est défini par ses extrêmes dans chaque direction.
+Le parallélépipède est obligatoirement parallèle aux axes de coordonnées. Il est défini par ses extrêmes dans chaque direction.
 
 .. image:: images/create_zone_1.png
    :align: center
 
-Une sphère
+Un cylindre
+"""""""""""
+.. index:: single: cylindre
+
+Le cylindre est défini par son axe, un point de base positionné sur l'axe, sa hauteur et son rayon. L'axe est défini par un vecteur qui doit être correctement orienté : on retiendra le volume partant de la base dans la direction du vecteur jusqu'à la hauteur retenue. La norme de ce vecteur n'est pas nécessairement égale à 1.
+
+.. image:: images/create_zone_2.png
+   :align: center
+
+Un tuyau
+""""""""
+.. index:: single: tuyau
+
+Le cylindre est défini par son axe, un point de base positionné sur l'axe, sa hauteur et ses rayons interne et externe. L'axe est défini par un vecteur qui doit être correctement orienté : on retiendra le volume partant de la base dans la direction du vecteur jusqu'à la hauteur retenue. La norme de ce vecteur n'est pas nécessairement égale à 1.
+
+.. image:: images/create_zone_3.png
+   :align: center
+
+Une sphère
 """"""""""
 .. index:: single: sphere
 
-La sphère est définie par son centre et son rayon.
+La sphère est définie par son centre et son rayon.
 
-.. image:: images/create_zone_2.png
+.. image:: images/create_zone_4.png
    :align: center
 
-.. note::
-  Les valeurs proposées par défaut tiennent compte de la géométrie du maillage. 
+Un rectangle
+""""""""""""
+.. index:: single: rectangle
+
+Le rectangle est obligatoirement parallèle aux axes de coordonnées. Il est défini par ses extrêmes dans chacune des directions valides. La coordonnée constante est affichée pour information, mais n'est pas modifiable.
+
+.. image:: images/create_zone_21.png
+   :align: center
+
+Un disque
+"""""""""
+.. index:: single: disque
+
+Le disque est obligatoirement dans le plan des axes de coordonnées. Il est défini par son centre et son rayon. La coordonnée constante est affichée pour information, mais n'est pas modifiable.
+
+.. image:: images/create_zone_22.png
+   :align: center
+
+Un disque avec trou
+"""""""""""""""""""
+.. index:: single: disque avec trou
+
+Le disque avec trou est obligatoirement dans le plan des axes de coordonnées. Il est défini par son centre et ses rayons externe et interne. La coordonnée constante est affichée pour information, mais n'est pas modifiable.
+
+.. image:: images/create_zone_23.png
+   :align: center
 
 
 
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter :ref:`tui_create_zone`
diff --git a/doc/gui_homard.rst b/doc/gui_homard.rst
new file mode 100644 (file)
index 0000000..c4df643
--- /dev/null
@@ -0,0 +1,51 @@
+.. _gui_homard:
+
+Le calcul
+=========
+.. index:: single: itération
+.. index:: single: calcul
+
+Lancer une adaptation
+"""""""""""""""""""""
+Lancer une adaptation s'obtient en sélectionnant l'itération à calculer. Elle est repérée par une icone "en attente". On choisit ensuite "*Calculer*" dans le menu HOMARD ou à la souris.
+
+.. image:: images/lancement_1.png
+   :align: center
+
+
+.. index:: single: arbre d'étude
+
+L'arbre d'étude
+"""""""""""""""
+
+A l'issue de ce calcul, l'arbre d'études a été enrichi. L'icone devant l'itération est validée. Sous l'itération, on trouve la référence aux fichiers de résultats créés, identifiés par leur nom dans le répertoire *rep* qui a été défini à la création du cas :
+
+  - *rep*/I(n+1)/Liste.n.vers.(n+1)
+  - *rep*/I(n+1)/apad.n.vers.(n+1).bilan
+  - *rep*/maill.(n+1).med
+
+Les deux premiers fichiers sont des fichiers de texte, éditables. Liste.n.vers.(n+1) contient des informations sur le déroulement de l'adaptation : récapitulatif du mode d'adaptation, pourcentage de mailles concernées, etc. Le fichier apad.n.vers.(n+1).bilan est un résumé des caractéristiques du maillage obtenus.
+Le fichier maill.(n+1).med est celui qui contient le maillage produit au format MED. On retrouve ce maillage dans la section de l'arbre d'études du module SMESH. Il est alors visible dans ce module et utilisable ensuite comme tout autre maillage.
+
+
+.. image:: images/lancement_2.png
+   :align: center
+
+Consulter le résultat d'une adaptation
+""""""""""""""""""""""""""""""""""""""
+Les deux fichiers de texte, Liste.n.vers.(n+1) et apad.n.vers.(n+1).bilan, sont visibles en les sélectionnant. On choisit ensuite "*Afficher le fichier*" dans le menu HOMARD ou à la souris.
+
+.. image:: images/lancement_3.png
+   :align: center
+
+
+
+.. note::
+  Par défaut, le calcul est lancé avec l'exécutable de HOMARD installé avec Salome. Si on souhaite utiliser une version privée de HOMARD, pour tester une évolution par exemple, il faut préciser où le nouvel exécutable est disponible. Pour cela, il faut renseigner deux variables d'environnement.
+  "*HOMARD_REP_EXE_PRIVATE*" définit le répertoire dans lequel se trouve l'exécutable voulu.
+  "*HOMARD_EXE_PRIVATE*" définit le nom de l'exécutable dans ce répertoire, si ce nom est différent de "*homard*".
+
+Méthodes python correspondantes
+"""""""""""""""""""""""""""""""
+Consulter :ref:`tui_create_iteration`
+
index e7a58f8d64b4ec3b61b40842b08e20a9c6f1d2f0..81e7bf599441d68bb46b2cd56f486f44dbcdb975 100644 (file)
@@ -1,32 +1,29 @@
+.. _gui_usage:
+
 Mode d'emploi pour l'interface graphique
 ========================================
 .. index:: single: cas
-.. index:: single: itération
+.. index:: single: itération
 
 Activer le module HOMARD
 """"""""""""""""""""""""
-Pour utiliser le module HOMARD, deux façons existent :
+Pour utiliser le module HOMARD, deux façons existent :
 
 #. en activant l'onglet HOMARD dans la liste des modules,
 #. en cliquant sur le bouton HOMARD dans la barre d'outils.
 
-L'utilisateur a alors le choix entre créer une nouvelle étude ou en ouvrir une qui a été précédemment enregistrée.
-
-Définir une adaptation
-""""""""""""""""""""""
+L'utilisateur a alors le choix entre créer une nouvelle étude ou en ouvrir une qui a été précédemment enregistrée, selon le principe qui a été retenu pour tous les autres modules de Salome.
 
-Une fois que HOMARD a été activé, la permière action consiste à créer un cas. Il s'agit de sélectionner le maillage initial de la suite d'adaptations envisagée (voir :ref:`gui_create_case`). A partir de ce cas, on définira les itérations successives (voir :ref:`gui_create_iteration`) à partir des hypothèses (voir :ref:`gui_create_hypothese`).
+.. image:: images/homard_1.png
+   :align: center
 
-Récupérer le résultat d'une adaptation
-""""""""""""""""""""""""""""""""""""""
-Le résultat d'une adaptation s'obtient en sélectionnant l'itération à calculer. On sélectionne ensuite *Lancement* dans le menu HOMARD.
+Définir une adaptation
+""""""""""""""""""""""
 
-.. image:: images/lancement_1.png
-   :align: center
+Une fois que HOMARD a été activé, la permière action consiste à créer un cas. Il s'agit de sélectionner le maillage initial de la suite d'adaptations envisagée (voir :ref:`gui_create_case`). A partir de ce cas, on définira les itérations successives (voir :ref:`gui_create_iteration`) à partir des hypothèses (voir :ref:`gui_create_hypothese`). Les adaptations sont lancées tel que décrit dans :ref:`gui_homard`.
 
-Le fichier contenant le maillage produit est visible dans l'arbre d'études.
 
-Mode d'emploi de la saisie des données
+Mode d'emploi de la saisie des données
 """"""""""""""""""""""""""""""""""""""
 
 .. toctree::
@@ -36,4 +33,6 @@ Mode d'emploi de la saisie des données
    gui_create_iteration
    gui_create_hypothese
    gui_create_zone
+   gui_create_boundary
+   gui_homard
 
diff --git a/doc/images/create_boundary_1.png b/doc/images/create_boundary_1.png
new file mode 100644 (file)
index 0000000..0460d48
Binary files /dev/null and b/doc/images/create_boundary_1.png differ
diff --git a/doc/images/create_boundary_an_1.png b/doc/images/create_boundary_an_1.png
new file mode 100644 (file)
index 0000000..09630eb
Binary files /dev/null and b/doc/images/create_boundary_an_1.png differ
diff --git a/doc/images/create_boundary_an_2.png b/doc/images/create_boundary_an_2.png
new file mode 100644 (file)
index 0000000..25c6e9b
Binary files /dev/null and b/doc/images/create_boundary_an_2.png differ
diff --git a/doc/images/create_boundary_an_3.png b/doc/images/create_boundary_an_3.png
new file mode 100644 (file)
index 0000000..6f38d9f
Binary files /dev/null and b/doc/images/create_boundary_an_3.png differ
diff --git a/doc/images/create_boundary_an_4.png b/doc/images/create_boundary_an_4.png
new file mode 100644 (file)
index 0000000..abf1042
Binary files /dev/null and b/doc/images/create_boundary_an_4.png differ
diff --git a/doc/images/create_boundary_an_cy.png b/doc/images/create_boundary_an_cy.png
new file mode 100644 (file)
index 0000000..e3fef85
Binary files /dev/null and b/doc/images/create_boundary_an_cy.png differ
diff --git a/doc/images/create_boundary_an_sp.png b/doc/images/create_boundary_an_sp.png
new file mode 100644 (file)
index 0000000..27b9443
Binary files /dev/null and b/doc/images/create_boundary_an_sp.png differ
diff --git a/doc/images/create_boundary_di_1.png b/doc/images/create_boundary_di_1.png
new file mode 100644 (file)
index 0000000..8f80605
Binary files /dev/null and b/doc/images/create_boundary_di_1.png differ
diff --git a/doc/images/create_boundary_di_2.png b/doc/images/create_boundary_di_2.png
new file mode 100644 (file)
index 0000000..d952eda
Binary files /dev/null and b/doc/images/create_boundary_di_2.png differ
diff --git a/doc/images/create_boundary_di_3.png b/doc/images/create_boundary_di_3.png
new file mode 100644 (file)
index 0000000..01195a1
Binary files /dev/null and b/doc/images/create_boundary_di_3.png differ
index c9c88c52f9eaccda851e04e44f0b33d2926209fb..ddef5000d09e45e3b401472f8a35eaf0433c4f51 100644 (file)
Binary files a/doc/images/create_case_1.png and b/doc/images/create_case_1.png differ
index 206407890ebe8dc91ebc9fa137642d9c88e4372d..435a518638f31129b060c3136bfa2151282cdad0 100644 (file)
Binary files a/doc/images/create_case_2.png and b/doc/images/create_case_2.png differ
index 8f9e05121af99e2b593ce0f9642c32e8e7e64326..eba3197175eb469f5d2ba4475461cc73ae4af7bd 100644 (file)
Binary files a/doc/images/create_case_3.png and b/doc/images/create_case_3.png differ
index d4e1089e873885bdd69cf78d120dd2c4680755c2..3429fd65584c7c5261f010b020675b56767c3471 100644 (file)
Binary files a/doc/images/create_case_4.png and b/doc/images/create_case_4.png differ
index e607d9b41e8049b21a81777aad88cfefcb73fd9e..418535b5505f38946e1ab77cc1c1bb4497a356ba 100644 (file)
Binary files a/doc/images/create_case_5.png and b/doc/images/create_case_5.png differ
diff --git a/doc/images/create_case_6.png b/doc/images/create_case_6.png
new file mode 100644 (file)
index 0000000..c598729
Binary files /dev/null and b/doc/images/create_case_6.png differ
diff --git a/doc/images/create_case_7.png b/doc/images/create_case_7.png
new file mode 100644 (file)
index 0000000..766430f
Binary files /dev/null and b/doc/images/create_case_7.png differ
index 4239c3350359c403fcdecd5b81552fec789916a6..7c6eb1976856278e3dd28ef7c2e246885808f288 100644 (file)
Binary files a/doc/images/create_hypothese_1.png and b/doc/images/create_hypothese_1.png differ
index d5a7ee220a3cb9990eb61cf146ec98e7f4bc1133..fbb434b268e8ce36f5989b728859484c8c326fe2 100644 (file)
Binary files a/doc/images/create_hypothese_2.png and b/doc/images/create_hypothese_2.png differ
diff --git a/doc/images/create_hypothese_3.png b/doc/images/create_hypothese_3.png
deleted file mode 100644 (file)
index d8b6ecd..0000000
Binary files a/doc/images/create_hypothese_3.png and /dev/null differ
diff --git a/doc/images/create_hypothese_4.png b/doc/images/create_hypothese_4.png
deleted file mode 100644 (file)
index 52b0a3c..0000000
Binary files a/doc/images/create_hypothese_4.png and /dev/null differ
diff --git a/doc/images/create_hypothese_5.png b/doc/images/create_hypothese_5.png
deleted file mode 100644 (file)
index 76879ad..0000000
Binary files a/doc/images/create_hypothese_5.png and /dev/null differ
diff --git a/doc/images/create_hypothese_6.png b/doc/images/create_hypothese_6.png
deleted file mode 100644 (file)
index bed6fce..0000000
Binary files a/doc/images/create_hypothese_6.png and /dev/null differ
diff --git a/doc/images/create_hypothese_7.png b/doc/images/create_hypothese_7.png
deleted file mode 100644 (file)
index cdcb199..0000000
Binary files a/doc/images/create_hypothese_7.png and /dev/null differ
diff --git a/doc/images/create_hypothese_8.png b/doc/images/create_hypothese_8.png
deleted file mode 100644 (file)
index c1ef185..0000000
Binary files a/doc/images/create_hypothese_8.png and /dev/null differ
diff --git a/doc/images/create_hypothese_av_1.png b/doc/images/create_hypothese_av_1.png
new file mode 100644 (file)
index 0000000..d6eae0a
Binary files /dev/null and b/doc/images/create_hypothese_av_1.png differ
diff --git a/doc/images/create_hypothese_ch_1.png b/doc/images/create_hypothese_ch_1.png
new file mode 100644 (file)
index 0000000..392ef7b
Binary files /dev/null and b/doc/images/create_hypothese_ch_1.png differ
diff --git a/doc/images/create_hypothese_ch_2.png b/doc/images/create_hypothese_ch_2.png
new file mode 100644 (file)
index 0000000..ce3d944
Binary files /dev/null and b/doc/images/create_hypothese_ch_2.png differ
diff --git a/doc/images/create_hypothese_ch_3.png b/doc/images/create_hypothese_ch_3.png
new file mode 100644 (file)
index 0000000..d1f146c
Binary files /dev/null and b/doc/images/create_hypothese_ch_3.png differ
diff --git a/doc/images/create_hypothese_ch_4.png b/doc/images/create_hypothese_ch_4.png
new file mode 100644 (file)
index 0000000..b48f651
Binary files /dev/null and b/doc/images/create_hypothese_ch_4.png differ
diff --git a/doc/images/create_hypothese_ch_5.png b/doc/images/create_hypothese_ch_5.png
new file mode 100644 (file)
index 0000000..4151dd8
Binary files /dev/null and b/doc/images/create_hypothese_ch_5.png differ
diff --git a/doc/images/create_hypothese_gr_1.png b/doc/images/create_hypothese_gr_1.png
new file mode 100644 (file)
index 0000000..34f937f
Binary files /dev/null and b/doc/images/create_hypothese_gr_1.png differ
diff --git a/doc/images/create_hypothese_gr_2.png b/doc/images/create_hypothese_gr_2.png
new file mode 100644 (file)
index 0000000..3153ad4
Binary files /dev/null and b/doc/images/create_hypothese_gr_2.png differ
diff --git a/doc/images/create_hypothese_zo_1.png b/doc/images/create_hypothese_zo_1.png
new file mode 100644 (file)
index 0000000..0b4f025
Binary files /dev/null and b/doc/images/create_hypothese_zo_1.png differ
diff --git a/doc/images/create_hypothese_zo_2.png b/doc/images/create_hypothese_zo_2.png
new file mode 100644 (file)
index 0000000..09353cf
Binary files /dev/null and b/doc/images/create_hypothese_zo_2.png differ
index 3160a9acd2bb82c6cb298972b1bb871d6477a9f4..affb0286ebc3d9ee91d6d42c744a33192168862e 100644 (file)
Binary files a/doc/images/create_iteration_1.png and b/doc/images/create_iteration_1.png differ
index f0b4d5aeee4049b0531358d8ac71ab7c023cc448..3c02793fa3681863a3d985fe93880b965bc1821b 100644 (file)
Binary files a/doc/images/create_iteration_2.png and b/doc/images/create_iteration_2.png differ
index 414c6db65d1ba04a510321d52c6327e1590d5f7e..a00ede7f2f6b3c6cff8ae50d50d1bb0def4a2eb5 100644 (file)
Binary files a/doc/images/create_iteration_3.png and b/doc/images/create_iteration_3.png differ
index 6a277af642d7ea247fb13f3925100e1b8e07912e..43665308ebc852aeea3c1df060f528be8b53952c 100644 (file)
Binary files a/doc/images/create_iteration_4.png and b/doc/images/create_iteration_4.png differ
index 51db52b5f1257b077282aba8512699c499d7f879..92a9ab00a498cb51699a138ee5a7c2edc70eb742 100644 (file)
Binary files a/doc/images/create_iteration_5.png and b/doc/images/create_iteration_5.png differ
index cdcb199e5637ef05266968c57a92e6efe61ffea9..339e1e10a97a696f33394797de6db4292c720286 100644 (file)
Binary files a/doc/images/create_iteration_6.png and b/doc/images/create_iteration_6.png differ
diff --git a/doc/images/create_iteration_7.png b/doc/images/create_iteration_7.png
new file mode 100644 (file)
index 0000000..8816eef
Binary files /dev/null and b/doc/images/create_iteration_7.png differ
index e58f862f34707947451ec5df7390a58760df9059..aa32ef17b2c07e0b02e5c01453b90e84d8726cb0 100644 (file)
Binary files a/doc/images/create_zone_1.png and b/doc/images/create_zone_1.png differ
index d856c0b368805301ecd02a49ed771dafc91edc57..1664d52f4076a1b8074f991e9a2312d04909488a 100644 (file)
Binary files a/doc/images/create_zone_2.png and b/doc/images/create_zone_2.png differ
diff --git a/doc/images/create_zone_21.png b/doc/images/create_zone_21.png
new file mode 100644 (file)
index 0000000..8d156f1
Binary files /dev/null and b/doc/images/create_zone_21.png differ
diff --git a/doc/images/create_zone_22.png b/doc/images/create_zone_22.png
new file mode 100644 (file)
index 0000000..f27faaa
Binary files /dev/null and b/doc/images/create_zone_22.png differ
diff --git a/doc/images/create_zone_23.png b/doc/images/create_zone_23.png
new file mode 100644 (file)
index 0000000..8bce36d
Binary files /dev/null and b/doc/images/create_zone_23.png differ
diff --git a/doc/images/create_zone_3.png b/doc/images/create_zone_3.png
new file mode 100644 (file)
index 0000000..abaf406
Binary files /dev/null and b/doc/images/create_zone_3.png differ
diff --git a/doc/images/create_zone_4.png b/doc/images/create_zone_4.png
new file mode 100644 (file)
index 0000000..26955a8
Binary files /dev/null and b/doc/images/create_zone_4.png differ
diff --git a/doc/images/homard_1.png b/doc/images/homard_1.png
new file mode 100644 (file)
index 0000000..8000688
Binary files /dev/null and b/doc/images/homard_1.png differ
diff --git a/doc/images/intro_3.png b/doc/images/intro_3.png
new file mode 100644 (file)
index 0000000..64be42a
Binary files /dev/null and b/doc/images/intro_3.png differ
diff --git a/doc/images/intro_31.png b/doc/images/intro_31.png
new file mode 100644 (file)
index 0000000..175264e
Binary files /dev/null and b/doc/images/intro_31.png differ
diff --git a/doc/images/intro_32.png b/doc/images/intro_32.png
new file mode 100644 (file)
index 0000000..f4022ca
Binary files /dev/null and b/doc/images/intro_32.png differ
diff --git a/doc/images/intro_33.png b/doc/images/intro_33.png
new file mode 100644 (file)
index 0000000..a0bd05e
Binary files /dev/null and b/doc/images/intro_33.png differ
diff --git a/doc/images/intro_34.png b/doc/images/intro_34.png
new file mode 100644 (file)
index 0000000..9486689
Binary files /dev/null and b/doc/images/intro_34.png differ
diff --git a/doc/images/intro_35.png b/doc/images/intro_35.png
new file mode 100644 (file)
index 0000000..7287147
Binary files /dev/null and b/doc/images/intro_35.png differ
diff --git a/doc/images/intro_36.png b/doc/images/intro_36.png
new file mode 100644 (file)
index 0000000..2d363da
Binary files /dev/null and b/doc/images/intro_36.png differ
diff --git a/doc/images/intro_37.png b/doc/images/intro_37.png
new file mode 100644 (file)
index 0000000..c6f7943
Binary files /dev/null and b/doc/images/intro_37.png differ
diff --git a/doc/images/intro_38.png b/doc/images/intro_38.png
new file mode 100644 (file)
index 0000000..2d29392
Binary files /dev/null and b/doc/images/intro_38.png differ
diff --git a/doc/images/intro_39.png b/doc/images/intro_39.png
new file mode 100644 (file)
index 0000000..ad542ba
Binary files /dev/null and b/doc/images/intro_39.png differ
diff --git a/doc/images/intro_4.png b/doc/images/intro_4.png
new file mode 100644 (file)
index 0000000..5931fa4
Binary files /dev/null and b/doc/images/intro_4.png differ
diff --git a/doc/images/intro_40.png b/doc/images/intro_40.png
new file mode 100644 (file)
index 0000000..36c447a
Binary files /dev/null and b/doc/images/intro_40.png differ
diff --git a/doc/images/intro_5.png b/doc/images/intro_5.png
new file mode 100644 (file)
index 0000000..e0730d7
Binary files /dev/null and b/doc/images/intro_5.png differ
diff --git a/doc/images/intro_6.png b/doc/images/intro_6.png
new file mode 100644 (file)
index 0000000..21f79c2
Binary files /dev/null and b/doc/images/intro_6.png differ
diff --git a/doc/images/intro_7.png b/doc/images/intro_7.png
new file mode 100644 (file)
index 0000000..5e8ceec
Binary files /dev/null and b/doc/images/intro_7.png differ
diff --git a/doc/images/intro_8.gif b/doc/images/intro_8.gif
new file mode 100644 (file)
index 0000000..b11d925
Binary files /dev/null and b/doc/images/intro_8.gif differ
index 39fe8c1d46f20333d9bff7d3695a3e83a602c945..03b76a9d39464c61350b59636ca436de3bbb17a1 100644 (file)
Binary files a/doc/images/lancement_1.png and b/doc/images/lancement_1.png differ
diff --git a/doc/images/lancement_2.png b/doc/images/lancement_2.png
new file mode 100644 (file)
index 0000000..d5713d5
Binary files /dev/null and b/doc/images/lancement_2.png differ
diff --git a/doc/images/lancement_3.png b/doc/images/lancement_3.png
new file mode 100644 (file)
index 0000000..bd1eb64
Binary files /dev/null and b/doc/images/lancement_3.png differ
index bd9da0f29eca82443454322bce10af3bf883f00e..7589e93aeaf5925b846e46ea719fbe54450cfd35 100644 (file)
@@ -10,9 +10,9 @@ Documentation du composant HOMARD |logo|
 
 HOMARD est le composant qui permet l'adaptation de maillage au sein de la plateforme Salome.
 
-*HOMARD est une marque déposée d'EDF.*
+*HOMARD est une marque déposée d'EDF.*
 
-Table des matières de ce mode d'emploi
+Table des matières de ce mode d'emploi
 """"""""""""""""""""""""""""""""""""""
 
 .. toctree::
index a526864a5cc8068d55687421b6bcf0dc4d39436e..a40df79897715882445d8d721d892cb599dae69c 100644 (file)
+.. _gui_intro:
 
 Introduction
 ============
-Le logiciel HOMARD est destiné à adapter les maillages dans le cadre des codes de calculs par éléments ou volumes finis. Ce logiciel, réalisé par EDF R&D, procède par raffinement et déraffinement des maillages bidimensionnels ou tridimensionnels. Il est conçu pour être utilisé indépendamment du code de calcul auquel il est couplé.
+
+Présentation générale
+"""""""""""""""""""""
+Le logiciel HOMARD est destiné à adapter les maillages dans le cadre des codes de calculs par éléments ou volumes finis. Ce logiciel, réalisé par EDF R&D, procède par raffinement et déraffinement des maillages bidimensionnels ou tridimensionnels. Il est conçu pour être utilisé indépendamment du code de calcul auquel il est couplé.
+
+Raffiner le maillage signifie découper des mailles désignées selon des indications founies par l'utilisateur. Déraffiner le maillage signifie revenir en arrière sur des découpages précédemment réalisés : ainsi, en aucun cas HOMARD ne peut simplifier un maillage existant qui aura été créé trop fin. Le déraffinement prend toute son importance dans les calculs quand la zone d'intérêt se déplace au cours du calcul pour ne plus tenir compte de raffinements précédemment réalisés et qui deviennent inutiles. On en trouvera une illustration au bas de cette page.
+
+HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
+   - mailles-points
+   - segments
+   - triangles
+   - quadrangles
+   - tétraèdres
+   - hexaèdres
+   - prismes
+
+Ces mailles peuvent être présentes simultanément. Par exemple, HOMARD saura adapter un maillage comportant des triangles et des quadrangles.
+Les noeuds acceptés sont évidemment les noeuds qui sont les sommets des mailles, ce qui correspond à la description classique « en degré 1 » . Si les éléments sont décrits « en degré 2 », les noeuds complémentaires sont gérés. En revanche, il ne peut pas y avoir cohabitation de mailles décrites en degré 1 et d'autres décrites en degré 2. Enfin, HOMARD sait prendre en compte des noeuds isolés, qui n'appartiendraient à aucune définition de mailles : ils ressortiront tels quels du processus d'adaptation.
+
+Le cas des pyramides est à part. Pour un maillage comportant des hexaèdres ou des prismes, la mise en conformité du maillage issu du raffinement crée des pyramides pour assurer la liaison entre deux régions de niveaux de raffinement différents. Ces pyramides sont gérées comme toutes les mailles de transition et ne sont pas redécoupées par la suite. En revanche, si le maillage initial contient des pyramides, HOMARD ne saura pas l'adapter et émettra un message d'erreur. Dans certains cas particuliers, on pourra néanmoins traiter un tel maillage, comme il est décrit dans la rubrique 'Options avancées' de :ref:`gui_create_case`).
 
 Plusieurs motivations apparaissent pour adapter un maillage :
 
-  - on veut simplifier la réalisation du maillage d'une géométrie complexe : on part d’une version grossière et on confie à un processus automatique la charge de l’affiner.
-  - on veut s’assurer de la convergence de la solution numérique : plutôt que de réaliser à la main des maillages de plus en plus fins, on laisse le logiciel chercher lui-même les endroits où il faudrait affiner le maillage pour augmenter la précision du résultat.
-  - les conditions du calcul changent au cours de son déroulement : les zones qui doivent être maillées finement se déplacent. Si on maille fin partout dès le début, le maillage est trop gros. En adaptant au fur et à mesure, le maillage ne sera fin qu’aux endroits nécessaires : sa taille sera réduite et la qualité de la solution sera bonne.
+  - on veut simplifier la réalisation du maillage d'une géométrie complexe : on part d'un maillage grossier et on confie à un processus automatique la charge de le raffiner.
+  - on veut s'assurer de la convergence de la solution numérique : plutôt que de réaliser à la main des maillages de plus en plus fins, on laisse le logiciel chercher lui-même les endroits où il faudrait affiner le maillage pour augmenter la précision du résultat.
+  - les conditions du calcul changent au cours de son déroulement : les zones qui doivent être maillées finement se déplacent. Si on maille fin partout dès le début, le maillage est trop gros. En adaptant au fur et à mesure, le maillage ne sera fin qu'aux endroits nécessaires : sa taille sera réduite et la qualité de la solution sera bonne.
 
-Dans tous les cas, le principe de l’adaptation de maillage reste le même. Sur le maillage de départ, on réalise le calcul standard. A partir d’une analyse de la solution numérique obtenue, on estime l’erreur qui a été commise par rapport à la solution réelle. Cette estimation se représente par une valeur d’indicateur d’erreur dans chaque maille du calcul. A partir de là, on applique le principe suivant : les mailles où l’indicateur d’erreur est fort devraient être plus petites et réciproquement, les mailles où l’indicateur d’erreur est faible pourraient être plus grandes. Avec cette information, on alimente HOMARD qui va modifier le maillage en conséquence. Sur le nouveau maillage, on recommencera alors le calcul.
-Schématiquement, une itération dâ\80\99adaptation de maillage se présente ainsi. Le logiciel calcule la solution numérique sur le maillage n°k, puis en déduit les valeurs de lâ\80\99indicateur dâ\80\99erreur sur tout le maillage. A partir de la connaissance du maillage n°k et de lâ\80\99indicateur n°k, HOMARD crée le nouveau maillage n°k+1.
+Dans tous les cas, le principe de l'adaptation de maillage reste le même. Sur le maillage de départ, on réalise le calcul standard. Avec une analyse de la solution numérique obtenue, on estime l'erreur qui a été commise par rapport à la solution réelle. Cette estimation se représente par une valeur d'indicateur d'erreur dans chaque maille du calcul. A partir de là, on applique le principe suivant : les mailles où l'indicateur d'erreur est fort devraient être plus petites et, réciproquement, les mailles où l'indicateur d'erreur est faible pourraient être plus grandes. Avec cette information, on alimente HOMARD qui va modifier le maillage en conséquence. Sur le nouveau maillage, on recommencera alors le calcul.
+Schématiquement, une itération d'adaptation de maillage se présente ainsi. Le logiciel calcule la solution numérique sur le maillage n°k, puis en déduit les valeurs de l'indicateur d'erreur sur tout le maillage. A partir de la connaissance du maillage n°k et de l'indicateur n°k, HOMARD crée le nouveau maillage n°k+1.
 
 .. image:: images/intro_1.png
    :align: center
 
-Au final, la chaîne complète part du maillage initial produit par un mailleur. Elle comprend des maillons successifs (calcul d’indicateur / adaptation) comme sur la figure ci-après.
+Au final, la chaîne complète part du maillage initial produit par un mailleur. Elle comprend des maillons successifs (calcul d'indicateur / adaptation) comme sur la figure ci-après.
 
 .. image:: images/intro_2.png
    :align: center
 
-A partir de ce schéma de base, des variantes sont possibles. Si aucun calcul d'erreur n'est disponible dans le logiciel couplé, on peut utiliser un champ pour piloter l'adaptation. Un champ de contraintes en mécaniques peut être utilisé : raffiner là où les contraintes sont importantes est souvent efficace pour améliorer la qualité de la simulation. On peut également adapter en fonction du saut d'une variable d'une maille à sa voisine ou dans une zone connue a priori. Grâce à ses nombreuses options, HOMARD permet d'envisager de nombreux scénarios d'adaptation de maillage.
+Des variantes de ce schéma de base sont possibles. Si aucun calcul d'erreur n'est disponible dans le logiciel couplé, on peut utiliser un champ pour piloter l'adaptation. Un champ de contraintes en mécaniques peut être utilisé : raffiner là où les contraintes sont importantes est souvent efficace pour améliorer la qualité de la simulation. On peut également adapter en fonction du saut d'une variable d'une maille à sa voisine ou dans une zone connue a priori. Grâce à ses nombreuses options, HOMARD permet d'envisager de multiples scénarios d'adaptation de maillage.
 
 .. note::
-  Pour une description plus complète, voir :download:`Description générale de HOMARD <files/HOMARD_0.pdf>`.
+  Pour une description plus complète, voir :download:`Description générale de HOMARD <files/HOMARD_0.pdf>`.
+
+
+Quelques illustrations de maillage adaptés
+""""""""""""""""""""""""""""""""""""""""""
+.. index:: single: illustration
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_3.png                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_4.png                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_5.png                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_6.png                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_7.png                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: images/intro_8.gif                                 |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+
+Démarrage rapide
+""""""""""""""""
+.. index:: single: démarrage
+.. index:: single: exemple
+
+L'ensemble des options de pilotage du module HOMARD dans Salome est décrit dans le :ref:`gui_usage`. Mais on trouvera ici le B.A. BA pour découvrir l'utilisation de HOMARD à partir d'un exemple simple. Imaginons que l'on a effectué un calcul de thermique sur un maillage donné. On a récupéré en sortie de ce calcul un fichier au format MED, contenant le maillage et le champ des températures aux noeuds. On aimerait adapter le maillage de telle sorte que l'écart de température entre deux noeuds voisins soit inférieur à une valeur donnée.
+
+La première action nécessite de lancer le module HOMARD, en créant une nouvelle étude, selon le principe qui a été retenu pour tous les autres modules de Salome.
+
+.. image:: images/homard_1.png
+   :align: center
+
+Une fois le module HOMARD activé, on crée un cas par le choix "*Nouveau cas*" dans le menu HOMARD. La fenêtre suivante apparaît :
+
+.. image:: images/intro_31.png
+   :align: center
+
+Il faut fournir deux informations : le répertoire qui contiendra les fichiers produits par les adaptations successives et le fichier issu du calcul que l'on vient de faire. On valide par "Appliquer et fermer".
+
+.. image:: images/intro_32.png
+   :align: center
+
+L'arbre d'études est enrichi de ce cas. On déplie le cas jusqu'à afficher le maillage correspondant à l'itération 0. On désigne cette itération initiale et on demande une nouvelle itération par "*Nouvelle itération*" dans le menu HOMARD ou à la souris. La fenêtre suivante apparaît :
+
+.. image:: images/intro_33.png
+   :align: center
+
+On désigne le fichier issu du calcul que l'on vient de faire et qui contient le champ de température. C'est le même que celui qui a été donné dans la définition du cas.
+
+.. image:: images/intro_34.png
+   :align: center
+
+On clique sur "Nouveau" dans la rubrique hypothèse. La fenêtre suivante apparaît :
+
+.. image:: images/intro_35.png
+   :align: center
+
+On modifie les options par défaut pour correspondre à notre choix de pilotage de l'adaptation. La sélection d'un pilotage par les saut entre éléments et d'un seuil absolu de 4.0 va demander le découpage de chaque arête de maille où le température varie de plus de 4.0 degrés entre les deux extrémités de l'arête.
+
+.. image:: images/intro_36.png
+   :align: center
+
+On valide par "Appliquer et fermer" cette création d'hypothése, puis la création de la nouvelle itération. On se retrouve avec un arbre d'études enrichi avec la description de l'hypothèse créée et de l'itération à calculer, repérée par une icone "en attente".
+
+Lancer l'adaptation s'obtient en sélectionnant l'itération à calculer. On choisit ensuite "*Calculer*" dans le menu HOMARD ou à la souris. L'arbre d'études s'enrichit de fichiers d'informations et du nom du fichier au format MED qui contient le nouveau maillage, ``maill.01.med``. On remarque qu'il est placé dans le répertoire qui a été désigné à la création du cas.
+
+.. image:: images/intro_37.png
+   :align: center
+
+A ce stade, on va utiliser ce nouveau maillage pour un deuxième calcul, dans les mêmes conditions que le premier. Une fois que ce nouveau calcul est achevé, on peut décider de poursuivre le processus d'adaptation. Pour cela on revient dans Salome et on active le module HOMARD. On désigne l'itération que l'avait calculée précédemment "*Iter_1*" et on demande une nouvelle itération. La fenêtre suivante apparaît :
+
+.. image:: images/intro_38.png
+   :align: center
+
+Comme on continue l'adaptation avec le même critére de saut de température entre noeuds voisins, on garde l'hypothèse "*Hypo_1*". Il suffit de désigner le fichier issu du calcul que l'on vient de faire et qui contient le nouveau champ de température.
+
+.. image:: images/intro_39.png
+   :align: center
+
+Comme précédemment, on lance l'adaptation et on récupère les résultats dans le répertoire du cas, dont le maillage ``maill.02.med``.
+
+.. image:: images/intro_40.png
+   :align: center
+
+On peut alors lancer un nouveau calcul sur ce nouveau maillage et poursuiver cette alternance calcul/adaptation jusqu'à l'obtention du résultat attendu.
diff --git a/doc/tui_create_boundary.rst b/doc/tui_create_boundary.rst
new file mode 100644 (file)
index 0000000..9b2992b
--- /dev/null
@@ -0,0 +1,83 @@
+.. _tui_create_boundary:
+
+La frontière
+============
+
+.. index:: single: boundary
+.. index:: single: frontière
+.. index:: single: cylindre
+.. index:: single: sphere
+
+Les variables sont décrites dans :ref:`gui_create_boundary`.
+
+Méthodes de la classe homard
+""""""""""""""""""""""""""""
+Ces méthodes retournent une instance de la classe boundary.
+
++----------------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryDi                                                           |
+|                                                                                        |
+| **CreateBoundaryDi(boundary_name, mesh_name, mesh_file)**                              |
+|                                                                                        |
+|     - ``boundary_name`` : le nom de la frontière discrète                              |
+|     - ``mesh_name`` : le nom du maillage de la frontière                               |
+|     - ``mesh_file`` : le nom du fichier contenant ce maillage                          |
++----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundaryCylinder                                                     |
+|                                                                                        |
+| **CreateBoundaryCylinder(boundary_name, Xcen, Ycen, Zcen, Xaxe, Yaxe, Zaxe, R)**       |
+|                                                                                        |
+|     - ``boundary_name`` : le nom de la frontière analytique basée sur un cylindre      |
+|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées d'un point sur l'axe du cylindre      |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                                  |
+|     - ``R`` : rayon du cylindre                                                        |
++----------------------------------------------------------------------------------------+
+| .. module:: CreateBoundarySphere                                                       |
+|                                                                                        |
+| **CreateBoundarySphere(boundary_name, Xcen, Ycen, Zcen, R)**                           |
+|                                                                                        |
+|     - ``boundary_name`` : le nom de la frontière analytique basée sur une sphere       |
+|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre de la sphère                |
+|     - ``R`` : rayon de la sphère                                                       |
++----------------------------------------------------------------------------------------+
+
+Méthodes de la classe boundary
+""""""""""""""""""""""""""""""
+
++-------------------------------------------------------------------+
++-------------------------------------------------------------------+
+| .. module:: GetName                                               |
+|                                                                   |
+| **GetName()**                                                     |
+|     Retourne le nom de la frontière                               |
++-------------------------------------------------------------------+
+| .. module:: GetBoundaryType                                       |
+|                                                                   |
+| **GetBoundaryType()**                                             |
+|     Retourne le type de la frontière :                            |
+|                                                                   |
+|         * 0 : discrète                                            |
+|         * 1 : cylindre                                            |
+|         * 2 : sphère                                              |
++-------------------------------------------------------------------+
+| .. module:: GetCoords                                             |
+|                                                                   |
+| **GetCoords()**                                                   |
+|     Retourne un tableau contenant les coordonnées de la frontière |
+|     dans l'ordre d'entrée dans le CreateBoundaryXXXX associé      |
++-------------------------------------------------------------------+
+
+
+Exemple
+"""""""
+Création d'une frontière discrète, d'une frontière sphèrique, puis d'une frontière cylindrique : ::
+
+    inter = homard.CreateBoundaryDi("INTERSECTION", 'PIQUAGE', dircase+'/tutorial_4.fr.med')
+    fron_1 = homard.CreateBoundarySphere("FRON_1", 12.3, 3.4, .56, 6.5)
+    fron_2 = homard.CreateBoundaryCylinder('CYL_1', 0.0, 25., -25., 25., 50., 75., 100.)
+
+
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_create_boundary`
index 588c05c99dca187273db41c0075bb8a1ad1dd69d..202c79150cad371176d1bd20176a40ab2a229101 100644 (file)
@@ -3,16 +3,16 @@
 Le cas
 ======
 .. index:: single: cas
-.. index:: single: type de conformité
+.. index:: single: type de conformité
 .. index:: single: maillage;initial
 
-Les variables sont décrites dans :ref:`gui_create_case`.
+Les variables sont décrites dans :ref:`gui_create_case`.
 
-Méthodes de la classe homard
+Méthodes de la classe homard
 """"""""""""""""""""""""""""
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: CreateCase                                        |
 |                                                               |
 | **CreateCase(case_name, mesh_name, mesh_file)**               |
@@ -22,18 +22,18 @@ Méthodes de la classe homard
 |     - ``mesh_name`` : le nom du maillage initial              |
 |     - ``mesh_file`` : le nom du fichier contenant ce maillage |
 |                                                               |
-| Par défaut :                                                  |
+| Par défaut :                                                  |
 |                                                               |
-|  * le répertoire des résultats est ``/tmp``                   |
+|  * le répertoire des résultats est ``/tmp``                   |
 |  * l'adaptation est conforme                                  |
 +---------------------------------------------------------------+
 
 
-Méthodes de la classe cas
+Méthodes de la classe cas
 """""""""""""""""""""""""
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: GetName                                           |
 |                                                               |
 | **GetName()**                                                 |
@@ -43,41 +43,81 @@ Méthodes de la classe cas
 |                                                               |
 | **SetDirName(dirname)**                                       |
 |                                                               |
-|     - ``dirname`` : le nom du répertoire des résutats         |
+|     - ``dirname`` : le nom du répertoire des résutats         |
 +---------------------------------------------------------------+
 | .. module:: GetDirName                                        |
 |                                                               |
 | **GetDirName()**                                              |
-|     Retourne le nom du répertoire des résutats associé au cas |
+|     Retourne le nom du répertoire des résutats associé au cas |
 +---------------------------------------------------------------+
 | .. module:: SetConfType                                       |
 |                                                               |
 | **SetConfType(conf_type)**                                    |
 |                                                               |
-|     - ``conf_type`` :  entier précisant le mode de conformité |
+|     - ``conf_type`` : entier précisant le mode de conformité  |
 |                                                               |
-|         1. conforme                                           |
-|         2. non conforme avec 1 noeud par maille               |
-|         3. non conforme avec 1 noeud par arete de maille      |
-|         4. non conforme quelconque                            |
+|         * 1 : conforme                                        |
+|         * 2 : non conforme avec 1 noeud par maille            |
+|         * 3 : non conforme avec 1 noeud par arete de maille   |
+|         * 4 : non conforme quelconque                         |
 +---------------------------------------------------------------+
 | .. module:: GetConfType                                       |
 |                                                               |
 | **GetConfType()**                                             |
-|     Retourne le type de conformité                            |
+|     Retourne le type de conformité                            |
 +---------------------------------------------------------------+
 | .. module:: GetIter0Name                                      |
 |                                                               |
 | **GetIter0Name()**                                            |
-|     Retourne le nom de l'itération 0, associée au maillage    |
+|     Retourne le nom de l'itération 0, associée au maillage    |
 |     initial. Ce nom est mis automatiquement par le module     |
-|     HOMARD et doit être utilisé pour enchaîner les adaptations|
+|     HOMARD et doit être utilisé pour enchaîner les adaptations|
++---------------------------------------------------------------+
+| .. module:: AddBoundaryGroup                                  |
+|                                                               |
+| **AddBoundaryGroup(boundary, group)**                         |
+|                                                               |
+|     - ``boundary`` : nom d'une frontière courbe à suivre      |
+|                                                               |
+|     Pour une frontière discrète :                             |
+|                                                               |
+|     . si toutes les lignes courbes sont suivies, le second    |
+|       argument est une chaîne vide.                           |
+|     . si seulement certaines lignes courbes sont suivies,     |
+|       ``group`` est le nom d'un groupe de segments à suivre.  |
+|                                                               |
+|     Pour une frontière analytique :                           |
+|                                                               |
+|     - ``group`` : nom d'un groupe de faces placées sur la     |
+|       frontière                                               |
++---------------------------------------------------------------+
+
+Les options avancées
+^^^^^^^^^^^^^^^^^^^^
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: SetPyram                                          |
+|                                                               |
+| **SetPyram(option)**                                          |
+|                                                               |
+|     - ``option`` : entier précisant le statut des pyramides   |
+|       éventuellement présentes dans le maillage initial       |
+|                                                               |
+|         * 0 : pyramides refusées (défaut)                     |
+|         * 1 : pyramides autorisées                            |
++---------------------------------------------------------------+
+| .. module:: GetPyram                                          |
+|                                                               |
+| **GetPyram()**                                                |
+|     Retourne le statut accordé aux pyramides éventuellement   |
+|     présentes dans le maillage initial                        |
 +---------------------------------------------------------------+
 
 
 Exemple
 """""""
-La création de l'objet case_1 se fait ainsi : ::
+La création de l'objet case_1 se fait ainsi : ::
 
     case_name = "CAS_1"
     mesh_name = "MAILL"
@@ -86,7 +126,15 @@ La création de l'objet case_1 se fait ainsi : ::
     dirname = "/local00/Salome/Adapt/resu"
     case_1.SetDirName(dirname)
     case_1.SetConfType(1)
+    case_1.AddBoundaryGroup( 'intersection', '' )
+    case_1.AddBoundaryGroup( 'cyl_1', 'T1_EXT' )
+    case_1.AddBoundaryGroup( 'cyl_1', 'T2_EXT' )
+    case_1.AddBoundaryGroup( 'cyl_2', 'T_INT' )
+
 
 
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_create_case`
 
 
index 29dfe9837a83760fbde4282d726a96540fd52a6a..b9b7d85f17b1626cf1edb5602842c118c00cf62a 100644 (file)
@@ -1,66 +1,70 @@
 .. _tui_create_hypothese:
 
-L'hypothèse
+L'hypothèse
 ===========
 
-.. index:: single: itération
-.. index:: single: hypothèse
+.. index:: single: itération
+.. index:: single: hypothèse
 .. index:: single: zone
 
-Les variables sont décrites dans :ref:`gui_create_hypothese`.
+Les variables sont décrites dans :ref:`gui_create_hypothese`.
 
-Méthodes de la classe homard
+Méthodes de la classe homard
 """"""""""""""""""""""""""""
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: CreateHypothesis                                  |
 |                                                               |
 | **CreateHypothesis(hypo_name)**                               |
 |     Retourne une instance de la classe hypothese              |
 |                                                               |
-|     - ``hypo_name`` : le nom de l'hypothèse                   |
+|     - ``hypo_name`` : le nom de l'hypothèse                   |
 +---------------------------------------------------------------+
 | .. module:: AssociateHypoZone                                 |
 |                                                               |
-| **AssociateHypoZone(hypo_name, zone_name)**                   |
+| **AssociateHypoZone(hypo_name, zone_name, type_use)**         |
+|                                                               |
+|     - ``hypo_name`` : le nom de l'hypothèse                   |
+|     - ``zone_name`` : le nom de la zone à associer            |
+|     - ``type_use``  : entier précisant l'usage de la zone     |
 |                                                               |
-|     - ``hypo_name`` : le nom de l'hypothèse                   |
-|     - ``zone_name`` : le nom de la zone à associer            |
+|         * 1 : raffinement                                     |
+|         * -1 : déraffinement                                  |
 +---------------------------------------------------------------+
 
-Méthodes de la classe hypothese
+Méthodes de la classe hypothese
 """""""""""""""""""""""""""""""
 
-Généralités
+Généralités
 ^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: GetName                                           |
 |                                                               |
 | **GetName()**                                                 |
-|     Retourne le nom de l'hypothèse                            |
+|     Retourne le nom de l'hypothèse                            |
 +---------------------------------------------------------------+
 | .. module:: SetAdapRefinUnRef                                 |
 |                                                               |
 | **SetAdapRefinUnRef(Adap, Refin, UnRef)**                     |
 |                                                               |
-|     - ``Adap`` : entier précisant le type d'adaptation        |
+|     - ``Adap`` : entier précisant le type d'adaptation        |
 |                                                               |
 |         * -1 : uniforme                                       |
 |         * 0 : selon des zones                                 |
 |         * 1 : selon un champ                                  |
 |                                                               |
-|     - ``Refin`` : entier précisant si le raffinement est actif|
+|     - ``Refin`` : entier précisant si le raffinement est actif|
 |                                                               |
-|         0. inactif                                            |
-|         1. actif                                              |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 |                                                               |
-|     - ``UnRef`` : entier précisant si déraffinement est actif |
+|     - ``UnRef`` : entier précisant si déraffinement est actif |
 |                                                               |
-|         0. inactif                                            |
-|         1. actif                                              |
+|         * 0 : inactif                                         |
+|         * 1 : actif                                           |
 |                                                               |
 +---------------------------------------------------------------+
 | .. module:: GetAdapType                                       |
@@ -76,17 +80,17 @@ Généralités
 | .. module:: GetUnRefType                                      |
 |                                                               |
 | **GetUnRefType()**                                            |
-|     Retourne le type de déraffinement                         |
+|     Retourne le type de déraffinement                         |
 +---------------------------------------------------------------+
 
 Le champ et les seuils
 ^^^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
-| .. module:: SetFieldName                                      |
++---------------------------------------------------------------+
+| .. module:: SetField                                          |
 |                                                               |
-| **SetFieldName(field_name)**                                  |
+| **SetField(field_name)**                                      |
 |                                                               |
 |     - ``field_name`` : le nom du champ                        |
 +---------------------------------------------------------------+
@@ -99,21 +103,21 @@ Le champ et les seuils
 |                                                               |
 | **SetUseField(use_field)**                                    |
 |                                                               |
-|     - ``use_field`` : entier précisant l'usage du champ       |
+|     - ``use_field`` : entier précisant l'usage du champ       |
 |                                                               |
-|         0. valeur par maille (défaut)                         |
-|         1. saut entre une maille et ses voisines              |
+|        * 0 : valeur par élément (défaut)                      |
+|        * 1 : saut entre un élément et ses voisins             |
 +---------------------------------------------------------------+
 | .. module:: SetRefinThr                                       |
 |                                                               |
 | **SetRefinThr(type_thres, threshold)**                        |
 |                                                               |
-|     - ``type_thres`` : entier précisant le type de seuil en   |
+|     - ``type_thres`` : entier précisant le type de seuil en   |
 |       raffinement                                             |
 |                                                               |
-|         1. valeur absolue                                     |
-|         2. valeur relative en %                               |
-|         3. fraction des mailles en %                          |
+|        * 1 : valeur absolue                                   |
+|        * 2 : valeur relative en %                             |
+|        * 3 : fraction des mailles en %                        |
 |                                                               |
 |     - ``threshold`` : valeur du seuil                         |
 +---------------------------------------------------------------+
@@ -126,19 +130,19 @@ Le champ et les seuils
 |                                                               |
 | **SetUnRefThr(type_thres, threshold)**                        |
 |                                                               |
-|     - ``type_thres`` : entier précisant le type de seuil en   |
-|       déraffinement                                           |
+|     - ``type_thres`` : entier précisant le type de seuil en   |
+|       déraffinement                                           |
 |                                                               |
-|         1. valeur absolue                                     |
-|         2. valeur relative en %                               |
-|         3. fraction des mailles en %                          |
+|        * 1 : valeur absolue                                   |
+|        * 2 : valeur relative en %                             |
+|        * 3 : fraction des mailles en %                        |
 |                                                               |
 |     - ``threshold`` : valeur du seuil                         |
 +---------------------------------------------------------------+
 | .. module:: GetUnRefThrType                                   |
 |                                                               |
 | **GetUnRefThrType()**                                         |
-|     Retourne le type de seuil de déraffinement                |
+|     Retourne le type de seuil de déraffinement                |
 +---------------------------------------------------------------+
 
 
@@ -146,56 +150,91 @@ Les composantes du champ
 ^^^^^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: AddComp                                           |
 |                                                               |
 | **AddComp(comp_name)**                                        |
 |                                                               |
-|     - ``comp_name`` : nom d'une composante à prendre en       |
+|     - ``comp_name`` : nom d'une composante à prendre en       |
 |       compte                                                  |
 +---------------------------------------------------------------+
 | .. module:: SetUseComp                                        |
 |                                                               |
 | **SetUseComp(use_comp)**                                      |
 |                                                               |
-|     - ``use_comp`` : entier précisant l'usage des composantes |
+|     - ``use_comp`` : entier précisant l'usage des composantes |
 |                                                               |
-|         0. norme L2 (défaut)                                  |
-|         1. norme infinie                                      |
-|         2. valeur relative, uniquement si une seule composante|
+|        * 0 : norme L2 (défaut)                                |
+|        * 1 : norme infinie                                    |
+|        * 2 : valeur relative, si une seule composante         |
 +---------------------------------------------------------------+
 | .. module:: GetListComp                                       |
 |                                                               |
 | **GetListComp()**                                             |
-|     Retourne la liste des composantes utilisées               |
+|     Retourne la liste des composantes utilisées               |
 +---------------------------------------------------------------+
 
 Le filtrage par les groupes
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: AddGroup                                          |
 |                                                               |
 | **AddGroup(group_name)**                                      |
 |                                                               |
-|     - ``group_name`` : nom du groupe à prendre en compte      |
+|     - ``group_name`` : nom du groupe à prendre en compte      |
 +---------------------------------------------------------------+
 | .. module:: GetGroups                                         |
 |                                                               |
 | **GetGroups()**                                               |
-|     Retourne la liste des groupes utilisés pour le filtrage   |
+|     Retourne la liste des groupes utilisés pour le filtrage   |
 +---------------------------------------------------------------+
 
+Les options avancées
+^^^^^^^^^^^^^^^^^^^^
+
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+| .. module:: SetNivMax                                         |
+|                                                               |
+| **SetNivMax(nivmax)**                                         |
+|                                                               |
+|     - ``nivmax`` : niveau de raffinement à ne pas dépasser    |
++---------------------------------------------------------------+
+| .. module:: GetNivMax                                         |
+|                                                               |
+| **GetNivMax()**                                               |
+|     Retourne le niveau maximal de raffinement                 |
++---------------------------------------------------------------+
+| .. module:: SetDiamMin                                        |
+|                                                               |
+| **SetDiamMin(diammin)**                                       |
+|                                                               |
+|     - ``diammin`` : diamètre minimal voulu pour une maille    |
++---------------------------------------------------------------+
+| .. module:: GetDiamMin                                        |
+|                                                               |
+| **GetDiamMin()**                                              |
+|     Retourne le diamètre minimal voulu                        |
++---------------------------------------------------------------+
+
+
 Exemple
 """""""
-La création de l'objet hypo_1 se fait ainsi : ::
+La création de l'objet hypo_1 se fait ainsi : ::
 
     hypo_1 = homard.CreateHypothesis("HypoField")
     hypo_1.SetAdapRefinUnRef(1, 1, 0)
-    hypo_1.SetFieldName("INDICATEUR")
+    hypo_1.SetField("INDICATEUR")
     hypo_1.AddComp("INDX")
     hypo_1.AddComp("INDZ")
     hypo_1.SetRefinThr(1, 80.)
 
 
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_create_hypothese`
+
+.. warning::
+  En mode graphique, si on édite une hypothèse et que l'on modifie une de ses caractéristiques, par exemple le seuil de raffinement, toutes les itérations qui ont été calculées précédemment avec cette hypothèse sont invalidées. En mode python, cela n'est plus vrai : les itérations restent telles quelles.
index 45f800694157086d1b13b67da10ad0e46f565356..a9590dcf5c1f125f6c3adc6c912a43fc83bb5d69 100644 (file)
 .. _tui_create_iteration:
 
-L'itération
+L'itération
 ===========
 
-.. index:: single: itération
-.. index:: single: hypothèse
+.. index:: single: itération
+.. index:: single: hypothèse
 .. index:: single: zone
 
-Les variables sont décrites dans :ref:`gui_create_iteration`.
+Les variables sont décrites dans :ref:`gui_create_iteration`.
 
-Méthodes de la classe homard
+Méthodes de la classe homard
 """"""""""""""""""""""""""""
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: CreateIteration                                   |
 |                                                               |
 | **CreateIteration(iter_name, iter_parent_name)**              |
 |     Retourne une instance de la classe iteration              |
 |                                                               |
-|     - ``iter_name`` : le nom de l'itération                   |
-|     - ``iter_parent_name`` : le nom de l'itération mère       |
+|     - ``iter_name`` : le nom de l'itération                   |
+|     - ``iter_parent_name`` : le nom de l'itération mère       |
 |                                                               |
-| Par défaut :                                                  |
+| Par défaut :                                                  |
 |                                                               |
-|  * le maillage produit a le même nom que l'itération          |
+|  * le maillage produit a le même nom que l'itération          |
 +---------------------------------------------------------------+
 | .. module:: AssociateIterHypo                                 |
 |                                                               |
 | **AssociateIterHypo(iter_name, hypo_name)**                   |
 |                                                               |
-|     - ``iter_name`` : le nom de l'itération                   |
-|     - ``hypo_name`` : le nom de l'hypothèse à associer        |
+|     - ``iter_name`` : le nom de l'itération                   |
+|     - ``hypo_name`` : le nom de l'hypothèse à associer        |
 +---------------------------------------------------------------+
 
-Méthodes de la classe iteration
+Méthodes de la classe iteration
 """""""""""""""""""""""""""""""
 
-Généralités
+Généralités
 ^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
+| .. index:: single: Compute                                    |
+|                                                               |
+| **Compute(option)**                                           |
+|     Calcule le maillage correspondant à l'itération           |
+|                                                               |
+|     - ``option`` : un entier précisant ce qui se passe quand  |
+|       des fichiers de résultats existent déjà                 |
+|                                                               |
+|         * 0 : arrêt en erreur                                 |
+|         * 1 : écrasement des anciens fichiers                 |
+|                                                               |
+|     Retourne un entier :                                      |
+|         * 0 : adaptation réussie                              |
+|         * autre valeur : problème                             |
++---------------------------------------------------------------+
 | .. module:: GetName                                           |
 |                                                               |
 | **GetName()**                                                 |
-|     Retourne le nom de l'itération                            |
+|     Retourne le nom de l'itération                            |
 +---------------------------------------------------------------+
 | .. module:: GetNumber                                         |
 |                                                               |
 | **GetNumber()**                                               |
-|     Retourne le numéro de l'itération                         |
+|     Retourne le numéro de l'itération.                        |
+|                                                               |
+|     L'itération 0 est celle associée au maillage initial.     |
+|     Ensuite, une itération de numéro N est issue de           |
+|     l'adaptation d'une itération de numéro N-1.               |
 +---------------------------------------------------------------+
 | .. module:: GetIterParent                                     |
 |                                                               |
 | **GetIterParent()**                                           |
-|     Retourne le nom de l'itération mère                       |
+|     Retourne le nom de l'itération mère                       |
 +---------------------------------------------------------------+
 | .. module:: GetHypoName                                       |
 |                                                               |
 | **GetHypoName()**                                             |
-|     Retourne le nom de l'hypothèse associée                   |
+|     Retourne le nom de l'hypothèse associée                   |
 +---------------------------------------------------------------+
 | .. module:: GetCaseName                                       |
 |                                                               |
 | **GetCaseName()**                                             |
-|     Retourne le nom du cas associé                            |
+|     Retourne le nom du cas associé                            |
 +---------------------------------------------------------------+
 | .. module:: GetState                                          |
 |                                                               |
 | **GetState()**                                                |
-|     Retourne l'état de l'itération                            |
+|     Retourne l'état de l'itération                            |
 |                                                               |
-|     - ``0`` : itération non calculée                          |
-|     - ``1`` : itération calculée correctement                 |
+|     - ``0`` : itération non calculée                          |
+|     - ``1`` : itération calculée correctement                 |
 +---------------------------------------------------------------+
 
 Informations sur les maillages
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: GetMeshName                                       |
 |                                                               |
 | **GetMeshName()**                                             |
@@ -103,14 +122,19 @@ Informations sur le champ
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 +---------------------------------------------------------------+
-+===============================================================+
-| .. module:: SetField                                          |
++---------------------------------------------------------------+
+| .. module:: SetFieldFile                                      |
 |                                                               |
-| **SetField(field_file, TimeStep, Rank)**                      |
+| **SetFieldFile(field_file)**                                  |
 |                                                               |
 |     - ``field_file`` : le nom du fichier contenant le champ   |
-|     - ``TimeStep`` : l'instant où est pris le champ           |
-|     - ``Rank`` : le numéro d'ordre où est pris le champ       |
++---------------------------------------------------------------+
+| .. module:: SetTimeStepRank                                   |
+|                                                               |
+| **SetTimeStepRank(TimeStep, Rank)**                           |
+|                                                               |
+|     - ``TimeStep`` : l'instant où est pris le champ           |
+|     - ``Rank`` : le numéro d'ordre où est pris le champ       |
 +---------------------------------------------------------------+
 | .. module:: GetFieldFileName                                  |
 |                                                               |
@@ -120,19 +144,19 @@ Informations sur le champ
 | .. module:: GetTimeStep                                       |
 |                                                               |
 | **GetTimeStep()**                                             |
-|     Retourne l'instant où est pris le champ                   |
+|     Retourne l'instant où est pris le champ                   |
 +---------------------------------------------------------------+
 | .. module:: GetRank                                           |
 |                                                               |
 | **GetRank()**                                                 |
-|     Retourne le numéro d'ordre où est pris le champ           |
+|     Retourne le numéro d'ordre où est pris le champ           |
 +---------------------------------------------------------------+
 
 Exemple
 """""""
 .. index:: single: maillage;initial
 
-Pour la création de la première itération, il faut récupérer le nom qui a été donné à celle qui correspond au maillage initial. Ce nom s'obtient avec la méthode ``GetIter0Name`` appliquée au cas. ::
+Pour la création de la première itération, il faut récupérer le nom qui a été donné à celle qui correspond au maillage initial. Ce nom s'obtient avec la méthode ``GetIter0Name`` appliquée au cas. ::
 
     iter_name = "Iteration_1"
     iter_1 = homard.CreateIteration(iter_name, case_1.GetIter0Name())
@@ -140,13 +164,19 @@ Pour la création de la première itération, il faut récupérer le nom qui a 
     iter_1.SetMeshName("maill_01")
     iter_1.SetMeshFile("/local00/M.01.med")
     homard.AssociateIterHypo(iter_name, "HypoField")
+    codret = iter_1.Compute(1)
 
-Pour la création d'une itération suivante, on donnera le nom de l'itération parent de laquelle on part. ::
+Pour la création d'une itération suivante, on donnera le nom de l'itération parent de laquelle on part. ::
 
     iter_name = "Iteration_2"
-    iter_1 = homard.CreateIteration(iter_name, "Iteration_1")
-    iter_1.SetField(field_file, 0, 0)
-    iter_1.SetMeshName("maill_02")
-    iter_1.SetMeshFile("/local00/M.02.med")
+    iter_2 = homard.CreateIteration(iter_name, "Iteration_1")
+    iter_2.SetField(field_file, 0, 0)
+    iter_2.SetMeshName("maill_02")
+    iter_2.SetMeshFile("/local00/M.02.med")
     homard.AssociateIterHypo(iter_name, "HypoField")
+    codret = iter_2.Compute(1)
 
+
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_create_iteration`
index e5e34af5f94909bdc56543f2c2341f301282f42a..9911c413c5c7f4d12e50494c0ee91b3afae56ea1 100644 (file)
@@ -6,64 +6,154 @@ La zone
 .. index:: single: zone
 .. index:: single: boite
 .. index:: single: sphere
+.. index:: single: cylindre
+.. index:: single: tuyau
+.. index:: single: disque
+.. index:: single: disque avec trou
+.. index:: single: 2D
 
-Les variables sont décrites dans :ref:`gui_create_zone`.
+Les variables sont décrites dans :ref:`gui_create_zone`.
 
-Méthodes de la classe homard
+Méthodes de la classe homard
 """"""""""""""""""""""""""""
 
+Ces méthodes retournent une instance de la classe zone.
+
++----------------------------------------------------------------------------------+
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneBox                                                        |
+|                                                                                  |
+| **CreateZoneBox(zone_name, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)**                 |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un parallélépipède             |
+|     - ``Xmin``, ``Xmax`` : coordonnées extrêmes selon X                          |
+|     - ``Ymin``, ``Ymax`` : coordonnées extrêmes selon Y                          |
+|     - ``Zmin``, ``Zmax`` : coordonnées extrêmes selon Z                          |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneCylinder                                                   |
+|                                                                                  |
+| **CreateZoneCylinder(zone_name, Xbase, Ybase, Zbase, Xaxe, Yaxe, Zaxe, R, H)**   |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un cylindre                    |
+|     - ``Xbase``, ``Ybase``, ``Zbase`` : coordonnées d'un point de base           |
+|       positionné sur l'axe                                                       |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                            |
+|     - ``R`` : rayon du cylindre                                                  |
+|     - ``H`` : hauteur du cylindre                                                |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZonePipe                                                       |
+|                                                                                  |
+| **CreateZonePipe(zone_name, Xbase, Ybase, Zbase, Xaxe, Yaxe, Zaxe, R, H, Rint)** |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un tuyau                       |
+|     - ``Xbase``, ``Ybase``, ``Zbase`` : coordonnées d'un point de base           |
+|       positionné sur l'axe                                                       |
+|     - ``Xaxe``, ``Yaxe``, ``Zaxe`` : vecteur de l'axe                            |
+|     - ``R`` : rayon externe du tuyau                                             |
+|     - ``H`` : hauteur du tuyau                                                   |
+|     - ``R`` : rayon interne du tuyau                                             |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneSphere                                                     |
+|                                                                                  |
+| **CreateZoneSphere(zone_name, Xcen, Ycen, Zcen, R)**                             |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur une sphère                     |
+|     - ``Xcen``, ``Ycen``, ``Zcen`` : coordonnées du centre de la sphère          |
+|     - ``R`` : rayon de la sphère                                                 |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneBox2D                                                      |
+|                                                                                  |
+| **CreateZoneBox2D(zone_name, Umin, Umax, Vmin, Vmax, Orient)**                   |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un rectangle                   |
+|     - ``Umin``, ``Umax`` : coordonnées extrêmes pour la 1ère dimension           |
+|     - ``Vmin``, ``Vmax`` : coordonnées extrêmes pour la 2nde dimension           |
+|     - ``Orient`` : entier précisant la convention d'orientation du plan          |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneDisk                                                       |
+|                                                                                  |
+| **CreateZoneDisk(zone_name, Ucen, Vcen, R, Orient)**                             |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un disque plein                |
+|     - ``Ucen``, ``Vcen`` : coordonnées du centre du disque                       |
+|     - ``R`` : rayon du disque                                                    |
+|     - ``Orient`` : entier précisant la convention d'orientation du plan          |
++----------------------------------------------------------------------------------+
+| .. module:: CreateZoneDiskWithHole                                               |
+|                                                                                  |
+| **CreateZoneDiskWithHole(zone_name, Ucen, Vcen, R, Rint, Orient)**               |
+|                                                                                  |
+|     - ``zone_name`` : le nom de la zone basée sur un disque troué                |
+|     - ``Ucen``, ``Vcen`` : coordonnées du centre du disque                       |
+|     - ``R`` : rayon externe du disque                                            |
+|     - ``Rint`` : rayon interne du disque                                         |
+|     - ``Orient`` : entier précisant la convention d'orientation du plan          |
++----------------------------------------------------------------------------------+
+
+
+
 +---------------------------------------------------------------+
-+===============================================================+
-| .. module:: CreateZone                                        |
-|                                                               |
-| **CreateZone(zone_name)**                                     |
++---------------------------------------------------------------+
+|   La convention d'orientation du plan est la même que celle   |
+|   utilisée dans les autres modules de Salome, en particulier  |
+|   GEOM :                                                      |
 |                                                               |
-|     - ``zone_name`` : le nom de la zone                       |
+|     1. plan XY ; U <==> X et V <==> Y                         |
+|     2. plan YZ ; U <==> Y et V <==> Z                         |
+|     3. plan ZX ; U <==> Z et V <==> X                         |
 +---------------------------------------------------------------+
 
-Méthodes de la classe zone
+
+.. note::
+  Les fonctions définissant des zones 2D ne doivent être utilisées que si l'intégralité du
+  maillage est 2D, dans un des plans de coordonnées.
+
+
+Méthodes de la classe zone
 """"""""""""""""""""""""""
 
 +---------------------------------------------------------------+
-+===============================================================+
++---------------------------------------------------------------+
 | .. module:: GetName                                           |
 |                                                               |
 | **GetName()**                                                 |
 |     Retourne le nom de la zone                                |
 +---------------------------------------------------------------+
-| .. module:: SetZoneType                                       |
+| .. module:: GetZoneType                                       |
 |                                                               |
-| **SetZoneType(zone_type)**                                    |
+| **GetZoneType()**                                             |
+|     Retourne le type de la zone                               |
 |                                                               |
-|     - ``zone_type`` : entier précisant le type de zone        |
-|                                                               |
-|         * 2 : parallélépipède                                 |
-|         * 4 : sphère                                          |
+|         * 2 : parallélépipède                                 |
+|         * 3 : sphère                                          |
+|         * 5 : cylindre                                        |
+|         * 7 : tuyau                                           |
+|         * 11, 12, 13 : rectangle et orientation 1, 2 ou 3     |
+|         * 31, 32, 33 : disque et orientation 1, 2 ou 3        |
+|         * 61, 62, 63 : disque percé et orientation 1, 2 ou 3  |
 +---------------------------------------------------------------+
-| .. module:: SetBox                                            |
-|                                                               |
-| **SetBox(Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)**                |
-|                                                               |
-|     - ``Xmin``, ``Xmax`` : X mini, X maxi                     |
-|     - etc.                                                    |
-+---------------------------------------------------------------+
-| .. module:: SetSphere                                         |
-|                                                               |
-| **SetSphere(Xcen, Ycen, Zcen, R)**                            |
+| .. module:: GetCoords                                         |
 |                                                               |
-|     - ``Xcen`` : X du centre                                  |
-|     - ``Ycen`` : Y du centre                                  |
-|     - ``Zcen`` : Z du centre                                  |
-|     - ``R`` : rayon de la sphère                              |
+| **GetCoords()**                                               |
+|     Retourne un tableau contenant les coordonnées de la zone  |
+|     dans l'ordre d'entrée dans le CreateZoneXXXX associé      |
 +---------------------------------------------------------------+
 
 
 Exemple
 """""""
-La création de l'objet zone_1 se fait ainsi : ::
+La création d'une boîte 3D ou d'un disque dans le plan XY se fait ainsi : ::
+
+    zone_1 = homard.CreateZoneBox ("BLOC", -1., 1., -30., 40., 10.5, 20.8)
+    zone_2 = homard.CreateZoneDisk ("disque", 1., 3., 43.25, 1)
+
+
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_create_zone`
+
+.. warning::
+  En mode graphique, si on édite une zone et que l'on modifie une des dimensions, toutes les itérations qui ont été calculées précédemment avec cette zone sont invalidées. En mode python, cela n'est plus vrai : les itérations restent telles quelles.
 
-    zone_1 = homard.CreateZone("Zone_2")
-    zone_1.SetTypeZone(4)
-    zone_1.SetSphere(12.3, 3.4, .56, 6.5)
 
 
index d2ef16f3d91235872f666171edd41574b88682f5..5727d981e19605cacf68adb31a722e9d931e0db0 100644 (file)
@@ -1,37 +1,16 @@
 .. _tui_homard:
 
-L'adaptation
-============
+Le calcul
+=========
 
-.. index:: single: itération
-.. index:: single: calcul
-
-Méthodes de la classe homard
+Méthodes de la classe homard
 """"""""""""""""""""""""""""
 
-+---------------------------------------------------------------+
-+===============================================================+
-| .. index:: single: Compute                                    |
-|                                                               |
-| **Compute(iter_name, option)**                                |
-|     Calcule l'adaptation de maillage correspondant à          |
-|     une itération                                             |
-|                                                               |
-|     - ``iter_name`` : le nom de l'itération                   |
-|     - ``option`` : un entier précisant ce qui se passe quand  |
-|     des fichiers de résultats existent déjà                   |
-|         * 0 : arrêt en erreur                                 |
-|         * 1 : écrasement des anciens fichiers                 |
-|                                                               |
-|     Retourne un entier :                                      |
-|         * 0 : adaptation réussie                              |
-|         * autre valeur : problème                             |
-+---------------------------------------------------------------+
-
 
 Exemple
 """""""
-Le calcul de l'itération de nom "Iteration_1" avec écrasement des anciens fichiers de résultat se fait ainsi : ::
 
-    iter_name = "Iteration_1"
-    codret = homard.Compute(iter_name, 1)
+
+Saisie graphique correspondante
+"""""""""""""""""""""""""""""""
+Consulter :ref:`gui_homard`
index 195b2581de948b443334692ab2589ca605ada920..fec8871ef96020a7fa3d7240837c52b653ef18b6 100644 (file)
@@ -1,6 +1,6 @@
 Mode d'emploi pour TUI
 ======================
-Le module HOMARD peut se lancer à partir d'instructions python. On trouvera ici la description de chacune des fonctions accessibles par l'utilisateur.
+Le module HOMARD peut se lancer à partir d'instructions python. On trouvera ici la description de chacune des fonctions accessibles par l'utilisateur.
 
 .. toctree::
    :maxdepth: 2
@@ -9,4 +9,5 @@ Le module HOMARD peut se lancer à partir d'instructions python. On trouvera ici
    tui_create_iteration
    tui_create_hypothese
    tui_create_zone
+   tui_create_boundary
    tui_homard
diff --git a/doc/tutorial_3.py b/doc/tutorial_3.py
deleted file mode 100644 (file)
index 264d590..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-"""
-Exemple de couplage HOMARD-Salome
-Copyright EDF-R&D 1996, 2010
-"""
-__revision__ = "V1.0"
-#
-import salome
-salome.salome_init()
-import HOMARD
-#
-homard = salome.lcc.FindOrLoadComponent("FactoryServer", "HOMARD")
-study_main = salome.myStudyManager.NewStudy("HOMARD")
-homard.SetCurrentStudy(salome.myStudy)
-#
-repcas = "/tmp"
-#
-# Creation of the zones
-# =====================
-# Box "Zone_0"
-Zone_0 = homard.CreateZone('Zone_0', 2)
-Zone_0.SetBox(-0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
-
-# Sphere "Zone_1"
-Zone_1 = homard.CreateZone('Zone_1', 4)
-Zone_1.SetSphere(0., 0., 0., 1.05)
-#
-# Hypothesis "Hypo_0"
-# ===================
-Hypo_0 = homard.CreateHypothesis('Hypo_0')
-Hypo_0.SetAdapRefinUnRef(0, 1, 0)
-homard.AssociateHypoZone('Zone_1', 'Hypo_0')
-homard.AssociateHypoZone('Zone_0', 'Hypo_0')
-#
-# Case "Case_0"
-# =============
-Case_0 = homard.CreateCase('Case_0', 'MZERO', repcas+'/tutorial_2.00.med')
-Case_0.SetDirName(repcas)
-#
-# Iteration "Iter_0"
-# ==================
-Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
-Iter_0.SetMeshName('MUN')
-Iter_0.SetMeshFile(repcas+'/maill.01.med')
-homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-codret = homard.Compute('Iter_0', 1)
-
-if salome.sg.hasDesktop():
-  salome.sg.updateObjBrowser(1)
index 653ac99dd9712413ae4b919d8697f4cd81caf68f..3662308e22e0b23b285aea0d42a1c513bbce9c14 100644 (file)
@@ -2,15 +2,16 @@ Exemples
 ========
 .. index:: single: exemple
 .. index:: single: python
-On trouvera ici les instructions python pour quelques configurations caractéristiques. Les fichiers de données associés sont téléchargeables.
+
+On trouvera ici les instructions python pour quelques configurations caractéristiques. Les fichiers de données associés sont téléchargeables. Il faut penser à modifier le contenu de la variable ``dircase`` : c'est le répertoire dans lequel les fichiers med auront été enregistrés. C'est dans ce répertoire que seront écrits les fichiers résultant des adaptations successives.
 
 Raffinement uniforme
 """"""""""""""""""""
 .. index:: single: raffinement;uniforme
 
 On fera ici trois raffinements uniformes successifs du maillage contenu dans le fichier ``tutorial_1.00.med``. Quelques remarques :
-  * la même hypothèse est utilisée à chaque itération
-  * le maillage produit porte toujours le même nom. Cela ne pose pas de problème car il est stocké dans des fichiers différents.
+  * la même hypothèse est utilisée à chaque itération
+  * le maillage produit porte toujours le même nom. Cela ne pose pas de problème car il est stocké dans des fichiers différents.
 
  ::
 
@@ -21,37 +22,37 @@ On fera ici trois raffinements uniformes successifs du maillage contenu dans le
   Hypo_0 = homard.CreateHypothesis('Hypo_0')
   Hypo_0.SetAdapRefinUnRef(-1, 1, 0)
   #
-  # Case "Case_0"
+  # Case "Case_1"
   # =============
-  Case_0 = homard.CreateCase('Case_0', 'MAILL', dircase+'/m0.med')
-  Case_0.SetDirName(dircase)
-  Case_0.SetConfType(1)
+  Case_1 = homard.CreateCase('Case_1', 'MAILL', dircase+'/tutorial_1.00.med')
+  Case_1.SetDirName(dircase)
+  Case_1.SetConfType(1)
   #
   # Iterations
   # ==========
   # Iteration "Iter_0"
-  Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
+  Iter_0 = homard.CreateIteration('Iter_0', Case_1.GetIter0Name())
   Iter_0.SetMeshName('MESH')
   Iter_0.SetMeshFile(dircase+'/maill.01.med')
   homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-  codret = homard.Compute('Iter_0', 1)
+  codret = Iter_0.Compute(1)
 
   # Iteration "Iter_1"
   Iter_1 = homard.CreateIteration('Iter_1', 'Iter_0')
   Iter_1.SetMeshName('MESH')
   Iter_1.SetMeshFile(dircase+'/maill.02.med')
   homard.AssociateIterHypo('Iter_1', 'Hypo_0')
-  codret = homard.Compute('Iter_1', 1)
+  codret = Iter_1.Compute(1)
 
   # Iteration "Iter_2"
   Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
   Iter_2.SetMeshName('MESH')
   Iter_2.SetMeshFile(dircase+'/maill.03.med')
   homard.AssociateIterHypo('Iter_2', 'Hypo_0')
-  codret = homard.Compute('Iter_2', 1)
+  codret = Iter_2.Compute(1)
 
 .. note::
-  Téléchargement des fichiers
+  Téléchargement des fichiers
 
   * :download:`maillage initial<files/tutorial_1.00.med.gz>`
   * :download:`commandes python<files/tutorial_1.py>`
@@ -61,7 +62,7 @@ Raffinement par des zones
 """""""""""""""""""""""""
 .. index:: single: zone
 
-On procède ici au raffinement selon des zones. Pour passer du maillage initial au maillage 'M_1', on utilise une boîte encadrant le plan z=1 et une sphère centrée sur l'origine de rayon 1.05. Puis pour passer du maillage 'M_1' au maillage 'M_2', on remplace la sphère par une boîte encadrant le cube de côté 0.5, pointant sur l'origine. On notera que le type de raffinement n'a pas été précisé ; par défaut, il sera donc conforme.
+On procède ici au raffinement selon des zones. Pour passer du maillage initial au maillage 'M_1', on utilise une boîte encadrant le plan z=1 et une sphère centrée sur l'origine de rayon 1.05. Puis pour passer du maillage 'M_1' au maillage 'M_2', on remplace la sphère par une boîte encadrant le cube de côté 0.5, pointant sur l'origine. On notera que le type de raffinement n'a pas été précisé ; par défaut, il sera donc conforme.
 ::
 
   dircase = "/tmp"
@@ -69,16 +70,13 @@ On procède ici au raffinement selon des zones. Pour passer du maillage initial
   # Creation of the zones
   # =====================
   # Box "Zone_0"
-  Zone_0 = homard.CreateZone('Zone_0', 2)
-  Zone_0.SetBox(-0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
+  Zone_0 = homard.CreateZoneBox('Zone_0', -0.1, 1.1, -0.1, 1.1, 0.9, 1.1)
   #
   # Sphere "Zone_1"
-  Zone_1 = homard.CreateZone('Zone_1', 4)
-  Zone_1.SetSphere(0., 0., 0., 1.05)
+  Zone_1 = homard.CreateZoneSphere('Zone_1', 0., 0., 0., 1.05)
   #
   # Box "Zone_2"
-  Zone_2 = homard.CreateZone('Zone_2', 2)
-  Zone_2.SetBox(-0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
+  Zone_2 = homard.CreateZoneBox('Zone_2', -0.1, 0.51, -0.1, 0.51, -0.1, 0.51)
   #
   # Hypothesis "Hypo_0"
   # ===================
@@ -94,18 +92,18 @@ On procède ici au raffinement selon des zones. Pour passer du maillage initial
   homard.AssociateHypoZone('Zone_0', 'Hypo_1')
   homard.AssociateHypoZone('Zone_2', 'Hypo_1')
   #
-  # Case "Case_0"
+  # Case "Case_1"
   # =============
-  Case_0 = homard.CreateCase('Case_0', 'MZERO', dircase+'/tutorial_2.00.med')
-  Case_0.SetDirName(dircase)
+  Case_1 = homard.CreateCase('Case_1', 'MZERO', dircase+'/tutorial_2.00.med')
+  Case_1.SetDirName(dircase)
   #
   # Iteration "Iter_0"
   # ==================
-  Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
+  Iter_0 = homard.CreateIteration('Iter_0', Case_1.GetIter0Name())
   Iter_0.SetMeshName('M_1')
   Iter_0.SetMeshFile(dircase+'/maill.01.med')
   homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-  codret = homard.Compute('Iter_0', 1)
+  codret = Iter_0.Compute(1)
   #
   # Iteration "Iter_1"
   # ==================
@@ -113,10 +111,10 @@ On procède ici au raffinement selon des zones. Pour passer du maillage initial
   Iter_1.SetMeshName('M_2')
   Iter_1.SetMeshFile(dircase+'/maill.02.med')
   homard.AssociateIterHypo('Iter_1', 'Hypo_1')
-  codret = homard.Compute('Iter_1', 1)
+  codret = Iter_1.Compute(1)
 
 .. note::
-  Téléchargement des fichiers
+  Téléchargement des fichiers
 
   * :download:`maillage initial<files/tutorial_2.00.med.gz>`
   * :download:`commandes python<files/tutorial_2.py>`
@@ -126,61 +124,229 @@ Raffinement selon un champ
 """"""""""""""""""""""""""
 .. index:: single: champ
 
-On procède ici au raffinement selon un champ. Les hypothèses servent à définir le nom du champ et les seuils de raffinement/déraffinement. La donnée du fichier et des instants est faite dans l'itération.
+On procède ici au raffinement selon un champ. Les hypothèses servent à définir le nom du champ et les seuils de raffinement/déraffinement. La donnée du fichier et des instants est faite dans l'itération. Des champs sur les noeuds ou sur les mailles sont interpolés.
+Pour adapter le maillage H_1 issu de l'itération Iter_1, deux variantes sont appliquées. Dans la première, Iter_2, le champ est un champ scalaire d'indicateurs d'erreur et on découpe les 1.5% de mailles où l'erreur est la plus grande. Dans la seconde variante, Iter_2_bis, on se base sur un champ vectoriel et on examine le saut de ce vecteur entre une maille et ses voisines : on découpera là où la norme infinie de ce saut est supérieure au seuil absolu de 0.0001.
 ::
 
   dircase = "/tmp"
   #
-  # Hypothesis "Hypo_0"
-  # ===================
-  Hypo_0 = homard.CreateHypothesis('Hypo_0')
-  Hypo_0.SetAdapRefinUnRef(1, 1, 0)
+  # Hypothesis "Hypo_0vers1"
+  # ========================
+  Hypo_0vers1 = homard.CreateHypothesis('Hypo_0vers1')
+  Hypo_0vers1.SetAdapRefinUnRef(1, 1, 0)
   # Characterization of the field
-  Hypo_0.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
-  Hypo_0.SetUseComp(0)
-  Hypo_0.AddComp('ERREST          ')
-  Hypo_0.SetRefinThr(3, 1.0)
+  Hypo_0vers1.SetField('SOLU_0__QIRE_ELEM_SIGM__________')
+  Hypo_0vers1.SetUseComp(0)
+  Hypo_0vers1.AddComp('ERREST          ')
+  Hypo_0vers1.SetRefinThr(3, 1.0)
+  Hypo_0vers1.SetTypeFieldInterp(2)
+  Hypo_0vers1.AddFieldInterp('SOLU_0__DEPL____________________')
+  Hypo_0vers1.AddFieldInterp('SOLU_0__ERRE_ELEM_SIGM__________')
   #
-  # Hypothesis "Hypo_1"
-  # ===================
-  Hypo_1 = homard.CreateHypothesis('Hypo_1')
-  Hypo_1.SetAdapRefinUnRef(1, 1, 1)
+  # Hypothesis "Hypo_1vers2"
+  # ========================
+  Hypo_1vers2 = homard.CreateHypothesis('Hypo_1vers2')
+  Hypo_1vers2.SetAdapRefinUnRef(1, 1, 1)
+  # Characterization of the field
+  Hypo_1vers2.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
+  Hypo_1vers2.SetUseComp(0)
+  Hypo_1vers2.AddComp('ERREST          ')
+  Hypo_1vers2.SetRefinThr(3, 1.5)
+  Hypo_1vers2.SetUnRefThr(3, 6.)
+  Hypo_1vers2.SetTypeFieldInterp(2)
+  Hypo_1vers2.AddFieldInterp('SOLU_1__DEPL____________________')
+  Hypo_1vers2.AddFieldInterp('SOLU_1__QIRE_ELEM_SIGM__________')
+  #
+  # Hypothesis "Hypo_1vers2_bis"
+  # ============================
+  Hypo_1vers2_bis = homard.CreateHypothesis('Hypo_1vers2_bis')
+  Hypo_1vers2_bis.SetAdapRefinUnRef(1, 1, 1)
   # Characterization of the field
-  Hypo_1.SetField('SOLU_1__QIRE_ELEM_SIGM__________')
-  Hypo_1.SetUseComp(0)
-  Hypo_1.AddComp('ERREST          ')
-  Hypo_1.SetRefinThr(3, 1.5)
-  Hypo_1.SetUnRefThr(3, 6.)
+  Hypo_1vers2_bis.SetField('SOLU_1__DEPL____________________')
+  Hypo_1vers2_bis.SetUseComp(1)
+  Hypo_1vers2_bis.AddComp('DX')
+  Hypo_1vers2_bis.AddComp('DY')
+  Hypo_1vers2_bis.AddComp('DZ')
+  Hypo_1vers2_bis.SetRefinThr(1, 0.0001)
+  Hypo_1vers2_bis.SetUnRefThr(1, 0.000001)
+  Hypo_1vers2_bis.SetTypeFieldInterp(0)
   #
-  # Case "Case_0"
+  # Case "Case_1"
   # =============
-  Case_0 = homard.CreateCase('Case_0', 'G_0', dircase+'/tutorial_3.00.med')
-  Case_0.SetDirName(dircase)
+  Case_1 = homard.CreateCase('Case_1', 'G_0', dircase+'/tutorial_3.00.med')
+  Case_1.SetDirName(dircase)
   #
-  # Iteration "Iter_0"
+  # Iteration "Iter_1"
   # ==================
-  Iter_0 = homard.CreateIteration('Iter_0', Case_0.GetIter0Name())
-  Iter_0.SetMeshName('H_1')
-  Iter_0.SetMeshFile(dircase+'/maill.01.med')
-  Iter_0.SetField(dircase+'/tutorial_3.00.med', 1, 1)
-  homard.AssociateIterHypo('Iter_0', 'Hypo_0')
-  codret = homard.Compute('Iter_0', 1)
+  Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name())
+  Iter_1.SetMeshName('H_1')
+  Iter_1.SetMeshFile(dircase+'/maill.01.med')
+  Iter_1.SetFieldFile(dircase+'/tutorial_3.00.med')
+  Iter_1.SetTimeStepRank( 1, 1)
+  homard.AssociateIterHypo('Iter_1', 'Hypo_0vers1')
+  codret = Iter_1.Compute(1)
+  #
+  # Iteration "Iter_2"
+  # ==================
+  Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+  Iter_2.SetMeshName('H_2')
+  Iter_2.SetMeshFile(dircase+'/maill.02.med')
+  Iter_2.SetFieldFile(dircase+'/tutorial_3.01.med')
+  Iter_2.SetTimeStepRank(1, 1)
+  homard.AssociateIterHypo('Iter_2', 'Hypo_1vers2')
+  codret = Iter_2.Compute(1)
+  #
+  # Iteration "Iter_2_bis"
+  # ======================
+  Iter_2_bis = homard.CreateIteration('Iter_2_bis', 'Iter_1')
+  Iter_2_bis.SetMeshName('H_2_bis')
+  Iter_2_bis.SetMeshFile(dircase+'/maill.02.bis.med')
+  Iter_2_bis.SetFieldFile(dircase+'/tutorial_3.01.med')
+  Iter_2_bis.SetTimeStepRank(1, 1)
+  homard.AssociateIterHypo('Iter_2_bis', 'Hypo_1vers2_bis')
+  codret = Iter_2_bis.Compute(1)
+
+.. note::
+  Téléchargement des fichiers
+
+  * :download:`maillage et champ étape 0<files/tutorial_3.00.med.gz>`
+  * :download:`maillage et champ étape 1<files/tutorial_3.01.med.gz>`
+  * :download:`commandes python<files/tutorial_3.py>`
+
+
+Suivi de frontières courbes
+"""""""""""""""""""""""""""
+.. index:: single: champ
+
+On teste ici le suivi des frontières courbes : des frontières analytiques pour décrire les différentes surfaces des tuyaux et une frontière discrète pour décrire les lignes d'intersection des deux tuyaux. Le pilotage du raffinement est le suivant : raffinement uniforme de toutes les mailles contenues dans des groupes désignés.
+::
+
+  dircase = "/tmp"
+  #
+  # Creation of the boundaries
+  # ==========================
+  Boundary_1 = homard.CreateBoundaryDi('intersection', 'PIQUAGE', dircase+'/tutorial_4.fr.med')
+  #
+  Boundary_2 = homard.CreateBoundaryCylinder('cyl_1_ext', 0.0, 25., -25., 25., 50., 75., 100.)
+  #
+  Boundary_3 = homard.CreateBoundaryCylinder('cyl_2_ext', 17.5, -2.5, -12.5, -100., -75., -25., 50.)
+  #
+  Boundary_4 = homard.CreateBoundaryCylinder('cyl_1_int', 0.0, 25., -25., 25., 50., 75., 75.)
+  #
+  Boundary_5 = homard.CreateBoundaryCylinder('cyl_2_int', 17.5, -2.5, -12.5, -100., -75., -25., 25.)
+  #
+  # Hypothesis "Hypo"
+  # ===================
+  # Creation of the hypothesis Hypo_1
+  Hypo_1 = homard.CreateHypothesis('Hypo_1')
+  Hypo_1.SetAdapRefinUnRef(-1, 1, 0)
+  Hypo_1.AddGroup('T1_INT_I')
+  Hypo_1.AddGroup('T1_INT_O')
+  Hypo_1.AddGroup('T2_INT')
+  # Creation of the hypothesis Hypo_2
+  Hypo_2 = homard.CreateHypothesis('Hypo_2')
+  Hypo_2.SetAdapRefinUnRef(-1, 1, 0)
+  Hypo_2.AddGroup('T1_EXT_I')
+  Hypo_2.AddGroup('T1_EXT_O')
+  Hypo_2.AddGroup('T2_EXT')
+  #
+  # Case "Case"
+  # =============
+  Case = homard.CreateCase('Case', 'PIQUAGE', dircase+'/tutorial_4.00.med')
+  Case.SetDirName(dircase)
+  Case.AddBoundaryGroup( 'intersection', '' )
+  Case.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_I' )
+  Case.AddBoundaryGroup( 'cyl_1_ext', 'T1_EXT_O' )
+  Case.AddBoundaryGroup( 'cyl_2_ext', 'T2_EXT' )
+  Case.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_I' )
+  Case.AddBoundaryGroup( 'cyl_1_int', 'T1_INT_O' )
+  Case.AddBoundaryGroup( 'cyl_2_int', 'T2_INT' )
+  #
+  # Creation of the iterations
+  # ==========================
+  # Creation of the iteration Iter_1
+  Iter_1 = homard.CreateIteration('Iter_1', Case.GetIter0Name() )
+  Iter_1.SetMeshName('PIQUAGE_1')
+  Iter_1.SetMeshFile(dircase+'/maill.01.med')
+  homard.AssociateIterHypo('Iter_1', 'Hypo_1')
+  codret = Iter_1.Compute(1)
+  # Creation of the iteration Iter_2
+  Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1' )
+  Iter_2.SetMeshName('PIQUAGE_2')
+  Iter_2.SetMeshFile(dircase+'/maill.02.med')
+  homard.AssociateIterHypo('Iter_2', 'Hypo_2')
+  codret = Iter_2.Compute(1)
+
+.. note::
+  Téléchargement des fichiers
+
+  * :download:`maillage initial<files/tutorial_4.00.med.gz>`
+  * :download:`maillage de la frontière discrète<files/tutorial_4.fr.med.gz>`
+  * :download:`commandes python<files/tutorial_4.py>`
+
+
+Instructions spécifiques au 2D
+""""""""""""""""""""""""""""""
+.. index:: single: 2D
+
+Les instructions pour adapter un maillage 2D sont exactement identiques à celles nécessaires à l'adaptation d'un maillage 3D. La seule exception concerne le raffinement selon des zones géométriques : des fonctions différentes sont utilisées pour pouvoir définir des zones 2D. On donne alors les coordonnées 2D des zones, en précisant l'orientation du plan du maillage.
+Dans le cas présenté ici, on raffine une première fois toutes les mailles contenues dans un disque percé, puis dans une seconde itération, toutes les mailles contenues dans un rectangle. On notera l'utilisation du suivi des frontières circulaires du domaine.
+::
+
+  dircase = "/tmp"
+  #
+  # Creation of the boundaries
+  # ==========================
+  # Creation of the discrete boundary Boun_1
+  Boun_1 = homard.CreateBoundaryDi('Boun_1', 'MAIL_EXT', dircase+'/tutorial_5.fr.med')
+  #
+  # Creation of the zones
+  # =====================
+  # Creation of the disk with hole enveloppe
+  enveloppe = homard.CreateZoneDiskWithHole( 'enveloppe', 0., 0., 250., 193., 1 )
+  # Creation of the rectangle quart_sup
+  quart_sup = homard.CreateZoneBox2D( 'quart_sup', 0., 250., 0., 250., 1 )
+  #
+  # Hypothesis
+  # ==========
+  # Creation of the hypothesis Hypo_1
+  Hypo_1 = homard.CreateHypothesis('Hypo_1')
+  Hypo_1.SetAdapRefinUnRef(0, 1, 0)
+  homard.AssociateHypoZone('enveloppe', 'Hypo_1')
+  # Creation of the hypothesis Hypo_2
+  Hypo_2 = homard.CreateHypothesis('Hypo_2')
+  Hypo_2.SetAdapRefinUnRef(0, 1, 0)
+  homard.AssociateHypoZone('quart_sup', 'Hypo_2')
+  #
+  # Case "Case_1"
+  # =============
+  Case_1 = homard.CreateCase('Case_1', 'COEUR_2D', dircase+'/tutorial_5.00.med')
+  Case_1.SetDirName(dircase)
+  Case_1.SetConfType(3)
+  Case_1.AddBoundaryGroup('Boun_1', '')
   #
   # Iteration "Iter_1"
   # ==================
-  Iter_1 = homard.CreateIteration('Iter_1', 'Iter_0')
-  Iter_1.SetMeshName('H_2')
-  Iter_1.SetMeshFile('/tmp/maill.02.med')
-  Iter_1.SetField(dircase+'/tutorial_3.01.med', 1, 1)
+  Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name())
+  Iter_1.SetMeshName('COEUR_2D_01')
+  Iter_1.SetMeshFile(dircase+'/maill.01.med')
   homard.AssociateIterHypo('Iter_1', 'Hypo_1')
-  codret = homard.Compute('Iter_1', 1)
+  codret = Iter_1.Compute(1)
+  #
+  # Iteration "Iter_2"
+  # ==================
+  Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+  Iter_2.SetMeshName('COEUR_2D_02')
+  Iter_2.SetMeshFile(dircase+'/maill.02.med')
+  homard.AssociateIterHypo('Iter_2', 'Hypo_2')
+  codret = Iter_2.Compute(1)
 
 .. note::
-  Téléchargement des fichiers
+  Téléchargement des fichiers
 
-  * :download:`maillage et champ étape 0<files/tutorial_3.00.med.gz>`
-  * :download:`maillage et champ étape 1<files/tutorial_3.01.med.gz>`
-  * :download:`commandes python<files/tutorial_3.py>`
+  * :download:`maillage initial<files/tutorial_5.00.med.gz>`
+  * :download:`maillage de la frontière discrète<files/tutorial_5.fr.med.gz>`
+  * :download:`commandes python<files/tutorial_5.py>`
 
 
 .. toctree::
diff --git a/idl/Gen.xml b/idl/Gen.xml
new file mode 100644 (file)
index 0000000..4902bdf
--- /dev/null
@@ -0,0 +1,1107 @@
+<?xml version='1.0' encoding='us-ascii' ?>
+
+<begin-catalog>
+    <path-prefix-list></path-prefix-list>
+    <type-list>
+        <sequence content="string" name="HOMARD/listeHypotheses"></sequence>
+        <sequence content="string" name="HOMARD/listeZones"></sequence>
+        <sequence content="string" name="HOMARD/listeIterations"></sequence>
+        <sequence content="string" name="HOMARD/listeCases"></sequence>
+        <sequence content="string" name="HOMARD/listeBoundarys"></sequence>
+    </type-list>
+    <component-list>
+        <component>
+            <component-name>HOMARD</component-name>
+            <component-username>HOMARD</component-username>
+            <component-type>OTHER</component-type>
+            <component-author>HOMARD team - EDF RD</component-author>
+            <component-version>1.1</component-version>
+            <component-comment>unknown</component-comment>
+            <component-multistudy>1</component-multistudy>
+            <component-impltype>1</component-impltype>
+            <component-icone>HOMARD_2.png</component-icone>
+            <constraint></constraint>
+            <component-interface-list>
+                <component-interface-name>HOMARD</component-interface-name>
+                <component-interface-comment>unknown</component-interface-comment>
+                <component-service-list>
+                    <component-service>
+                        <service-name>CreateCase</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateHypothesis</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Hypothesis</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>PreviousIterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Iteration</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneBox</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ymini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ymaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneSphere</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneCylinder</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Height</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZonePipe</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Height</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>InternalRadius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneBox2D</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Umini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Umaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneDisk</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ucentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneDiskWithHole</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ucentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>InternalRadius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryDi</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryCylinder</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundarySphere</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>AssociateIterHypo</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>AssociateHypoZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCaseName</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCas</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetBoundary</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetHypothesis</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Hypothesis</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/HOMARD_Iteration</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllCases</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeCases</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllBoundarys</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeBoundarys</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllHypotheses</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeHypotheses</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllZones</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeZones</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllIterations</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeIterations</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>SetCurrentStudy</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theStudy</inParameter-name>
+                                <inParameter-type>SALOMEDS/Study</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>AssociateIterIter</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>PreviousIterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>DissociateHypoZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>InvalideBoundary</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>InvalideZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>InvalideHypo</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>InvalideIter</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>Compute</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>etatMenage</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>boolean</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>VerifieDir</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>boolean</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>PublishFileUnderIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>NomIter</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>NomFich</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Commentaire</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>PublishResultInSmesh</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>NomFich</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>IconeType</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCurrentStudy</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>SALOMEDS/Study</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCurrentStudyID</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>long</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                </component-service-list>
+            </component-interface-list>
+        </component>
+    </component-list>
+</begin-catalog>
index 628b0b0ffa92c8ba6f2d331a876c9b7d67e62dfb..79131c7b363895448d7ec2e78358b3a31b2feb13 100644 (file)
@@ -1,14 +1,36 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_Boundary_IDL
 #define _HOMARD_Boundary_IDL
 
+#include "SALOME_Component.idl"
 #include "SALOME_Exception.idl"
+#include "SALOMEDS.idl"
+
 #include "HOMARD_Cas.idl"
 #include "HOMARD_Zone.idl"
 
 
 module HOMARD
 {
-  interface HOMARD_Boundary
+  interface HOMARD_Boundary : Engines::EngineComponent
   {
 
     void     SetName (in string NomBoundary)               raises (SALOME::SALOME_Exception);
@@ -26,11 +48,11 @@ module HOMARD
     void     SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre,
                           in double Xaxe, in double Yaxe, in double Zaxe, in double rayon)
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD::double_array GetCylinder()                     raises (SALOME::SALOME_Exception);
 
     void     SetSphere (in double Xcentre, in double Ycentre, in double Zcentre, in double rayon)
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD::double_array GetSphere()                       raises (SALOME::SALOME_Exception);
+
+    HOMARD::double_array GetCoords()                       raises (SALOME::SALOME_Exception);
 
     void     SetLimit (in double Xincr, in double Yincr, in double Zincr)
                                                            raises (SALOME::SALOME_Exception);
index 7804983f92a0ee413a5acd0abd12d4afda77bbc9..d79354bc4549009199e6c9ac746f7d086b0e0b1c 100644 (file)
@@ -1,7 +1,28 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_CAS_IDL
 #define _HOMARD_CAS_IDL
 
+#include "SALOME_Component.idl"
 #include "SALOME_Exception.idl"
+#include "SALOMEDS.idl"
 
 module HOMARD
 {
@@ -10,7 +31,7 @@ module HOMARD
  typedef sequence<string> ListBoundaryGroupType ;
 
 
- interface HOMARD_Cas
+ interface HOMARD_Cas : Engines::EngineComponent
   {
 
     void     SetName(in string NomCas)                     raises (SALOME::SALOME_Exception);
@@ -39,6 +60,9 @@ module HOMARD
     void     AddBoundaryGroup(in string NomBoundary, in string Group)
                                                            raises (SALOME::SALOME_Exception);
 
+    void     SetPyram(in long Pyram)                       raises (SALOME::SALOME_Exception);
+    long     GetPyram()                                    raises (SALOME::SALOME_Exception);
+
   };
 };
 #endif
index a84e17650e86f9a80d75c3155828f80e26cf0b54..49f7180fbe7635014d5b56992722b4aadd87965b 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef __HOMARD_GEN__
 #define __HOMARD_GEN__
 
@@ -19,57 +38,116 @@ module HOMARD
   typedef sequence<string> listeCases;
   typedef sequence<string> listeBoundarys;
 
-  interface HOMARD_Gen : Engines::Component, SALOMEDS::Driver
+  interface HOMARD_Gen : Engines::EngineComponent, SALOMEDS::Driver
   {
-    HOMARD_Cas        CreateCase(in string nomCas, in string MeshName, in string FileName )
+//
+// A. Les methodes qui suivent sont celles que l'on retrouvera dans
+//    le fichier resources/HOMARDCatalog.xml.in pour definir le composant HOMARD dans YACS
+//    A priori, ce sont les seules sont l'utilisateur doit connaitre l'existence.
+//
+// A.1. Les creations
+//
+    HOMARD_Cas        CreateCase(in string CaseName, in string MeshName, in string FileName )
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD_Hypothesis CreateHypothesis(in string nomHypothesis )
+    HOMARD_Hypothesis CreateHypothesis(in string HypoName )
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD_Iteration  CreateIteration(in string nomIter, in string nomIterParent )
+    HOMARD_Iteration  CreateIteration(in string IterName, in string PreviousIterName )
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD_Zone       CreateZone(in string nomZone, in long typeZone)
+    HOMARD_Zone       CreateZoneBox (in string ZoneName,
+                                     in double Xmini, in double Xmaxi,
+                                     in double Ymini, in double Ymaxi,
+                                     in double Zmini, in double Zmaxi)
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD_Boundary   CreateBoundary(in string nomBoundary, in long typeBoundary)
+    HOMARD_Zone       CreateZoneSphere (in string ZoneName,
+                                        in double Xcentre, in double Ycentre, in double Zcentre,
+                                        in double Radius)
                                                            raises (SALOME::SALOME_Exception);
-
-    void AssociateIterIter(in string nomIterParent, in string nomIter)
+    HOMARD_Zone       CreateZoneCylinder (in string ZoneName,
+                                          in double Xcentre, in double Ycentre, in double Zcentre,
+                                          in double Xaxis, in double Yaxis, in double Zaxis,
+                                          in double Radius, in double Height)
+                                                           raises (SALOME::SALOME_Exception);
+    HOMARD_Zone       CreateZonePipe (in string ZoneName,
+                                      in double Xcentre, in double Ycentre, in double Zcentre,
+                                      in double Xaxis, in double Yaxis, in double Zaxis,
+                                      in double Radius, in double Height, in double InternalRadius)
+                                                           raises (SALOME::SALOME_Exception);
+    HOMARD_Zone       CreateZoneBox2D (in string ZoneName,
+                                       in double Umini, in double Umaxi,
+                                       in double Vmini, in double Vmaxi,
+                                       in long Orient)
+                                                           raises (SALOME::SALOME_Exception);
+    HOMARD_Zone       CreateZoneDisk (in string ZoneName,
+                                      in double Ucentre, in double Vcentre,
+                                      in double Radius, in long Orient)
+                                                           raises (SALOME::SALOME_Exception);
+    HOMARD_Zone       CreateZoneDiskWithHole (in string ZoneName,
+                                              in double Ucentre, in double Vcentre,
+                                              in double Radius, in double InternalRadius,
+                                              in long Orient)
                                                            raises (SALOME::SALOME_Exception);
-    void AssociateIterHypo(in string nomIter, in string nomHypothesis)
+    HOMARD_Boundary   CreateBoundaryDi (in string BounName, in string MeshName, in string FileName)
                                                            raises (SALOME::SALOME_Exception);
-    void AssociateHypoZone(in string nomZone, in string nomHypothesis)
+    HOMARD_Boundary   CreateBoundaryCylinder (in string BounName,
+                                      in double Xcentre, in double Ycentre, in double Zcentre,
+                                      in double Xaxis, in double Yaxis, in double Zaxis,
+                                      in double Radius)
+                                                           raises (SALOME::SALOME_Exception);
+    HOMARD_Boundary   CreateBoundarySphere (in string BounName,
+                                      in double Xcentre, in double Ycentre, in double Zcentre,
+                                      in double Radius)
+                                                           raises (SALOME::SALOME_Exception);
+//
+// A.2. Les associations
+//
+    void AssociateIterHypo(in string IterName, in string HypoName)
+                                                           raises (SALOME::SALOME_Exception);
+    void AssociateHypoZone(in string HypoName, in string ZoneName, in long TypeUse)
+                                                           raises (SALOME::SALOME_Exception);
+//
+// A.3. Les informations
+//
+    string            GetCaseName(in string IterName)      raises (SALOME::SALOME_Exception);
+    HOMARD_Cas        GetCas(in string CaseName)           raises (SALOME::SALOME_Exception);
+    HOMARD_Boundary   GetBoundary(in string BounName)      raises (SALOME::SALOME_Exception);
+    HOMARD_Zone       GetZone(in string ZoneName)          raises (SALOME::SALOME_Exception);
+    HOMARD_Hypothesis GetHypothesis(in string HypoName)    raises (SALOME::SALOME_Exception);
+    HOMARD_Iteration  GetIteration(in string IterName)     raises (SALOME::SALOME_Exception);
+    listeCases      GetAllCases()                          raises (SALOME::SALOME_Exception);
+    listeBoundarys  GetAllBoundarys()                      raises (SALOME::SALOME_Exception);
+    listeHypotheses GetAllHypotheses()                     raises (SALOME::SALOME_Exception);
+    listeZones      GetAllZones()                          raises (SALOME::SALOME_Exception);
+    listeIterations GetAllIterations()                     raises (SALOME::SALOME_Exception);
+//
+// A.4. L'etude
+//
+    void     SetCurrentStudy(in SALOMEDS::Study theStudy)  raises (SALOME::SALOME_Exception);
+//
+// B. Les methodes qui suivent n'apparaissent pas dans le composant HOMARD dans YACS
+//    L'utilisateur ne devrait pas les connaitre (ni s'en servir, a fortiori)
+//
+    void AssociateIterIter(in string PreviousIterName, in string IterName)
                                                            raises (SALOME::SALOME_Exception);
-    void DissociateHypoZone(in string nomZone, in string nomHypothesis)
+    void DissociateHypoZone(in string ZoneName, in string HypoName)
                                                            raises (SALOME::SALOME_Exception);
 
-    void InvalideZone (in string nomZone)                  raises (SALOME::SALOME_Exception);
-    void InvalideHypo (in string nomHypo)                  raises (SALOME::SALOME_Exception);
-    void InvalideIter (in string nomIter)                  raises (SALOME::SALOME_Exception);
+    void InvalideBoundary (in string BounName)             raises (SALOME::SALOME_Exception);
+    void InvalideZone (in string ZoneName)                 raises (SALOME::SALOME_Exception);
+    void InvalideHypo (in string HypoName)                 raises (SALOME::SALOME_Exception);
+    void InvalideIter (in string IterName)                 raises (SALOME::SALOME_Exception);
 
-    boolean  Compute (in string nomIter, in long etatMenage)
+    long  Compute (in string IterName, in long etatMenage)
                                                            raises (SALOME::SALOME_Exception);
 
-    boolean  VerifieDir (in string nomIter)                raises (SALOME::SALOME_Exception);
-
-    string  GetCaseName(in string nomIter)                 raises (SALOME::SALOME_Exception);
+    boolean  VerifieDir (in string IterName)               raises (SALOME::SALOME_Exception);
 
     void  PublishFileUnderIteration(in string NomIter, in string NomFich, in string Commentaire)
                                                            raises (SALOME::SALOME_Exception);
     void  PublishResultInSmesh(in string NomFich, in long IconeType)
                                                            raises (SALOME::SALOME_Exception);
-    HOMARD_Cas        GetCas(in string nomCas)             raises (SALOME::SALOME_Exception);
-    HOMARD_Boundary   GetBoundary(in string nomBoundary)   raises (SALOME::SALOME_Exception);
-    HOMARD_Zone       GetZone(in string nomZone)           raises (SALOME::SALOME_Exception);
-    HOMARD_Hypothesis GetHypothesis(in string nomHypo)     raises (SALOME::SALOME_Exception);
-    HOMARD_Iteration  GetIteration(in string nomIter)      raises (SALOME::SALOME_Exception);
-
-    listeCases      GetAllCases()                          raises (SALOME::SALOME_Exception);
-    listeBoundarys  GetAllBoundarys()                      raises (SALOME::SALOME_Exception);
-    listeHypotheses GetAllHypotheses()                     raises (SALOME::SALOME_Exception);
-    listeZones      GetAllZones()                          raises (SALOME::SALOME_Exception);
-    listeIterations GetAllIterations()                     raises (SALOME::SALOME_Exception);
 
-    void     SetCurrentStudy(in SALOMEDS::Study theStudy)  raises (SALOME::SALOME_Exception);
     SALOMEDS::Study GetCurrentStudy()                      raises (SALOME::SALOME_Exception);
+    long     GetCurrentStudyID()                           raises (SALOME::SALOME_Exception);
   };
 };
 
index cef2b040e8c56585b4ffd92c4ed16770441ba655..7ff0b81ba13f9be6cbd57c35894a23f7ef4e3218 100644 (file)
@@ -1,7 +1,29 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_HYPOTHESIS_IDL
 #define _HOMARD_HYPOTHESIS_IDL
 
+#include "SALOME_Component.idl"
 #include "SALOME_Exception.idl"
+#include "SALOMEDS.idl"
+
 #include "HOMARD_Cas.idl"
 
 module HOMARD
@@ -11,7 +33,7 @@ module HOMARD
   typedef sequence<string> listeComposantsHypo ;
   typedef sequence<long>   listeTypes;
   typedef sequence<string> listFieldInterpHypo;
+
   struct InfosHypo
   {
       string FieldName;
@@ -23,7 +45,7 @@ module HOMARD
       double ThreshC;
   };
 
-  interface HOMARD_Hypothesis
+  interface HOMARD_Hypothesis : Engines::EngineComponent
   {
 
     void     SetName(in string NomHypothesis)              raises (SALOME::SALOME_Exception);
@@ -55,7 +77,7 @@ module HOMARD
     void       SupprComp()                                 raises (SALOME::SALOME_Exception);
     listeComposantsHypo GetListComp()                      raises (SALOME::SALOME_Exception);
 
-    void       AddZone(in string NomZone)                  raises (SALOME::SALOME_Exception);
+    void       AddZone(in string NomZone, in long TypeUse) raises (SALOME::SALOME_Exception);
     void       SupprZone(in string NomZone)                raises (SALOME::SALOME_Exception);
     listeZonesHypo GetZones()                              raises (SALOME::SALOME_Exception);
 
@@ -72,6 +94,15 @@ module HOMARD
     void       SupprFieldInterp()                          raises (SALOME::SALOME_Exception);
     listFieldInterpHypo GetListFieldInterp()               raises (SALOME::SALOME_Exception);
 
+    void     SetNivMax(in long NivMax)                     raises (SALOME::SALOME_Exception);
+    long     GetNivMax()                                   raises (SALOME::SALOME_Exception);
+
+    void     SetDiamMin(in double DiamMin)                 raises (SALOME::SALOME_Exception);
+    double   GetDiamMin()                                  raises (SALOME::SALOME_Exception);
+
+    void     SetAdapInit(in long AdapInit)                 raises (SALOME::SALOME_Exception);
+    long     GetAdapInit()                                 raises (SALOME::SALOME_Exception);
+
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
 
   };
index b6b73417137ba34f26987ccad3257f3da94a18f4..12612c05472a4dc9ac83f5cef1a650bafd4e5409 100644 (file)
@@ -1,13 +1,34 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_ITERATION_IDL
 #define _HOMARD_ITERATION_IDL
 
+#include "SALOME_Component.idl"
 #include "SALOME_Exception.idl"
+#include "SALOMEDS.idl"
 
 module HOMARD
 {
   typedef sequence<string> listeIterFilles ;
 
-  interface HOMARD_Iteration
+  interface HOMARD_Iteration : Engines::EngineComponent
   {
     void     SetName(in string NomIter)                    raises (SALOME::SALOME_Exception);
     string   GetName()                                     raises (SALOME::SALOME_Exception);
@@ -49,7 +70,7 @@ module HOMARD
     void     SetMessFile(in string MessFile)               raises (SALOME::SALOME_Exception);
     string   GetMessFile()                                 raises (SALOME::SALOME_Exception);
 
-    boolean  Compute()                                     raises (SALOME::SALOME_Exception);
+    long     Compute(in long etatMenage)                   raises (SALOME::SALOME_Exception);
 
     string   GetDumpPython()                               raises (SALOME::SALOME_Exception);
   };
index cc337b2a296e52b7adc6786b167467628cb00905..1ae7aaec06875d9e29610c55e63df2586e0ace93 100644 (file)
@@ -1,14 +1,35 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_Zone_IDL
 #define _HOMARD_Zone_IDL
 
+#include "SALOME_Component.idl"
 #include "SALOME_Exception.idl"
+#include "SALOMEDS.idl"
 
 module HOMARD
 {
   typedef sequence<double    > double_array ;
   typedef sequence<string    > listeHypo ;
 
-  interface HOMARD_Zone
+  interface HOMARD_Zone : Engines::EngineComponent
   {
 
     void     SetName (in string NomZone)                   raises (SALOME::SALOME_Exception);
@@ -17,13 +38,20 @@ module HOMARD
     void     SetZoneType (in long ZoneType)                raises (SALOME::SALOME_Exception);
     long     GetZoneType()                                 raises (SALOME::SALOME_Exception);
 
-    void     SetBox    (in double Xmini, in double Xmaxi, in double Ymini, 
+    void     SetBox    (in double Xmini, in double Xmaxi, in double Ymini,
                         in double Ymaxi, in double Zmini, in double Zmaxi)
                                                            raises (SALOME::SALOME_Exception);
-    double_array GetBox()                                  raises (SALOME::SALOME_Exception);
     void     SetSphere (in double Xcentre, in double Ycentre, in double Zcentre, in double rayon)
                                                            raises (SALOME::SALOME_Exception);
-    double_array GetSphere()                               raises (SALOME::SALOME_Exception);
+    void     SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre,
+                          in double Xaxis, in double Yaxis, in double Zaxis,
+                          in double Rayon, in double Haut)
+                                                           raises (SALOME::SALOME_Exception);
+    void     SetPipe( in double Xcentre, in double Ycentre, in double ZCentre,
+                      in double Xaxis, in double Yaxis, in double Zaxis,
+                      in double Rayon, in double Haut, in double Rayonint )
+                                                           raises (SALOME::SALOME_Exception);
+    double_array GetCoords()                               raises (SALOME::SALOME_Exception);
     void     SetLimit (in double Xincr, in double Yincr, in double Zincr)
                                                            raises (SALOME::SALOME_Exception);
     double_array GetLimit()                                raises (SALOME::SALOME_Exception);
index 6f0537d821315daf21a635f3fd5f1ce2b4b96292..f6e520d4e1577619b21e1f375e4fc7a73b4bf1fd 100644 (file)
@@ -1,24 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # This Makefile is responsible of generating the client and server
 # implementation of IDL interfaces for both C++ and python usage.
 # The building process of the C++ files is in charge of each source
@@ -28,6 +26,8 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 BASEIDL_FILES = HOMARD_Gen.idl HOMARD_Cas.idl HOMARD_Hypothesis.idl HOMARD_Iteration.idl HOMARD_Zone.idl HOMARD_Boundary.idl
 
+BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py)
+
 # This variable defines the files to be installed
 dist_salomeidl_DATA = $(BASEIDL_FILES)
 
@@ -43,12 +43,14 @@ nodist_libSalomeIDLHOMARD_la_SOURCES = \
         HOMARD_BoundarySK.cc \
         HOMARD_GenSK.cc
 
+BUILT_SOURCES = $(nodist_libSalomeIDLHOMARD_la_SOURCES)
+
 # header files must be exported: other modules have to use this library
 nodist_salomeinclude_HEADERS = $(BASEIDL_FILES:%.idl=%.hh)
 
 libSalomeIDLHOMARD_la_CPPFLAGS =               \
        $(KERNEL_CXXFLAGS)                      \
-       -I$(top_builddir)/salome_adm/unix       \
+       -I$(top_builddir)/adm_local/unix        \
        -I$(top_builddir)/idl                   \
        $(MED_CXXFLAGS)                         \
        @CORBA_CXXFLAGS@                        \
@@ -75,7 +77,7 @@ IDLCXXFLAGS = \
        -I$(top_builddir)/idl/salome \
        -I$(KERNEL_ROOT_DIR)/idl/salome \
        -I$(MED_ROOT_DIR)/idl/salome \
-       -I$(top_builddir)/salome_adm/unix
+       -I$(top_builddir)/adm_local/unix
 IDLPYFLAGS  = \
        @IDLPYFLAGS@ \
        -I$(KERNEL_ROOT_DIR)/idl/salome \
@@ -85,8 +87,8 @@ IDLPYFLAGS  = \
 SUFFIXES = .idl .hh SK.cc
 .idlSK.cc:
        $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-.idl.hh:
-       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
+#.idl.hh:
+#      $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
 
 install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%)
        $(INSTALL) -d  $(DESTDIR)$(salomepythondir)
@@ -94,9 +96,15 @@ install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%)
          $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \
        done
 
-# uninstall-local removes too much, but it works in distcheck
+# we want to remove only staff generated for IDL files and nothing more
 uninstall-local:
-       rm -rf $(DESTDIR)$(salomepythondir)/*
+       @for modulen in HOMARD ; do \
+         test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \
+         test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \
+       done ; \
+       for filen in $(BASEIDL_FILES_PY) ; do \
+         echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \
+       done
 
 mostlyclean-local:
        -rm -f *.hh *.cc .depidl
diff --git a/resources/HOMARDCatalog.xml b/resources/HOMARDCatalog.xml
deleted file mode 100644 (file)
index 659b9ac..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version='1.0' encoding='us-ascii' ?>
-<!-- XML component catalog -->
-<begin-catalog>
-
-<!-- Path prefix information -->
-
-<path-prefix-list>
-</path-prefix-list>
-
-<!-- Component list -->
-<component-list>
-        <component>
-                <!-- Component identification -->
-                <component-name>HOMARD</component-name>
-               <component-username>HOMARD GUI</component-username>
-                <component-type>Data</component-type>
-                <component-author>C. Caremoli</component-author>
-                <component-version> 1.0</component-version>
-                <component-comment>EDF - RD</component-comment>
-                <component-multistudy>1</component-multistudy>
-                <component-icone>HOMARD.png</component-icone>
-                <constraint>'linux' ~ OS</constraint>
-       
-       </component>
-</component-list>
-</begin-catalog>
diff --git a/resources/HOMARDCatalog.xml.in b/resources/HOMARDCatalog.xml.in
new file mode 100644 (file)
index 0000000..6aee5c2
--- /dev/null
@@ -0,0 +1,910 @@
+<?xml version='1.0' encoding='us-ascii' ?>
+
+<!--
+  Copyright (C) 2011-2012  CEA/DEN, EDF RD
+
+  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
+
+-->
+
+<!-- XML component catalog -->
+<begin-catalog>
+
+<!-- Path prefix information -->
+
+<path-prefix-list>
+</path-prefix-list>
+
+<type-list>
+  <objref name="Study"  id="IDL:SALOMEDS/Study:1.0" />
+  <objref name="HOMARD_Gen"  id="IDL:HOMARD/HOMARD_Gen:1.0" />
+  <objref name="HOMARD_Cas" id="IDL:HOMARD/HOMARD_Cas:1.0"/>
+  <objref name="HOMARD_Iteration" id="IDL:HOMARD/HOMARD_Iteration:1.0"/>
+  <objref name="HOMARD_Zone" id="IDL:HOMARD/HOMARD_Zone:1.0"/>
+  <objref name="HOMARD_Hypothesis" id="IDL:HOMARD/HOMARD_Hypothesis:1.0"/>
+  <objref name="HOMARD_Boundary" id="IDL:HOMARD/HOMARD_Boundary:1.0"/>
+  <sequence content="string" name="HOMARD/listeHypotheses"></sequence>
+  <sequence content="string" name="HOMARD/listeZones"></sequence>
+  <sequence content="string" name="HOMARD/listeIterations"></sequence>
+  <sequence content="string" name="HOMARD/listeCases"></sequence>
+  <sequence content="string" name="HOMARD/listeBoundarys"></sequence>
+</type-list>
+
+
+<!-- Component list -->
+<component-list>
+        <component>
+            <component-name>HOMARD</component-name>
+            <component-username>HOMARD</component-username>
+            <component-type>OTHER</component-type>
+            <component-author>HOMARD team - EDF RD</component-author>
+            <component-version>1.0</component-version>
+            <component-comment>unknown</component-comment>
+            <component-multistudy>1</component-multistudy>
+            <component-impltype>1</component-impltype>
+            <component-icone>HOMARD_2.png</component-icone>
+            <constraint></constraint>
+            <component-interface-list>
+                <component-interface-name>HOMARD_Gen</component-interface-name>
+                <component-interface-comment>unknown</component-interface-comment>
+                <component-service-list>
+                    <component-service>
+                        <service-name>CreateCase</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateHypothesis</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Hypothesis</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>PreviousIterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Iteration</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneBox</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ymini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ymaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneSphere</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneCylinder</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Height</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZonePipe</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Height</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>InternalRadius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneBox2D</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Umini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Umaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vmini</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vmaxi</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneDisk</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ucentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateZoneDiskWithHole</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ucentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Vcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>InternalRadius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Orient</inParameter-name>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryDi</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>MeshName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>FileName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundaryCylinder</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Yaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zaxis</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>CreateBoundarySphere</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Xcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Ycentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Zcentre</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>Radius</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>AssociateIterHypo</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>AssociateHypoZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCaseName</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetCas</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>CaseName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Cas</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetBoundary</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>BounName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Boundary</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetZone</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>ZoneName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Zone</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetHypothesis</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>HypoName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Hypothesis</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetIteration</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>IterName</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD_Iteration</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllCases</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeCases</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllBoundarys</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeBoundarys</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllHypotheses</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeHypotheses</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllZones</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeZones</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllIterations</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>HOMARD/listeIterations</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>SetCurrentStudy</service-name>
+                        <service-author>HOMARD team - EDF RD</service-author>
+                        <service-version>1.1</service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theStudy</inParameter-name>
+                                <inParameter-type>Study</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list></outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                </component-service-list>
+            </component-interface-list>
+        </component>
+    </component-list>
+</begin-catalog>
index 02b505b70e3ae9f6670654b790caf9807764334a..573fadb56878de1963b4cbf45bddf7189380447e 100644 (file)
@@ -1,4 +1,26 @@
 <?xml version='1.0' encoding='us-ascii'?>
+
+<!--
+  Copyright (C) 2011-2012  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
+
+-->
+
 <!DOCTYPE application PUBLIC "" "desktop.dtd">
 <application title="HOMARD component" date="9/12/2001" author="C Caremoli" appId="HOMARD" >
 <desktop>
index 104871ac8c954dc2ba8d69ea173ce1275aece049..0b93312256694b1f74f7b49c28d4b94bb3c45999 100644 (file)
@@ -1,4 +1,26 @@
 <?xml version='1.0' encoding='us-ascii'?>
+
+<!--
+  Copyright (C) 2011-2012  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
+
+-->
 <!DOCTYPE application PUBLIC "" "desktop.dtd">
 <application title="HOMARD component" date="9/12/2001" author="C Caremoli" appId="HOMARD" >
 <desktop>
index b5b556861d2acdab532acb16e4f72e31106355d6..d2a60218f13594e6b66e9b9941350d2f0adbeeb7 100644 (file)
@@ -1,53 +1,69 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
-#
-#  $Header$
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 
 dist_salomeres_DATA =   \
-       SalomeApp.xml   \
+       $(top_builddir)/resources/SalomeApp.xml \
+       boxdxy.png \
+       boxdxy_2.png \
        boxdxyz.png \
        boxdxyz_2.png \
        cas_calcule.png \
+       cas_non_calcule.png \
        cylinderpointvector.png \
        cylinderpointvector_2.png \
+       delete.png \
+       disk.png \
+       disk_2.png \
+       diskwithhole.png \
+       diskwithhole_2.png \
        HOMARD.png \
        HOMARD_2.png \
        hypotheses.png \
        iter0.png \
        iter_calculee.png \
+       iter_calulee.png \
        iter_next.png \
        iter_non_calculee.png \
+       iter_non_calulee.png \
        med.png \
        mesh_compute.png \
+       mesh_hypo_edit.png \
        mesh_tree_mesh.png \
+       mesh_tree_importedmesh.png \
+       mesh_whatis.png \
+       pipe.png \
+       pipe_2.png \
        spherepoint.png \
        spherepoint_2.png \
        texte.png \
        texte_2.png \
+       triangle.png \
        whatis.png \
+       zone_boxdxyz.png \
+       zone_boxdxyz_2.png \
        zone_icone.png \
-       zone_icone_2.png
+       zone_icone_2.png \
+       zone_spherepoint.png \
+       zone_spherepoint_2.png \
+       zones.png
 
 # VSR: little trick to avoid putting if HOMARDCatalog.xml to the distribution archive
 nodist_salomeres_SCRIPTS = HOMARDCatalog.xml
diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml
deleted file mode 100644 (file)
index 289cf17..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<document>
-  <section name="HOMARD">
-    <!-- Major module parameters -->
-    <parameter name="name"    value="Homard"/>
-    <parameter name="icon"    value="HOMARD.png"/>
-  </section>
-  <section name="resources">
-    <!-- Module resources -->
-    <parameter name="HOMARD" value="${HOMARD_ROOT_DIR}/share/salome/resources/homard"/>
-  </section>
-</document>
diff --git a/resources/SalomeApp.xml.in b/resources/SalomeApp.xml.in
new file mode 100644 (file)
index 0000000..8176739
--- /dev/null
@@ -0,0 +1,38 @@
+<!--
+  Copyright (C) 2011-2012  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
+
+-->
+<document>
+  <section name="HOMARD">
+    <!-- Major module parameters -->
+    <parameter name="name"          value="Homard"/>
+    <parameter name="icon"          value="HOMARD.png"/>
+    <parameter name="version"       value="@VERSION@"/>
+    <parameter name="documentation" value="homard_help"/>
+  </section>
+  <section name="homard_help" >
+    <parameter name="sub_menu"          value="%1 module"/>
+    <parameter name="User's Guide"      value="%HOMARD_ROOT_DIR%/share/doc/salome/gui/HOMARD/index.html"/>
+  </section>
+  <section name="resources">
+    <!-- Module resources -->
+    <parameter name="HOMARD" value="%HOMARD_ROOT_DIR%/share/salome/resources/homard"/>
+  </section>
+</document>
diff --git a/resources/boxdxy.png b/resources/boxdxy.png
new file mode 100644 (file)
index 0000000..8ef4752
Binary files /dev/null and b/resources/boxdxy.png differ
diff --git a/resources/boxdxy_2.png b/resources/boxdxy_2.png
new file mode 100644 (file)
index 0000000..b99611e
Binary files /dev/null and b/resources/boxdxy_2.png differ
index e37f46577d390d108707edf944e83ae86b633925..bdd3fd9043105a3d63b84b9d86bd6f585c7185f3 100644 (file)
Binary files a/resources/cylinderpointvector.png and b/resources/cylinderpointvector.png differ
diff --git a/resources/disk.png b/resources/disk.png
new file mode 100644 (file)
index 0000000..bec2414
Binary files /dev/null and b/resources/disk.png differ
diff --git a/resources/disk_2.png b/resources/disk_2.png
new file mode 100644 (file)
index 0000000..be5fb36
Binary files /dev/null and b/resources/disk_2.png differ
diff --git a/resources/diskwithhole.png b/resources/diskwithhole.png
new file mode 100644 (file)
index 0000000..f78fd7a
Binary files /dev/null and b/resources/diskwithhole.png differ
diff --git a/resources/diskwithhole_2.png b/resources/diskwithhole_2.png
new file mode 100644 (file)
index 0000000..6f2db7c
Binary files /dev/null and b/resources/diskwithhole_2.png differ
diff --git a/resources/pipe.png b/resources/pipe.png
new file mode 100644 (file)
index 0000000..2bae295
Binary files /dev/null and b/resources/pipe.png differ
diff --git a/resources/pipe_2.png b/resources/pipe_2.png
new file mode 100644 (file)
index 0000000..42a4936
Binary files /dev/null and b/resources/pipe_2.png differ
diff --git a/resources/pipeold.png b/resources/pipeold.png
new file mode 100644 (file)
index 0000000..b3ddac4
Binary files /dev/null and b/resources/pipeold.png differ
diff --git a/resources/plane.png b/resources/plane.png
new file mode 100644 (file)
index 0000000..cbea334
Binary files /dev/null and b/resources/plane.png differ
index d819555aace2ffc9089b45ca7a1130a7dffac0df..6414f6bc7c50cb3c2faa890f16c3a78fb926de03 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Boundary.cxx
 //  Author : Paul RASCLE, EDF
@@ -67,45 +64,32 @@ std::string HOMARD_Boundary::GetDumpPython() const
 {
   std::ostringstream aScript;
   aScript << "\n# Creation of the ";
-  if ( _BoundaryType == 0 ) { aScript << "discrete boundary " << _NomBoundary << "\n";}
-  if ( _BoundaryType == 1 ) { aScript << "cylinder " << _NomBoundary << "\n";}
-  if ( _BoundaryType == 2 ) { aScript << "sphere " << _NomBoundary << "\n"; }
-
-  aScript << "\t" << _NomBoundary << " = homard.CreateBoundary('" << _NomBoundary ;
-  aScript << "', " << _BoundaryType << ")\n";
 //
   switch (_BoundaryType)
   {
     case 0:
     {
-      aScript << "\t" <<_NomBoundary << ".SetMeshFile('";
-      aScript << _MeshFile << "')\n";
-      aScript << "\t" <<_NomBoundary << ".SetMeshName('";
-      aScript << _MeshName << "')\n";
-      break;
+      aScript << "discrete boundary " << _NomBoundary << "\n";
+      aScript << "\t" << _NomBoundary << " = homard.CreateBoundaryDi(\"" << _NomBoundary << "\", ";
+      aScript << "\"" << _MeshName << "\", ";
+      aScript << "\"" << _MeshFile << "\")\n";
+      break ;
     }
-
     case 1:
     {
-      aScript << "\t" << _NomBoundary << ".SetCylinder(" ;
+      aScript << "cylinder " << _NomBoundary << "\n";
+      aScript << "\t" << _NomBoundary << " = homard.CreateBoundaryCylinder(\"" << _NomBoundary << "\", ";
       aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _rayon << ")\n";
-      break;
+      break ;
     }
-
     case 2:
     {
-      aScript << "\t" << _NomBoundary << ".SetSphere(" ;
+      aScript << "sphere" << _NomBoundary << "\n";
+      aScript << "\t" << _NomBoundary << " = homard.CreateBoundarySphere(\"" << _NomBoundary << "\", ";
       aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _rayon << ")\n";
-      break;
+      break ;
     }
   }
-  aScript << "\t" <<_NomBoundary << ".SetCaseCreation('";
-  aScript << _NomCasCreation << "')\n";
-
-  std::list<std::string>::const_iterator it;
-  for ( it=_ListGroupSelected.begin(); it!=_ListGroupSelected.end();it++)
-       aScript << "\t" << _NomBoundary << ".AddGroup('"  << (*it) <<  "')\n" ;
-
 
   return aScript.str();
 }
@@ -177,27 +161,35 @@ std::vector<double> HOMARD_Boundary::GetLimit() const
 }
 
 //=======================================================================================
-std::vector<double> HOMARD_Boundary::GetCylinder() const
+std::vector<double> HOMARD_Boundary::GetCoords() const
 {
   std::vector<double> mesCoor;
-  mesCoor.push_back( _Xcentre );
-  mesCoor.push_back( _Ycentre );
-  mesCoor.push_back( _Zcentre );
-  mesCoor.push_back( _Xaxe );
-  mesCoor.push_back( _Yaxe );
-  mesCoor.push_back( _Zaxe );
-  mesCoor.push_back( _rayon );
-  return mesCoor;
-}
-
-//=======================================================================================
-std::vector<double> HOMARD_Boundary::GetSphere() const
-{
-  std::vector<double> mesCoor;
-  mesCoor.push_back( _Xcentre );
-  mesCoor.push_back( _Ycentre );
-  mesCoor.push_back( _Zcentre );
-  mesCoor.push_back( _rayon );
+//
+  switch (_BoundaryType)
+  {
+//  Cylindre
+    case 1:
+    {
+      mesCoor.push_back( _Xcentre );
+      mesCoor.push_back( _Ycentre );
+      mesCoor.push_back( _Zcentre );
+      mesCoor.push_back( _Xaxe );
+      mesCoor.push_back( _Yaxe );
+      mesCoor.push_back( _Zaxe );
+      mesCoor.push_back( _rayon );
+      break ;
+    }
+//  Sphere
+    case 2:
+    {
+      mesCoor.push_back( _Xcentre );
+      mesCoor.push_back( _Ycentre );
+      mesCoor.push_back( _Zcentre );
+      mesCoor.push_back( _rayon );
+      break ;
+    }
+    ASSERT ( _BoundaryType == -1 ) ;
+  }
   return mesCoor;
 }
 //=============================================================================
index 50eceede97e9bbe8d64d095ae929feb3ae398943..011a99988fc54571018f0c4e5b04667fcfd2c672 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Boundary.hxx
 //  Author : Paul RASCLE, EDF
@@ -53,10 +50,8 @@ public:
 
   void                          SetCylinder( double X0, double X1, double X2, double X3,
                                              double X4, double X5, double X6 );
-  std::vector<double>           GetCylinder() const;
-
   void                          SetSphere( double X0, double X1, double X2, double X3 );
-  std::vector<double>           GetSphere() const;
+  std::vector<double>           GetCoords() const;
 
   void                          SetBoundaryType( int BoundaryType );
   int                           GetBoundaryType() const;
index 9683beb0dd93c2aaa760ba7acf5f3c19e19221f8..17537bea8f6fb679eb35d3193fba70b1cf648308 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Cas.cxx
 //  Author : Paul RASCLE, EDF
 #include "utilities.h"
 #include <iostream>
 
+#ifndef WIN32
+# include <unistd.h>
+#endif
+
 //=============================================================================
 /*!
  *  default constructor:
@@ -56,7 +57,7 @@ void HOMARD_Cas::SetDirName( const char* NomDir )
      {
        _NomDir = std::string( NomDir );
      }
-    else 
+    else
     {
        // GERALD -- QMESSAGE BOX
        // std::cerr << "Pb pour entrer dans le repertoire :  "<<NomDir << std::endl;
@@ -91,23 +92,28 @@ std::string HOMARD_Cas::GetDumpPython() const
 //=============================================================================
 {
   std::ostringstream aScript;
-  aScript << "\t" <<_NomCas << ".SetDirName('";
-  aScript << _NomDir << "')\n";
+  aScript << "\t" <<_NomCas << ".SetDirName(\"";
+  aScript << _NomDir << "\")\n";
   aScript << "\t" <<_NomCas << ".SetConfType(";
   aScript << _ConfType << ")\n";
 // Suivi de frontieres
   std::list<std::string>::const_iterator it = _ListBoundaryGroup.begin();
   while(it != _ListBoundaryGroup.end())
   {
-    aScript << "\t" <<_NomCas << ".AddBoundaryGroup('";
-    aScript << *it << "', '";
+    aScript << "\t" <<_NomCas << ".AddBoundaryGroup(\"";
+    aScript << *it << "\", \"";
     it++;
-    aScript << *it << "')\n";
+    aScript << *it << "\")\n";
     it++;
   }
+  if ( _Pyram > 0 )
+  {
+    aScript << "\t" <<_NomCas << ".SetPyram(";
+    aScript << _Pyram << ")\n";
+  }
+
   return aScript.str();
 }
-//AddBoundaryGroup( 'cyl_4', 'T2_INT' )
 //=============================================================================
 void HOMARD_Cas::AddIteration( const char* NomIteration )
 //=============================================================================
@@ -150,7 +156,7 @@ const int HOMARD_Cas::GetConfType() const
   return _ConfType;
 }
 //=============================================================================
-int HOMARD_Cas::GetNumber() 
+int HOMARD_Cas::GetNumber()
 //=============================================================================
 
 {
@@ -227,4 +233,17 @@ void HOMARD_Cas::SupprBoundaryGroup()
 {
   _ListBoundaryGroup.clear();
 }
-
+//=============================================================================
+void HOMARD_Cas::SetPyram( int Pyram )
+//=============================================================================
+{
+  MESSAGE ("SetPyram, Pyram = " << Pyram );
+  _Pyram = Pyram;
+}
+//=============================================================================
+const int HOMARD_Cas::GetPyram() const
+//=============================================================================
+{
+  MESSAGE ("GetPyram, Pyram = " << _Pyram );
+  return _Pyram;
+}
index 68e391f37c65d885e6210ac846e0f6d51968e65e..30dda0777976a62de9b1cf6ab7681e26a72dbed6 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Cas.hxx
 //  Author : Paul RASCLE, EDF
@@ -70,6 +67,9 @@ public:
   const std::list<std::string>& GetBoundaryGroup() const;
   void                          SupprBoundaryGroup();
 
+  void                          SetPyram( int Pyram );
+  const int                     GetPyram() const;
+
 private:
   std::string                   _NomCas;
   std::string                   _NomDir;
@@ -79,6 +79,8 @@ private:
   std::list<std::string>        _ListGroup;
   std::list<std::string>        _ListBoundaryGroup;
 
+  int                           _Pyram;
+
   typedef std::string           IterName;
   typedef std::list<IterName>   IterNames;
   IterNames                     _ListIter;
index 49dbd12bc7192505b2750ce1f65b1da839cebd5c..ccd5429f7ae60cb2556152138cc844ff034f343a 100644 (file)
@@ -1,23 +1,20 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.
+// 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
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-// ----------------------------------------------------------------------------
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : HOMARD_DriverTools.cxx
 //  Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
@@ -42,13 +39,13 @@ namespace HOMARD
   /*!
     \brief Read next chunk of data from the string
     \internal
-    
+
     The function tries to read next chunk of the data from the input string \a str.
     The parameter \a start specifies the start position of next chunk. If the operation
     read the chunk successfully, after its completion this parameter will refer to the
     start position of the next chunk. The function returns resulting chunk as a string.
     The status of the operation is returned via \a ok parameter.
-    
+
     \param str source data stream string
     \param start start position to get next chunk
     \param ok in this variable the status of the chunk reading operation is returned
@@ -132,6 +129,10 @@ namespace HOMARD
     os << separator() << ListString.size();
     for ( it = ListString.begin(); it != ListString.end(); ++it )
          os << separator() << *it;
+
+    os << separator() << cas.GetPyram();
+
+//    MESSAGE( ". Fin avec "<<os.str());
     return os.str();
   }
 //
@@ -168,6 +169,8 @@ namespace HOMARD
     os << separator() << iteration.GetHypoName();
     os << separator() << iteration.GetCaseName();
     os << separator() << iteration.GetDirName();
+
+//    MESSAGE( ". Fin avec "<<os.str());
     return os.str();
   }
 //
@@ -193,10 +196,10 @@ namespace HOMARD
     os << separator() << hypothesis.GetThreshR();
     os << separator() << hypothesis.GetUnRefThrType();
     os << separator() << hypothesis.GetThreshC();
+    os << separator() << hypothesis.GetUseField();
     os << separator() << hypothesis.GetUseCompI();
     os << separator() << hypothesis.GetTypeFieldInterp();
 
-
     std::list<std::string> ListString = hypothesis.GetIterations();
     std::list<std::string>::const_iterator it;
     os << separator() << ListString.size();
@@ -222,6 +225,11 @@ namespace HOMARD
     os << separator() << ListString.size();
     for ( it = ListString.begin(); it != ListString.end(); ++it )
           os << separator() << *it;
+
+    os << separator() << hypothesis.GetNivMax();
+    os << separator() << hypothesis.GetDiamMin();
+
+//    MESSAGE( ". Fin avec "<<os.str());
     return os.str();
   }
 //
@@ -236,16 +244,13 @@ namespace HOMARD
   std::string Dump( const HOMARD_Zone& zone )
   {
     std::stringstream os;
+    MESSAGE( ". Dump de la zone "<<zone.GetName());
     os << zone.GetName();
     os << separator() << zone.GetZoneType();
 
-    std::vector<double> box = zone.GetBox();
-    for ( int i = 0; i < box.size(); i++ )
-      os << separator() << ( i < box.size() ? box[i] : 0. );
-
-    std::vector<double> sphere = zone.GetSphere();
-    for ( int i = 0; i < 4; i++ )
-      os << separator() << ( i < sphere.size() ? sphere[i] : 0. );
+    std::vector<double> coords = zone.GetCoords();
+    for ( int i = 0; i < coords.size(); i++ )
+      os << separator() << ( i < coords.size() ? coords[i] : 0. );
 
     std::vector<double> limit = zone.GetLimit();
     for ( int i = 0; i < 3; i++ )
@@ -256,9 +261,9 @@ namespace HOMARD
     std::list<std::string>::const_iterator it;
     for ( it = hypos.begin(); it != hypos.end(); ++it )
       os << separator() << *it;
-    return os.str();  
-
 
+//    MESSAGE( ". Fin avec "<<os.str());
+    return os.str();
   }
 //
 // 1.5. Archivage d'une frontiere
@@ -272,25 +277,27 @@ namespace HOMARD
   std::string Dump( const HOMARD_Boundary& boundary )
   {
     std::stringstream os;
+    MESSAGE( ". Dump de la frontiere "<<boundary.GetName());
+
+    int BoundaryType = boundary.GetBoundaryType() ;
 
     os << boundary.GetName() ;
-    os << separator() << boundary.GetBoundaryType() ;
+    os << separator() << BoundaryType ;
     os << separator() << boundary.GetCaseCreation() ;
-    os << separator() << boundary.GetMeshFile();
-    os << separator() << boundary.GetMeshName();
-
-    std::vector<double> coor = boundary.GetLimit();
-    for ( int i = 0; i < coor.size(); i++ )
-          os << separator() << coor[i];
-
-    coor = boundary.GetCylinder() ; 
-    for ( int i = 0; i < coor.size(); i++ )
-          os << separator() << coor[i];
 
-    coor = boundary.GetSphere() ; 
-    for ( int i = 0; i < coor.size(); i++ )
-          os << separator() << coor[i];
-    return os.str();
+    if ( BoundaryType == 0 )
+    {
+      os << separator() << boundary.GetMeshName();
+      os << separator() << boundary.GetMeshFile();
+    }
+    else {
+      std::vector<double> coor = boundary.GetCoords() ;
+      for ( int i = 0; i < coor.size(); i++ )
+            os << separator() << coor[i];
+      std::vector<double> limit = boundary.GetLimit();
+      for ( int i = 0; i < limit.size(); i++ )
+            os << separator() << limit[i];
+    }
 
     std::list<std::string> ListString = boundary.GetGroups();
     std::list<std::string>::const_iterator it;
@@ -298,6 +305,8 @@ namespace HOMARD
     for ( it = ListString.begin(); it != ListString.end(); ++it )
           os << separator() << *it;
 
+//    MESSAGE( ". Fin avec "<<os.str());
+    return os.str();
   }
 
 //
@@ -314,6 +323,7 @@ namespace HOMARD
   */
   bool Restore( HOMARD_Cas& cas, const std::string& stream )
   {
+    MESSAGE( ". Restoration du cas ");
     std::string::size_type start = 0;
     std::string chunk, chunkNext;
     bool ok;
@@ -356,7 +366,7 @@ namespace HOMARD
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     size = atoi( chunk.c_str() );
-    for ( int i = 0; i < size; i++ ) 
+    for ( int i = 0; i < size; i++ )
     {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
@@ -374,6 +384,11 @@ namespace HOMARD
       if ( !ok ) return false;
       cas.AddBoundaryGroup( chunk.c_str(), chunkNext.c_str() );
     }
+
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    cas.SetPyram( atoi( chunk.c_str() ) );
+
     return true;
   }
 //
@@ -433,7 +448,7 @@ namespace HOMARD
       if ( !ok ) return false;
       iteration.AddIteration( chunk.c_str() );
     }
-    // 
+    //
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     iteration.SetHypoName( chunk.c_str() );
@@ -458,7 +473,7 @@ namespace HOMARD
   bool Restore( HOMARD_Hypothesis& hypothesis, const std::string& stream )
   {
     std::string::size_type start = 0;
-    std::string chunk;
+    std::string chunk, chunkNext;
     bool ok;
 
     chunk = getNextChunk( stream, start, ok );
@@ -501,6 +516,10 @@ namespace HOMARD
     double threshc = strtod( chunk.c_str(), 0 );
     hypothesis.SetUnRefThr( typethc, threshc );
 
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    hypothesis.SetUseField(atoi(chunk.c_str()));
+
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     hypothesis.SetUseComp(atoi(chunk.c_str()));
@@ -524,7 +543,11 @@ namespace HOMARD
     for ( int i = 0; i < size; i++ ) {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
-      hypothesis.AddZone( chunk.c_str() );
+      i++;
+      chunkNext = getNextChunk( stream, start, ok );
+      int typeuse = atoi( chunkNext.c_str() );
+      if ( !ok ) return false;
+      hypothesis.AddZone( chunk.c_str(), typeuse );
     }
 
     chunk = getNextChunk( stream, start, ok );
@@ -553,6 +576,15 @@ namespace HOMARD
       if ( !ok ) return false;
       hypothesis.AddFieldInterp( chunk.c_str() );
     }
+
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    hypothesis.SetNivMax( atoi( chunk.c_str() ) );
+
+    chunk = getNextChunk( stream, start, ok );
+    if ( !ok ) return false;
+    hypothesis.SetDiamMin( strtod( chunk.c_str(), 0 ) );
+
     return true;
   }
 
@@ -570,32 +602,38 @@ namespace HOMARD
     std::string::size_type start = 0;
     std::string chunk;
     bool ok;
-    // 
+    //
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     zone.SetName( chunk.c_str() );
     //
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
-    zone.SetZoneType( atoi( chunk.c_str() ) );
-    //
+    int ZoneType = atoi( chunk.c_str() ) ;
+    zone.SetZoneType( ZoneType );
+    // Les coordonnees des zones : le nombre depend du type
     std::vector<double> coords;
-    coords.resize( 6 );
-    for ( int i = 0; i < 6; i++ ) {
+    int lgcoords ;
+    if ( ZoneType == 2 or ( ZoneType >= 11 and ZoneType <= 13 ) ) { lgcoords = 6 ; }
+    else if ( ZoneType == 4 ) { lgcoords = 4 ; }
+    else if ( ZoneType == 5 or ( ZoneType >= 31 and ZoneType <= 33 ) ) { lgcoords = 8 ; }
+    else if ( ZoneType == 7 or ( ZoneType >= 61 and ZoneType <= 63 ) ) { lgcoords = 9 ; }
+    else return false;
+    coords.resize( lgcoords );
+    for ( int i = 0; i < lgcoords; i++ ) {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
       coords[i] = strtod( chunk.c_str(), 0 );
     }
-    zone.SetBox( coords[0], coords[1], coords[2], coords[3], coords[4], coords[5] );
-    //
-    for ( int i = 0; i < 4; i++ ) {
-      chunk = getNextChunk( stream, start, ok );
-      if ( !ok ) return false;
-      coords[i] = strtod( chunk.c_str(), 0 );
-    }
-    zone.SetSphere( coords[0], coords[1], coords[2], coords[3] );
-
-    //
+    if ( ZoneType == 2 or ( ZoneType >= 11 and ZoneType <= 13 ) )
+    { zone.SetBox( coords[0], coords[1], coords[2], coords[3], coords[4], coords[5] ); }
+    else if ( ZoneType == 4 )
+    { zone.SetSphere( coords[0], coords[1], coords[2], coords[3] ); }
+    else if ( ZoneType == 5 or ( ZoneType >= 31 and ZoneType <= 33 ) )
+    { zone.SetCylinder( coords[0], coords[1], coords[2], coords[3], coords[4], coords[5], coords[6], coords[7] ); }
+    else if ( ZoneType == 7 or ( ZoneType >= 61 and ZoneType <= 63 ) )
+    { zone.SetPipe( coords[0], coords[1], coords[2], coords[3], coords[4], coords[5], coords[6], coords[7], coords[8] ); }
+    // Remarque : la taille de coords est suffisante pour les limites
     for ( int i = 0; i < 3; i++ ) {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
@@ -614,7 +652,6 @@ namespace HOMARD
     return true;
   }
 
-
 //
 // 2.5. Restauration d'une frontiere
 // =================================
@@ -637,46 +674,51 @@ namespace HOMARD
 
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
-    boundary.SetBoundaryType(atoi( chunk.c_str()) );
+    int BoundaryType = atoi( chunk.c_str() ) ;
+    boundary.SetBoundaryType( BoundaryType );
 
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     boundary.SetCaseCreation( chunk.c_str() );
 
-    chunk = getNextChunk( stream, start, ok );
-    if ( !ok ) return false;
-    boundary.SetMeshFile( chunk.c_str() );
-
-    chunk = getNextChunk( stream, start, ok );
-    if ( !ok ) return false;
-    boundary.SetMeshName( chunk.c_str() );
-
-
-    std::vector<double> coords;
-    coords.resize( 3 );
-    for ( int i = 0; i < 3; i++ ) {
+    // Si analytique, les coordonnees des frontieres : le nombre depend du type
+    // Si discret, le maillage
+    int lgcoords ;
+    if ( BoundaryType == 1 ) { lgcoords = 7 ; }
+    else if ( BoundaryType == 2 ) { lgcoords = 4 ; }
+    else { lgcoords = 0 ; }
+//
+    if ( lgcoords == 0 )
+    {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
-      coords[i] = strtod( chunk.c_str(), 0 );
-    }
-    boundary.SetLimit( coords[0], coords[1], coords[2]);
+      boundary.SetMeshName( chunk.c_str() );
 
-    coords.resize( 7 );
-    for ( int i = 0; i < 7; i++ ) {
       chunk = getNextChunk( stream, start, ok );
       if ( !ok ) return false;
-      coords[i] = strtod( chunk.c_str(), 0 );
+      boundary.SetMeshFile( chunk.c_str() );
     }
-    boundary.SetCylinder(coords[0],coords[1],coords[2],coords[3],coords[4],coords[5],coords[6]);
-
-    coords.resize( 4 );
-    for ( int i = 0; i < 4; i++ ) {
-      chunk = getNextChunk( stream, start, ok );
-      if ( !ok ) return false;
-      coords[i] = strtod( chunk.c_str(), 0 );
+    else
+    { std::vector<double> coords;
+      coords.resize( lgcoords );
+      for ( int i = 0; i < lgcoords; i++ ) {
+        chunk = getNextChunk( stream, start, ok );
+        if ( !ok ) return false;
+        coords[i] = strtod( chunk.c_str(), 0 );
+      }
+      if ( BoundaryType == 1 )
+      { boundary.SetCylinder(coords[0],coords[1],coords[2],coords[3],coords[4],coords[5],coords[6]); }
+      else if ( BoundaryType == 2 )
+      { boundary.SetSphere( coords[0], coords[1], coords[2], coords[3]); }
+      // Remarque : la taille de coords est suffisante pour les limites
+      for ( int i = 0; i < 3; i++ ) {
+        chunk = getNextChunk( stream, start, ok );
+        if ( !ok ) return false;
+        coords[i] = strtod( chunk.c_str(), 0 );
+      }
+      boundary.SetLimit( coords[0], coords[1], coords[2]);
     }
-    boundary.SetSphere( coords[0], coords[1], coords[2], coords[3]);
-
+    // Les groupes
     chunk = getNextChunk( stream, start, ok );
     if ( !ok ) return false;
     int size = atoi( chunk.c_str() );
index b5bf3231060c42ca800bd10fea6eea6658987c30..9ddd76d888b8672c4af6495bce0c1d21536ed425 100644 (file)
@@ -1,23 +1,20 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.
+// 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
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-// ----------------------------------------------------------------------------
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : HOMARD_DriverTools.hxx
 //  Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
index 9fa39797f41a504ad4ebc3f2f8424b0b69cdc57a..7b140e706a2900f406c3b01a5962b8c4175039c6 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Gen.cxx
 //  Author : Paul RASCLE, EDF
index 5293fe3010e9923455f5e5acab74ffdc5c33af30..f82c805e564b119a431120d6ad5ce8355a79b49a 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Gen.hxx
 //  Author : Paul RASCLE, EDF
index 4da42dd200c6fcb8d4908fee39cf87b8deb294ce..40874c5350f3002cc234c297210ecdc1702c9ae6 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Hypothesis.cxx
 //  Author : Paul RASCLE, EDF
@@ -39,7 +36,7 @@ HOMARD_Hypothesis::HOMARD_Hypothesis():
   _Field(""),
   _TypeThR(0), _ThreshR(0),
   _TypeThC(0), _ThreshC(0),
-  _UsCmpI(0),  _TypeFieldInterp(0)
+  _UsField(0), _UsCmpI(0),  _TypeFieldInterp(0)
 {
   MESSAGE("HOMARD_Hypothesis");
 }
@@ -91,28 +88,33 @@ std::string HOMARD_Hypothesis::GetName() const
 std::string HOMARD_Hypothesis::GetDumpPython() const
 {
   std::ostringstream aScript;
-  aScript << "\n# Creation of the hypothesis " << _NomHypo << "\n" ; 
-  aScript << "\t" << _NomHypo << " = homard.CreateHypothesis('" << _NomHypo << "')\n";
-  aScript << "\t" << _NomHypo << ".SetCaseCreation('" << _NomCasCreation << "')\n";
+  aScript << "\n# Creation of the hypothesis " << _NomHypo << "\n" ;
+  aScript << "\t" << _NomHypo << " = homard.CreateHypothesis(\"" << _NomHypo << "\")\n";
   aScript << "\t" << _NomHypo << ".SetAdapRefinUnRef(" << _TypeAdap << ", " << _TypeRaff << ", " << _TypeDera << ")\n";
 
 // Raffinement selon des zones geometriques
   std::list<std::string>::const_iterator it = _ListZone.begin();
+  int TypeUse ;
   while(it != _ListZone.end())
   {
-      aScript << "\thomard.AssociateHypoZone('"<< *it << "', '" <<_NomHypo << "')\n";
+      aScript << "\thomard.AssociateHypoZone(\""<< _NomHypo << "\", \"" << *it;
+      it++;
+      if ( *it == "1" ) { TypeUse =  1 ; }
+      else              { TypeUse = -1 ; }
+      aScript << "\", " << TypeUse << ")\n";
       it++;
   }
 
 // Raffinement selon un champ
   if ( _TypeAdap == 1 )
   {
-    aScript << "\t" << _NomHypo << ".SetField('" << _Field << "')\n";
+    aScript << "\t" << _NomHypo << ".SetField(\"" << _Field << "\")\n";
+    aScript << "\t" << _NomHypo << ".SetUseField(" << _UsField << ")\n";
     aScript << "\t" << _NomHypo << ".SetUseComp(" << _UsCmpI << ")\n";
     std::list<std::string>::const_iterator it_comp = _ListComposant.begin();
-    while(it_comp != _ListComposant.end()) 
+    while(it_comp != _ListComposant.end())
     {
-      aScript << "\t" << _NomHypo << ".AddComp('" << *it_comp << "')\n";
+      aScript << "\t" << _NomHypo << ".AddComp(\"" << *it_comp << "\")\n";
       it_comp++;
     }
     if ( _TypeRaff == 1 )
@@ -129,7 +131,7 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
 
 // Filtrage du raffinement par des groupes
    for ( it=_ListGroupSelected.begin(); it!=_ListGroupSelected.end();it++)
-       aScript << "\t" << _NomHypo << ".AddGroup('"  << (*it) <<  "')\n" ;
+       aScript << "\t" << _NomHypo << ".AddGroup(\""  << (*it) <<  "\")\n" ;
 
 // Interpolation champ
   aScript << "\t" << _NomHypo << ".SetTypeFieldInterp(" << _TypeFieldInterp << ")\n";
@@ -138,10 +140,25 @@ std::string HOMARD_Hypothesis::GetDumpPython() const
     std::list<std::string>::const_iterator it_champ = _ListFieldInterp.begin();
     while(it_champ != _ListFieldInterp.end())
     {
-      aScript << "\t" << _NomHypo << ".AddFieldInterp('" << *it_champ << "')\n";
+      aScript << "\t" << _NomHypo << ".AddFieldInterp(\"" << *it_champ << "\")\n";
       it_champ++;
     }
   }
+  if ( _NivMax > 0 )
+  {
+    aScript << "\tNivMax = " << _NivMax << "\n";
+    aScript << "\t" <<_NomHypo << ".SetNivMax(NivMax)\n";
+  }
+  if ( _DiamMin > 0 )
+  {
+    aScript << "\tDiamMin = " << _DiamMin << "\n";
+    aScript << "\t" <<_NomHypo << ".SetDiamMin(DiamMin)\n";
+  }
+  if ( _AdapInit != 0 )
+  {
+    aScript << "\tAdapInit = " << _AdapInit << "\n";
+    aScript << "\t" <<_NomHypo << ".SetAdapInit(AdapInit)\n";
+  }
 
   return aScript.str();
 }
@@ -203,11 +220,12 @@ int HOMARD_Hypothesis::GetUnRefType() const
 void HOMARD_Hypothesis::SetField( const char* FieldName )
 {
   _Field = std::string( FieldName );
-  MESSAGE( "dans SetField, FieldName : " << FieldName );
+  MESSAGE( "SetField : FieldName = " << FieldName );
 }
 //=============================================================================
 void HOMARD_Hypothesis::SetRefinThr( int TypeThR, double ThreshR )
 {
+  MESSAGE( "SetRefinThr : TypeThR = " << TypeThR << ", ThreshR = " << ThreshR );
   ASSERT(!(( TypeThR < 0) or (TypeThR > 3 )));
   _TypeThR = TypeThR;
   _ThreshR = ThreshR;
@@ -229,7 +247,7 @@ void HOMARD_Hypothesis::SetUseComp( int UsCmpI )
 void HOMARD_Hypothesis::SetUseField( int UsField )
 {
   ASSERT(!((UsField < 0) or (UsField > 1 )));
-  MESSAGE( "SetUseField a programmer ");
+  _UsField = UsField;
 }
 
 //=============================================================================
@@ -240,45 +258,32 @@ std::string HOMARD_Hypothesis::GetFieldName() const
 {
   return _Field;
 }
-
-//=============================================================================
-/*!
-*/
 //=============================================================================
 int HOMARD_Hypothesis::GetRefinThrType() const
 {
   return _TypeThR;
 }
-
-//=============================================================================
-/*!
-*/
 //=============================================================================
 double HOMARD_Hypothesis::GetThreshR() const
 {
   return _ThreshR;
 }
-
-//=============================================================================
-/*!
-*/
 //=============================================================================
 int HOMARD_Hypothesis::GetUnRefThrType() const
 {
   return _TypeThC;
 }
 
-//=============================================================================
-/*!
-*/
 //=============================================================================
 double HOMARD_Hypothesis::GetThreshC() const
 {
   return _ThreshC;
 }
 //=============================================================================
-/*!
-*/
+int HOMARD_Hypothesis::GetUseField() const
+{
+  return _UsField;
+}
 //=============================================================================
 int HOMARD_Hypothesis::GetUseCompI() const
 {
@@ -306,9 +311,13 @@ const std::list<std::string>& HOMARD_Hypothesis::GetIterations() const
 /*!
 */
 //=============================================================================
-void HOMARD_Hypothesis::AddZone( const char* NomZone )
+void HOMARD_Hypothesis::AddZone( const char* NomZone, int TypeUse )
 {
   _ListZone.push_back( std::string( NomZone ) );
+  std::stringstream saux1 ;
+  saux1 << TypeUse ;
+  std::string saux2 = saux1.str() ;
+  _ListZone.push_back( saux2 );
 }
 //=============================================================================
 void HOMARD_Hypothesis::SupprZone( const char* NomZone )
@@ -361,7 +370,7 @@ void HOMARD_Hypothesis::SetGroups( const std::list<std::string>& ListGroup )
 {
   _ListGroupSelected.clear();
   std::list<std::string>::const_iterator it = ListGroup.begin();
-  while(it != ListGroup.end()) 
+  while(it != ListGroup.end())
     _ListGroupSelected.push_back((*it++));
 }
 //=============================================================================
@@ -405,4 +414,39 @@ const std::list<std::string>& HOMARD_Hypothesis::GetListFieldInterp() const
 {
   return _ListFieldInterp;
 }
-
+//=============================================================================
+void HOMARD_Hypothesis::SetNivMax( int NivMax )
+//=============================================================================
+{
+  _NivMax = NivMax;
+}
+//=============================================================================
+const int HOMARD_Hypothesis::GetNivMax() const
+//=============================================================================
+{
+  return _NivMax;
+}
+//=============================================================================
+void HOMARD_Hypothesis::SetAdapInit( int AdapInit )
+//=============================================================================
+{
+  _AdapInit = AdapInit;
+}
+//=============================================================================
+const int HOMARD_Hypothesis::GetAdapInit() const
+//=============================================================================
+{
+  return _AdapInit;
+}
+//=============================================================================
+void HOMARD_Hypothesis::SetDiamMin( double DiamMin )
+//=============================================================================
+{
+  _DiamMin = DiamMin;
+}
+//=============================================================================
+const double HOMARD_Hypothesis::GetDiamMin() const
+//=============================================================================
+{
+  return _DiamMin;
+}
index fbf42325a80df056e79fb63a8e45ed7ca3d089de..c641cf9b21adb7b9fdb4ecc55809c9db04176bd6 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Hypothesis.hxx
 //  Author : Paul RASCLE, EDF
@@ -60,6 +57,7 @@ public:
   double                        GetThreshR()   const;
   int                           GetUnRefThrType()   const;
   double                        GetThreshC()   const;
+  int                           GetUseField()    const;
   int                           GetUseCompI()    const;
 
   void                          AddComp( const char* NomComposant );
@@ -70,7 +68,7 @@ public:
   void                          SupprIterations();
   const std::list<std::string>& GetIterations() const;
 
-  void                          AddZone( const char* NomZone );
+  void                          AddZone( const char* NomZone, int TypeUse );
   void                          SupprZone( const char* NomZone );
   void                          SupprZones();
   const std::list<std::string>& GetZones() const;
@@ -85,15 +83,20 @@ public:
   void                          SupprFieldInterp();
   const std::list<std::string>& GetListFieldInterp() const;
 
-
+  void                          SetNivMax( int NivMax );
+  const int                     GetNivMax() const;
+  void                          SetDiamMin( double DiamMin );
+  const double                  GetDiamMin() const;
+  void                          SetAdapInit( int AdapInit );
+  const int                     GetAdapInit() const;
 
 
 private:
   std::string                   _NomHypo;
   std::string                   _NomCasCreation;
 
-  int                           _TypeAdap; // -1 pour une adapation Uniforme, 
-                                           //  0 si l adaptation depend des zones, 
+  int                           _TypeAdap; // -1 pour une adapation Uniforme,
+                                           //  0 si l adaptation depend des zones,
                                            //  1 pour des champs
 
   int                           _TypeRaff;
@@ -104,10 +107,14 @@ private:
   int                           _TypeThC;
   double                        _ThreshR;
   double                        _ThreshC;
+  int                           _UsField;
   int                           _UsCmpI;
-  int                           _TypeFieldInterp; // 0 pour aucune interpolation, 
-                                                  // 1 pour interpolation de tous les champs, 
+  int                           _TypeFieldInterp; // 0 pour aucune interpolation,
+                                                  // 1 pour interpolation de tous les champs,
                                                   // 2 pour une liste
+  int                           _NivMax;
+  double                        _DiamMin;
+  int                           _AdapInit;
 
   std::list<std::string>        _ListIter;
   std::list<std::string>        _ListZone;
index 4953f568091e9e0c23edc4e0f0527545f5069541..3dcd98b1a46af63dd329d3614f070bdfb9bfc742 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Iteration.cxx
 //  Author : Paul RASCLE, EDF
@@ -55,18 +52,6 @@ HOMARD_Iteration::~HOMARD_Iteration()
   MESSAGE("~HOMARD_Iteration");
 }
 
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-bool HOMARD_Iteration::Compute()
-{
-  MESSAGE("Compute --> ne fait rien");
-  _Etat=true;
-  return true;
-}
-
 //=============================================================================
 /*!
 */
@@ -97,31 +82,33 @@ std::string HOMARD_Iteration::GetDumpPython() const
   aScript << "\n# Creation of the iteration " << _NomIter << "\n";
   if( _NumIter == 1 )
   {
-       aScript << "\t" << _NomIter << " = homard.CreateIteration('";
-       aScript <<  _NomIter << "', "<<  _NomCas << ".GetIter0Name() )\n";
+       aScript << "\t" << _NomIter << " = homard.CreateIteration(\"";
+       aScript <<  _NomIter << "\", "<<  _NomCas << ".GetIter0Name() )\n";
   }
    else
   {
-       aScript << "\t" << _NomIter << " = homard.CreateIteration('";
-       aScript <<  _NomIter << "', '" << _IterParent << "')\n";
+       aScript << "\t" << _NomIter << " = homard.CreateIteration(\"";
+       aScript <<  _NomIter << "\", \"" << _IterParent << "\")\n";
   }
 // Le nom du maillage produit
-  aScript << "\t" << _NomIter << ".SetMeshName('" << _NomMesh << "')\n" ;
+  aScript << "\t" << _NomIter << ".SetMeshName(\"" << _NomMesh << "\")\n" ;
 // Le fichier du maillage produit
-  aScript << "\t" << _NomIter << ".SetMeshFile('" << _MeshFile << "')\n";
+  aScript << "\t" << _NomIter << ".SetMeshFile(\"" << _MeshFile << "\")\n";
   if (_FieldFile != "") {
-    aScript << "\t" << _NomIter << ".SetFieldFile('" << _FieldFile << "')\n";
-    aScript << "\t" << _NomIter << ".SetTimeStepRank(" << _Rank << ", " << _TimeStep << ")\n";
+    aScript << "\t" << _NomIter << ".SetFieldFile(\"" << _FieldFile << "\")\n";
+    aScript << "\tTimeStep = " << _TimeStep << "\n";
+    aScript << "\tRank = " << _Rank << "\n";
+    aScript << "\t" << _NomIter << ".SetTimeStepRank( TimeStep, Rank )\n";
   }
 
-  aScript << "\thomard.AssociateIterHypo('" <<_NomIter << "', '" << _NomHypo << "')\n";
+  aScript << "\thomard.AssociateIterHypo(\"" <<_NomIter << "\", \"" << _NomHypo << "\")\n";
   if (_Etat == true)
   {
-     aScript << "\tresult = homard.Compute('" <<_NomIter << "', 1)\n";
+     aScript << "\tcodret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
   }
   else
   {
-     aScript << "\t# result = homard.Compute('" <<_NomIter << "', 1)\n";
+     aScript << "\t#codret = homard.Compute(\"" <<_NomIter << "\", 1)\n";
   }
 
   return aScript.str();
index 6a64be839ca8032893aaf3b78006dfd6dde817af..8e5793713eec1219f447374dceb857e5f280a0de 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Iteration.hxx
 //  Author : Paul RASCLE, EDF
@@ -37,8 +34,6 @@ public:
   HOMARD_Iteration();
   ~HOMARD_Iteration();
 
-  bool                          Compute();
-
   void                          SetName( const char* NomIter );
   std::string                   GetName() const;
   std::string                   GetDumpPython() const;
index 07bd8e980f1eff9b0ad1402cd2bd0aa706007700..0b23732d77f4764eea37f3de9c1f4ca9f589541e 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Zone.cxx
 //  Author : Paul RASCLE, EDF
 HOMARD_Zone::HOMARD_Zone():
   _NomZone( "" ),_ZoneType( 2 ),
   _Xmin( 0 ), _Xmax( 0 ), _Ymin( 0 ), _Ymax( 0 ), _Zmin( 0 ), _Zmax( 0 ),
-  _Xcentre( 0 ), _Ycentre( 0 ), _Zcentre( 0 ), _rayon( 0 ),
+  _Xcentre( 0 ), _Ycentre( 0 ), _Zcentre( 0 ), _Rayon( 0 ),
+  _Xaxe( 0 ), _Yaxe( 0 ), _Zaxe( 0 ), _Haut( 0 ),
   _Xincr( 0 ), _Yincr( 0 ), _Zincr( 0 )
 {
-  MESSAGE("HOMARD_Zone");
+  MESSAGE("HOMARD_Zone") ;
 }
 
 //=============================================================================
 HOMARD_Zone::~HOMARD_Zone()
 {
-  MESSAGE("~HOMARD_Zone");
+  MESSAGE("~HOMARD_Zone") ;
 }
 
 //=============================================================================
 void HOMARD_Zone::SetName( const char* NomZone )
 {
-  _NomZone = std::string( NomZone );
+  _NomZone = std::string( NomZone ) ;
 }
 
 //=============================================================================
@@ -63,35 +61,83 @@ std::string HOMARD_Zone::GetName() const
 //=============================================================================
 std::string HOMARD_Zone::GetDumpPython() const
 {
+//   MESSAGE("GetDumpPython avec _ZoneType " << _ZoneType) ;
+//   MESSAGE("GetDumpPython avec _NomZone " << _NomZone) ;
   std::ostringstream aScript;
   aScript << "\n# Creation of the ";
-  if ( _ZoneType == 2 ) { aScript << "box "  << _NomZone << "\n";}
-  if ( _ZoneType == 4 ) { aScript << "sphere " << _NomZone << "\n"; }
-
-  aScript << "\t" << _NomZone << " = homard.CreateZone('" << _NomZone ;
-  aScript << "', " << _ZoneType << ")\n";
+  if ( _ZoneType >= 11 and _ZoneType <= 13 ) { aScript << "rectangle " ; }
+  else if ( _ZoneType == 2 ) { aScript << "box " ;}
+  else if ( _ZoneType >= 31 and _ZoneType <= 33 ) { aScript << "disk " ;}
+  else if ( _ZoneType == 4 ) { aScript << "sphere " ; }
+  else if ( _ZoneType == 5 ) { aScript << "cylinder " ; }
+  else if ( _ZoneType >= 61 and _ZoneType <= 63 ) { aScript << "disk with hole " ;}
+  else if ( _ZoneType == 7 ) { aScript << "pipe " ; }
+  aScript << _NomZone << "\n" ;
+//
+  aScript << "\t" << _NomZone << " = homard.CreateZone" ;
 //
   switch (_ZoneType)
   {
+    case 11:
+    { aScript << "Box2D( \"" << _NomZone << "\", " << _Xmin << ", " << _Xmax << ", " << _Ymin << ", " << _Ymax << ", 1 )\n";
+      break ;
+    }
+    case 12:
+    { aScript << "Box2D( \"" << _NomZone << "\", " << _Ymin << ", " << _Ymax << ", " << _Zmin << ", " << _Zmax << ", 2 )\n";
+      break ;
+    }
+    case 13:
+    { aScript << "Box2D( \"" << _NomZone << "\", " << _Zmin << ", " << _Zmax << ", " << _Xmin << ", " << _Xmax << ", 3 )\n";
+      break ;
+    }
     case 2:
-    {
-      aScript << "\t" << _NomZone << ".SetBox(" ;
-      aScript << _Xmin << ", " << _Xmax << ", " << _Ymin << ", " << _Ymax << ", " << _Zmin << ", " << _Zmax << ")\n";
-      break;
+    { aScript << "Box( \""  << _NomZone << "\", " << _Xmin << ", " << _Xmax << ", " << _Ymin << ", " << _Ymax << ", " << _Zmin << ", " << _Zmax << ")\n";
+      break ;
     }
 
     case 4:
-    {
-      aScript << "\t" << _NomZone << ".SetSphere(" ;
-      aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _rayon << ")\n";
-      break;
+    { aScript << "Sphere( \"" << _NomZone << "\", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Rayon << ")\n";
+      break ;
+    }
+
+    case 31:
+    { aScript << "Disk( \"" << _NomZone << "\", " << _Xcentre << ", " << _Ycentre << ", " << _Rayon << ", 1 )\n";
+      break ;
+    }
+    case 32:
+    { aScript << "Disk( \"" << _NomZone << "\", " << _Ycentre << ", " << _Zcentre << ", " << _Rayon << ", 2 )\n";
+      break ;
+    }
+    case 33:
+    { aScript << "Disk( \"" << _NomZone << "\", " << _Zcentre << ", " << _Xcentre << ", " << _Rayon << ", 3 )\n";
+      break ;
+    }
+    case 5:
+    { aScript << "Cylinder( \"" << _NomZone << "\", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon << ", " << _Haut << ")\n";
+      break ;
+    }
+
+    case 61:
+    { aScript << "DiskWithHole( \"" << _NomZone << "\", " << _Xcentre << ", " << _Ycentre << ", " << _Rayon << ", " << _Rayonint << ", 1 )\n";
+      break ;
+    }
+    case 62:
+    { aScript << "DiskWithHole( \"" << _NomZone << "\", " << _Ycentre << ", " << _Zcentre << ", " << _Rayon << ", " << _Rayonint << ", 2 )\n";
+      break ;
+    }
+    case 63:
+    { aScript << "DiskWithHole( \"" << _NomZone << "\", " << _Zcentre << ", " << _Xcentre << ", " << _Rayon << ", " << _Rayonint << ", 3 )\n";
+      break ;
+    }
+    case 7:
+    { aScript << "Pipe( \"" << _NomZone << "\", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon << ", " << _Haut << ", " << _Rayonint << ")\n";
+      break ;
     }
   }
 
-  return aScript.str();
+  return aScript.str() ;
 }
 
-
 //=============================================================================
 void HOMARD_Zone::SetZoneType( int ZoneType )
 {
@@ -120,55 +166,141 @@ void HOMARD_Zone::SetBox( double X0, double X1, double X2, double X3, double X4,
 //======================================================================
 void HOMARD_Zone::SetSphere( double X0, double X1, double X2, double X3 )
 {
-  _Xcentre = X0; _Ycentre = X1; _Zcentre = X2;
-  _rayon = X3;
+  _Xcentre = X0;
+  _Ycentre = X1;
+  _Zcentre = X2;
+  _Rayon = X3;
 }
 
 //=======================================================================================
-std::vector<double> HOMARD_Zone::GetLimit() const
+void HOMARD_Zone::SetCylinder( double X0, double X1, double X2,
+                               double X3, double X4, double X5, double X6, double X7 )
 {
-  std::vector<double> mesLimit;
-  mesLimit.push_back( _Xincr );
-  mesLimit.push_back( _Yincr );
-  mesLimit.push_back( _Zincr );
-  return mesLimit;
+  _Xcentre = X0;
+  _Ycentre = X1;
+  _Zcentre = X2;
+  _Xaxe = X3;
+  _Yaxe = X4;
+  _Zaxe = X5;
+  _Rayon = X6;
+  _Haut = X7;
+}
+//=======================================================================================
+void HOMARD_Zone::SetPipe( double X0, double X1, double X2,
+                           double X3, double X4, double X5, double X6, double X7, double X8 )
+{
+  _Xcentre = X0;
+  _Ycentre = X1;
+  _Zcentre = X2;
+  _Xaxe = X3;
+  _Yaxe = X4;
+  _Zaxe = X5;
+  _Rayon = X6;
+  _Haut = X7;
+  _Rayonint = X8;
 }
 
 //=======================================================================================
-std::vector<double> HOMARD_Zone::GetBox() const
+std::vector<double> HOMARD_Zone::GetLimit() const
 {
-  std::vector<double> mesCoor;
-  mesCoor.push_back( _Xmin ); mesCoor.push_back( _Xmax );
-  mesCoor.push_back( _Ymin ); mesCoor.push_back( _Ymax );
-  mesCoor.push_back( _Zmin ); mesCoor.push_back( _Zmax );
-  return mesCoor;
+  std::vector<double> mesLimit;
+  mesLimit.push_back( _Xincr ) ;
+  mesLimit.push_back( _Yincr ) ;
+  mesLimit.push_back( _Zincr ) ;
+  return mesLimit;
 }
 
 //=======================================================================================
-std::vector<double> HOMARD_Zone::GetSphere() const
+std::vector<double> HOMARD_Zone::GetCoords() const
 {
   std::vector<double> mesCoor;
-  mesCoor.push_back( _Xcentre );
-  mesCoor.push_back( _Ycentre );
-  mesCoor.push_back( _Zcentre ); 
-  mesCoor.push_back( _rayon );
+//
+  switch (_ZoneType)
+  {
+//  Rectangle ou parallelepipede
+    case 11:
+    { }
+    case 12:
+    { }
+    case 13:
+    { }
+    case 2:
+    {
+      mesCoor.push_back( _Xmin ) ;
+      mesCoor.push_back( _Xmax ) ;
+      mesCoor.push_back( _Ymin ) ;
+      mesCoor.push_back( _Ymax ) ;
+      mesCoor.push_back( _Zmin ) ;
+      mesCoor.push_back( _Zmax ) ;
+      break ;
+    }
+//  Sphere
+    case 4:
+    {
+      mesCoor.push_back( _Xcentre ) ;
+      mesCoor.push_back( _Ycentre ) ;
+      mesCoor.push_back( _Zcentre ) ;
+      mesCoor.push_back( _Rayon ) ;
+      break ;
+    }
+//  Disque ou cylindre
+    case 31:
+    { }
+    case 32:
+    { }
+    case 33:
+    { }
+    case 5:
+    {
+      mesCoor.push_back( _Xcentre ) ;
+      mesCoor.push_back( _Ycentre ) ;
+      mesCoor.push_back( _Zcentre ) ;
+      mesCoor.push_back( _Xaxe ) ;
+      mesCoor.push_back( _Yaxe ) ;
+      mesCoor.push_back( _Zaxe ) ;
+      mesCoor.push_back( _Rayon ) ;
+      mesCoor.push_back( _Haut ) ;
+      break ;
+    }
+//  Disque avec trou ou tuyau
+    case 61:
+    { }
+    case 62:
+    { }
+    case 63:
+    { }
+    case 7:
+    {
+      mesCoor.push_back( _Xcentre ) ;
+      mesCoor.push_back( _Ycentre ) ;
+      mesCoor.push_back( _Zcentre ) ;
+      mesCoor.push_back( _Xaxe ) ;
+      mesCoor.push_back( _Yaxe ) ;
+      mesCoor.push_back( _Zaxe ) ;
+      mesCoor.push_back( _Rayon ) ;
+      mesCoor.push_back( _Haut ) ;
+      mesCoor.push_back( _Rayonint ) ;
+      break ;
+    }
+    ASSERT ( _ZoneType == -1 ) ;
+  }
   return mesCoor;
 }
 
 //=============================================================================
 void HOMARD_Zone::AddHypo( const char* NomHypo )
 {
-  _ListHypo.push_back( std::string( NomHypo ) );
+  _ListHypo.push_back( std::string( NomHypo ) ) ;
 }
 
 //=============================================================================
 void HOMARD_Zone::SupprHypo( const char* NomHypo )
 {
-  std::list<std::string>::iterator it = find( _ListHypo.begin(), _ListHypo.end(), NomHypo );
-  if ( it != _ListHypo.end() ) 
+  std::list<std::string>::iterator it = find( _ListHypo.begin(), _ListHypo.end(), NomHypo ) ;
+  if ( it != _ListHypo.end() )
   {
-    MESSAGE ("Dans SupprHypo pour " << NomHypo);
-    _ListHypo.erase( it );
+    MESSAGE ("Dans SupprHypo pour " << NomHypo) ;
+    _ListHypo.erase( it ) ;
   }
 }
 
@@ -181,5 +313,5 @@ const std::list<std::string>& HOMARD_Zone::GetHypo() const
 //=============================================================================
 void HOMARD_Zone::SupprHypos()
 {
-  _ListHypo.clear();
+  _ListHypo.clear() ;
 }
index 1adcfa8d1bb1981667d5f861d1818565a42d8679..e8906bb269ce997461c84830af0314c0df7ea166 100644 (file)
@@ -1,25 +1,22 @@
 //  HOMARD HOMARD : implementaion of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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   : HOMARD_Zone.hxx
 //  Author : Paul RASCLE, EDF
@@ -41,21 +38,24 @@ public:
   void                          SetName( const char* NomZone );
   std::string                   GetName() const;
   std::string                   GetDumpPython() const;
-  
-  void                          SetBox( double X0, double X1, double X2, 
-                                       double X3, double X4, double X5 );
-  std::vector<double>           GetBox() const;
 
-  void                          SetSphere( double X0, double X1,
-                                          double X2, double X3 );
-  std::vector<double>           GetSphere() const;
+  void                          SetBox( double X0, double X1, double X2,
+                                        double X3, double X4, double X5 );
+  std::vector<double>           GetCoords() const;
+
+  void                          SetSphere( double X0, double X1, double X2, double X3 );
+
+  void                          SetCylinder( double X0, double X1, double X2, double X3,
+                                             double X4, double X5, double X6, double X7 );
+  void                          SetPipe( double X0, double X1, double X2, double X3,
+                                         double X4, double X5, double X6, double X7, double X8 );
 
   void                          SetLimit( double X0, double X1, double X2 );
   std::vector<double>           GetLimit() const;
-  
+
   void                          SetZoneType( int ZoneType );
   int                           GetZoneType() const;
-  
+
   void                          AddHypo( const char* NomHypo );
   void                          SupprHypo( const char* NomHypo );
   const std::list<std::string>& GetHypo() const;
@@ -66,7 +66,8 @@ private:
   int                           _ZoneType;
   std::list<std::string>        _ListHypo;
   double                        _Xmin, _Xmax, _Ymin, _Ymax, _Zmin, _Zmax;
-  double                        _Xcentre, _Ycentre, _Zcentre, _rayon;
+  double                        _Xcentre, _Ycentre, _Zcentre, _Rayon, _Rayonint;
+  double                        _Xaxe, _Yaxe, _Zaxe, _Haut;
   double                        _Xincr, _Yincr, _Zincr;
 };
 
index 04c463022a2c4b4e2780317265cfd1b4fbb1d3c3..c025a5e22644e58862035a26feea331c89f407c7 100644 (file)
@@ -1,3 +1,24 @@
+//  HOMARD HOMARD : implementaion of HOMARD idl descriptions
+//
+// Copyright (C) 2011-2012  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
+//
+
 #include <string.h>
 #include <unistd.h>
 #include <sys/stat.h>
@@ -17,15 +38,16 @@ HomardDriver::HomardDriver(const std::string siter, const std::string siterp1):
   char* dirchar; char* execchar;
   std::string dir;
   std::string executable;
-  if ( !(dirchar = getenv("HOMARD_REP_EXE")) )
-    dir = "/logiciels/HOMARD/HOMARD_PUBLIC/Linux64" ;
-  else
-    dir = std::string(dirchar);
-  if ( !(execchar = getenv("HOMARD_EXE")) )
-    executable = "HOMARD";
-  else
-    executable = std::string(execchar);
+  if ( !(dirchar = getenv("HOMARD_REP_EXE_PRIVATE")) )
+  { dirchar = getenv("HOMARD_REP_EXE") ; }
+  dir = std::string(dirchar);
+  MESSAGE("HomardDriver, dirchar ="<<dirchar<<", dir ="<<dir);
+  if ( !(execchar = getenv("HOMARD_EXE_PRIVATE")) )
+  { execchar = getenv("HOMARD_EXE"); }
+  executable = std::string(execchar);
+  MESSAGE("HomardDriver, execchar ="<<execchar<<", executable ="<<executable);
   _HOMARD_Exec = dir + "/" + executable ;
+  MESSAGE("HomardDriver, _HOMARD_Exec ="<<_HOMARD_Exec);
 //
   _siter = siter ;
   _siterp1 = siterp1 ;
@@ -40,38 +62,38 @@ HomardDriver::~HomardDriver()
 ////=============================================================================
 void HomardDriver::TexteInit( const std::string DirCompute, const std::string DirComputePa, const std::string MessFile )
 {
-
+  MESSAGE("TexteInit, MessFile ="<<MessFile<<", DirCompute ="<<DirCompute<<", DirComputePa ="<<DirComputePa);
+//
   _Texte  = "Action   homa\n" ;
   _Texte += "CCAssoci med\n" ;
   _Texte += "ModeHOMA 1\n" ;
   _Texte += "NumeIter " + _siter + "\n" ;
-  _Texte += "ListeStd " + MessFile + "\n" ;
+  _Texte += "ListeStd \"" + MessFile + "\"\n" ;
   _Texte += "# Maillages HOMARD \n" ;
-  _Texte += "HOMaiN__ Mai" + _siter   + " " + DirComputePa + "/maill." + _siter   + ".hom.med\n" ;
-  _Texte += "HOMaiNP1 Mai" + _siterp1 + " " + DirCompute   + "/maill." + _siterp1 + ".hom.med\n" ;
-  _Texte += "RepeTrav " + DirCompute + "\n" ;
+  _Texte += "HOMaiN__ Mai" + _siter   + " \"" + DirComputePa + "/maill." + _siter   + ".hom.med\"\n" ;
+  _Texte += "HOMaiNP1 Mai" + _siterp1 + " \"" + DirCompute   + "/maill." + _siterp1 + ".hom.med\"\n" ;
+  _Texte += "RepeTrav \"" + DirCompute + "\"\n" ;
 //
 }
 
 ////=============================================================================
 void HomardDriver::TexteMaillage( const std::string NomMesh, const std::string MeshFile, int apres )
 {
+  MESSAGE("TexteMaillage, NomMesh ="<<NomMesh<<", MeshFile ="<<MeshFile);
   std::string saux ;
   saux = "P1" ;
   if ( apres < 1 ) { saux = "__" ; }
 
   _Texte += "# Maillages Med " + saux + "\n" ;
   _Texte += "CCNoMN" + saux + " \"" + NomMesh  + "\"\n" ;
-  _Texte += "CCMaiN" + saux + " " + MeshFile + "\n" ;
+  _Texte += "CCMaiN" + saux + " \"" + MeshFile + "\"\n" ;
 }
 
 ////=============================================================================
 void HomardDriver::TexteConfRaffDera( int ConfType, int TypeAdap, int TypeRaff, int TypeDera )
 {
-//   std::cerr << "Dans HomardDriver::TexteConfRaffDera, ConfType ="<<ConfType << std::endl;
-//   std::cerr << "Dans HomardDriver::TexteConfRaffDera, TypeAdap ="<<TypeAdap << std::endl;
-//   std::cerr << "Dans HomardDriver::TexteConfRaffDera, TypeRaff ="<<TypeRaff << std::endl;
-//   std::cerr << "Dans HomardDriver::TexteConfRaffDera, TypeDera ="<<TypeDera << std::endl;
+  MESSAGE("TexteConfRaffDera, ConfType ="<<ConfType);
+  MESSAGE("TexteConfRaffDera, TypeAdap ="<<TypeAdap<<", TypeRaff ="<<TypeRaff<<", TypeDera ="<<TypeDera);
 //
 // Type de conformite
 //
@@ -143,25 +165,37 @@ void HomardDriver::TexteConfRaffDera( int ConfType, int TypeAdap, int TypeRaff,
   }
   _Texte += "# Type de raffinement/deraffinement\n" + saux + "\n" ;
 //
-//  std::cerr << "A la fin de TexteConfRaffDera _Texte ="<<_Texte << std::endl;
+//   MESSAGE("A la fin de HomardDriver::TexteConfRaffDera, _Texte ="<<_Texte);
 }
 ////=============================================================================
 void HomardDriver::TexteCompo( int NumeComp, const std::string NompCompo)
 {
-//   std::cerr << "Dans TexteCompo de HomardDriver NompCompo = "<<NompCompo << std::endl;
+  MESSAGE("TexteCompo, NumeComp = "<<NumeComp<<", NompCompo = "<<NompCompo);
   _Texte +="CCCoChaI \"" + NompCompo + "\"\n" ;
 }
 
 ////=============================================================================
-void HomardDriver::TexteZone( int NumeZone, int ZoneType, double x0, double x1, double x2, double x3, double x4, double x5 )
+void HomardDriver::TexteZone( int NumeZone, int ZoneType, int TypeUse, double x0, double x1, double x2, double x3, double x4, double x5, double x6, double x7, double x8 )
 {
-// std::cerr << "Dans TexteZone de HomardDriver NumeZone = "<<NumeZone << std::endl;
-// std::cerr << "Dans TexteZone de HomardDriver ZoneType = "<<ZoneType << std::endl;
-// std::cerr << "Dans TexteZone de HomardDriver coor = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5 <<std::endl;
+  MESSAGE("TexteZone, NumeZone = "<<NumeZone<<", ZoneType = "<<ZoneType<<", TypeUse = "<<TypeUse);
+  MESSAGE("TexteZone, coor = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5<<","<<x6<<","<<x7<<","<<x8);
 //
   std::string saux, saux2 ;
 //
 // Type de zones
+// On convertit le type de zone au sens du module HOMARD dans Salome, ZoneType, dans le
+// type au sens de l'executable HOMARD, ZoneTypeHOMARD
+// Attention a mettre le bon signe a ZoneTypeHOMARD :
+//    >0 signifie que l'on raffinera les mailles contenues dans la zone,
+//    <0 signifie que l'on deraffinera
+//
+  int ZoneTypeHOMARD ;
+  if ( ZoneType >= 11 and ZoneType <= 13 ) { ZoneTypeHOMARD = 1 ; }
+  else if ( ZoneType >= 31 and ZoneType <= 33 ) { ZoneTypeHOMARD = 3 ; }
+  else if ( ZoneType >= 61 and ZoneType <= 63 ) { ZoneTypeHOMARD = 6 ; }
+  else { ZoneTypeHOMARD = ZoneType ; }
+//
+  if ( TypeUse < 0 ) { ZoneTypeHOMARD = -ZoneTypeHOMARD ; }
 //
   std::stringstream saux1 ;
   saux1 << NumeZone ;
@@ -169,14 +203,94 @@ void HomardDriver::TexteZone( int NumeZone, int ZoneType, double x0, double x1,
   saux = "#\n# Zone numero " + saux2 + "\n" ;
 //
   { std::stringstream saux1 ;
-    saux1 << NumeZone << " " << ZoneType ;
+    saux1 << NumeZone << " " << ZoneTypeHOMARD ;
     saux2 = saux1.str() ;
     saux += "ZoRaType " + saux2 + "\n" ;
   }
 //
-// Cas du rectangle/parallelepipede
+// Cas du rectangle
+//
+  if ( ZoneType == 11 ) // Z est constant X Homard <=> X Salome
+//                                        Y Homard <=> Y Salome
+  {
+    saux += "#Rectangle\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x1 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmax " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x2 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x3 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmax " + saux2 + "\n" ;
+    }
+  }
+//
+  else if ( ZoneType == 12 ) // X est constant X Homard <=> Y Salome
+//                                             Y Homard <=> Z Salome
+  {
+    saux += "#Rectangle\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x2 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x3 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmax " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x4 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x5 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmax " + saux2 + "\n" ;
+    }
+  }
 //
-  if ( ZoneType == 2 )
+  else if ( ZoneType == 13 ) // Y est constant X Homard <=> X Salome
+//                                             Y Homard <=> Z Salome
+  {
+    saux += "#Rectangle\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x1 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXmax " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x4 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmin " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x5 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYmax " + saux2 + "\n" ;
+    }
+  }
+//
+// Cas du parallelepipede
+//
+  else if ( ZoneType == 2 )
   {
     saux += "# Boite\n" ;
     { std::stringstream saux1 ;
@@ -211,7 +325,88 @@ void HomardDriver::TexteZone( int NumeZone, int ZoneType, double x0, double x1,
     }
   }
 //
-// Cas du cercle/sphere
+// Cas du disque
+//
+  else if ( ZoneType == 31 or ZoneType == 61 )
+  {
+    saux += "# Sphere\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x1 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x6 ;
+      saux2 = saux1.str() ;
+      if ( ZoneType == 61 ) { saux += "ZoRaRayE " + saux2 + "\n" ; }
+      else                  { saux += "ZoRaRayo " + saux2 + "\n" ; }
+    }
+    if ( ZoneType == 61 )
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x8 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaRayI " + saux2 + "\n" ;
+    }
+  }
+  else if ( ZoneType == 32 or ZoneType == 62 )
+  {
+    saux += "# Sphere\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x1 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x2 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x6 ;
+      saux2 = saux1.str() ;
+      if ( ZoneType == 62 ) { saux += "ZoRaRayE " + saux2 + "\n" ; }
+      else                  { saux += "ZoRaRayo " + saux2 + "\n" ; }
+    }
+    if ( ZoneType == 62 )
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x8 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaRayI " + saux2 + "\n" ;
+    }
+  }
+  else if ( ZoneType == 33 or ZoneType == 63 )
+  {
+    saux += "# Sphere\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x2 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYCen " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x6 ;
+      saux2 = saux1.str() ;
+      if ( ZoneType == 63 ) { saux += "ZoRaRayE " + saux2 + "\n" ; }
+      else                  { saux += "ZoRaRayo " + saux2 + "\n" ; }
+    }
+    if ( ZoneType == 63 )
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x8 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaRayI " + saux2 + "\n" ;
+    }
+  }
+//
+// Cas de la sphere
 //
   else if ( ZoneType == 4 )
   {
@@ -237,15 +432,71 @@ void HomardDriver::TexteZone( int NumeZone, int ZoneType, double x0, double x1,
       saux += "ZoRaRayo " + saux2 + "\n" ;
     }
   }
+//
+// Cas du cylindre ou du tuyau
+//
+  else if ( ZoneType == 5 or ZoneType == 7 )
+  {
+    if ( ZoneType == 5 ) { saux += "# Cylindre\n" ; }
+    else                 { saux += "# Tuyau\n" ; }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x0 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXBas " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x1 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYBas " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x2 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaZBas " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x3 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaXAxe " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x4 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaYAxe " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x5 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaZAxe " + saux2 + "\n" ;
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x6 ;
+      saux2 = saux1.str() ;
+     if ( ZoneType == 5 ) { saux += "ZoRaRayo " + saux2 + "\n" ; }
+     else                 { saux += "ZoRaRayE " + saux2 + "\n" ; }
+    }
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x7 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaHaut " + saux2 + "\n" ;
+    }
+    if ( ZoneType == 7 )
+    { std::stringstream saux1 ;
+      saux1 << NumeZone << " " << x8 ;
+      saux2 = saux1.str() ;
+      saux += "ZoRaRayI " + saux2 + "\n" ;
+    }
+  }
 //
   _Texte += saux + "#\n" ;
 //
-//  std::cerr << "A la fin de TexteZone _Texte ="<<_Texte << std::endl;
+//   MESSAGE("A la fin de HomardDriver::TexteZone, _Texte ="<<_Texte);
 }
 
 ////=============================================================================
 void HomardDriver::TexteField( const std::string FieldName, const std::string FieldFile, int TimeStep, int Rank,
-               int TypeThR, double ThreshR, int TypeThC, double ThreshC, int UsCmpI )
+               int TypeThR, double ThreshR, int TypeThC, double ThreshC,
+               int UsField, int UsCmpI )
 {
   MESSAGE("TexteField, FieldName = "<<FieldName<<", FieldFile = "<<FieldFile);
   MESSAGE("TexteField, TimeStep = "<<TimeStep<<", Rank = "<<Rank);
@@ -254,11 +505,9 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
 //
 //
   _Texte += "# Champ d'indicateurs\n" ;
-  _Texte += "CCIndica " + FieldFile  + "\n" ;
+  _Texte += "CCIndica \"" + FieldFile  + "\"\n" ;
   _Texte += "CCNoChaI \"" + FieldName  + "\"\n" ;
 
-//  std::cerr << "HomardDriver::TexteField TimeStep" << TimeStep<<std::endl;
-//  std::cerr << "HomardDriver::TexteField Rank" << Rank<<std::endl;
 // Cas ou on prend le dernier pas de temps
   if ( TimeStep == -2 )
   { _Texte += "CCNumPTI Last\n" ; }
@@ -308,6 +557,16 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
     saux2 = saux1.str() ;
     _Texte += "Seuil" + saux + " " + saux2  + "\n" ;
   }
+//
+  saux = " " ;
+  if ( UsField == 0 )
+  { saux = "MAILLE" ; }
+  if ( UsField == 1 )
+  { saux = "SAUT" ; }
+  if ( saux != " " )
+  {
+    _Texte += "CCModeFI " + saux  + "\n" ;
+  }
 //
   saux = " " ;
   if ( UsCmpI == 0 )
@@ -325,15 +584,15 @@ void HomardDriver::TexteField( const std::string FieldName, const std::string Fi
 ////=============================================================================
 void HomardDriver::TexteGroup( const std::string GroupName )
 {
-//   std::cerr << "Dans HomardDriver::TexteGroup NomGroupe  ="<<NomGroupe << std::endl;
+  MESSAGE("TexteGroup, GroupName = "<<GroupName);
 //
-  _Texte += "CCGroAda " + GroupName  + "\n" ;
+  _Texte += "CCGroAda \"" + GroupName  + "\"\n" ;
 //
 }
 ////=============================================================================
 void HomardDriver::TexteBoundaryOption( int BoundaryOption )
 {
-//   std::cerr << "Dans HomardDriver::TexteBoundaryOption, BoundaryOption ="<<BoundaryOption << std::endl;
+  MESSAGE("TexteBoundaryOption, BoundaryOption = "<<BoundaryOption);
 //
 // Type de suivi de frontiere
 //
@@ -342,28 +601,36 @@ void HomardDriver::TexteBoundaryOption( int BoundaryOption )
   std::string saux = saux1.str() ;
   _Texte += "SuivFron " + saux + "\n" ;
 //
-//  std::cerr << "A la fin de TexteBoundaryOption _Texte ="<<_Texte << std::endl;
 }
 ////=============================================================================
 void HomardDriver::TexteBoundaryDi(  const std::string MeshName, const std::string MeshFile )
 {
-//   std::cerr << "Dans HomardDriver::TexteBoundaryDi, MeshName ="<<MeshName << std::endl;
+  MESSAGE("TexteBoundaryDi, MeshName  = "<<MeshName);
+  MESSAGE("TexteBoundaryDi, MeshFile  = "<<MeshFile);
+//
+  _Texte += "CCNoMFro \"" + MeshName + "\"\n" ;
+  _Texte += "CCFronti \"" + MeshFile + "\"\n" ;
+//
+}
+////=============================================================================
+void HomardDriver::TexteBoundaryDiGr(  const std::string GroupName )
+{
+  MESSAGE("TexteBoundaryDiGr, GroupName  = "<<GroupName);
 //
-  _Texte += "CCNoMFro " + MeshName + "\n" ;
-  _Texte += "CCFronti " + MeshFile + "\n" ;
+  _Texte += "CCGroFro \"" + GroupName + "\"\n" ;
 //
-//  std::cerr << "A la fin de TexteBoundaryOption _Texte ="<<_Texte << std::endl;
 }
 ////=============================================================================
-void HomardDriver::TexteBoundaryAn( int NumeBoundary, int BoundaryType, const std::string Group, double x0, double x1, double x2, double x3, double x4, double x5, double x6 )
+void HomardDriver::TexteBoundaryAn( const std::string NameBoundary, int NumeBoundary, int BoundaryType, double x0, double x1, double x2, double x3, double x4, double x5, double x6 )
 {
-std::cerr << "Dans TexteBoundaryAn de HomardDriver NumeBoundary = "<<NumeBoundary << std::endl;
-std::cerr << "Dans TexteBoundaryAn de HomardDriver BoundaryType = "<<BoundaryType << std::endl;
-std::cerr << "Dans TexteBoundaryAn de HomardDriver coor = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5<<","<<x6 <<std::endl;
+  MESSAGE("TexteBoundaryAn, NameBoundary = "<<NameBoundary);
+//   MESSAGE("TexteBoundaryAn, NumeBoundary = "<<NumeBoundary);
+  MESSAGE("TexteBoundaryAn, BoundaryType = "<<BoundaryType);
+//   MESSAGE("TexteBoundaryAn, coor         = "<< x0<<","<<x1<< ","<< x2<< ","<< x3<<","<<x4<<","<<x5<<","<<x6);
 //
   std::string saux, saux2 ;
 //
-// Type de zones
+// Commentaires
 //
   std::stringstream saux1 ;
   saux1 << NumeBoundary ;
@@ -373,19 +640,21 @@ std::cerr << "Dans TexteBoundaryAn de HomardDriver coor = "<< x0<<","<<x1<< ","<
   { saux += "# Cylindre\n" ; }
   if ( BoundaryType == 2 )
   { saux += "# Sphere\n" ; }
+//
+// Le nom de la frontiere
 //
   { std::stringstream saux1 ;
-    saux1 << NumeBoundary << " " << BoundaryType ;
+    saux1 << NumeBoundary ;
     saux2 = saux1.str() ;
-    saux += "FAType " + saux2 + "\n" ;
+    saux += "FANom " + saux2 + " \"" + NameBoundary + "\"\n" ;
   }
 //
-// Le groupe
+// Type de frontiere
 //
   { std::stringstream saux1 ;
-    saux1 << NumeBoundary ;
+    saux1 << NumeBoundary << " " << BoundaryType ;
     saux2 = saux1.str() ;
-    saux += "FAGroupe " + saux2 + " '" + Group + "'\n" ;
+    saux += "FAType " + saux2 + "\n" ;
   }
 //
 // Cas du cylindre
@@ -457,7 +726,27 @@ std::cerr << "Dans TexteBoundaryAn de HomardDriver coor = "<< x0<<","<<x1<< ","<
 //
   _Texte += saux + "#\n" ;
 //
-//  std::cerr << "A la fin de TexteBoundaryAn _Texte ="<<_Texte << std::endl;
+}
+////=============================================================================
+void HomardDriver::TexteBoundaryAnGr( const std::string NameBoundary, int NumeBoundary, const std::string GroupName )
+{
+  MESSAGE("TexteBoundaryAnGr, NameBoundary  = "<<NameBoundary);
+//   MESSAGE("TexteBoundaryAnGr, NumeBoundary  = "<<NumeBoundary);
+//   MESSAGE("TexteBoundaryAnGr, GroupName  = "<<GroupName);
+//
+// Commentaires
+//
+  std::string saux, saux2 ;
+  std::stringstream saux1 ;
+  saux1 << NumeBoundary ;
+  saux2 = saux1.str() ;
+  saux = "#\n# Lien Frontiere/Groupe numero " + saux2 + "\n" ;
+//
+  saux += "FGNomFro " + saux2 + " \"" + NameBoundary + "\"\n" ;
+  saux += "FGNomGro " + saux2 + " \"" + GroupName + "\"\n" ;
+//
+  _Texte += saux + "#\n" ;
+//
 }
 ////=============================================================================
 void HomardDriver::TexteFieldInterp( int TypeFieldInterp, const std::string FieldFile, const std::string MeshFile, int TimeStep, int Rank )
@@ -469,8 +758,8 @@ void HomardDriver::TexteFieldInterp( int TypeFieldInterp, const std::string Fiel
 // Type d'interpolation
 //
   _Texte += "# Interpolations des champs\n" ;
-  _Texte += "CCSolN__ " + FieldFile  + "\n" ;
-  _Texte += "CCSolNP1 " + MeshFile  + "\n" ;
+  _Texte += "CCSolN__ \"" + FieldFile + "\"\n" ;
+  _Texte += "CCSolNP1 \"" + MeshFile  + "\"\n" ;
   if ( TypeFieldInterp == 1 )
   {
     _Texte += "CCChaTou oui\n" ;
@@ -507,7 +796,49 @@ void HomardDriver::TexteFieldInterpName( int NumeChamp, const std::string FieldN
     }
   }
 }
+////=============================================================================
+void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit )
+{
+  MESSAGE("TexteAdvanced, Pyram ="<<Pyram<<", NivMax ="<<NivMax<<", DiamMin ="<<DiamMin<<", AdapInit ="<<AdapInit);
+  std::string saux ;
 
+  if ( Pyram > 0 )
+  {
+    _Texte += "# Autorisation de pyramides dans le maillage initial\n" ;
+    _Texte += "TypeElem ignore_pyra\n" ;
+  }
+  if ( NivMax > 0 )
+  {
+    _Texte += "# Niveaux extremes\n" ;
+    { std::stringstream saux1 ;
+      saux1 << NivMax ;
+      std::string saux2 = saux1.str() ;
+      _Texte += "NiveauMa " + saux2 + "\n" ;
+    }
+  }
+  if ( DiamMin > 0 )
+  {
+    _Texte += "# Diametre minimal\n" ;
+    { std::stringstream saux1 ;
+      saux1 << DiamMin ;
+      std::string saux2 = saux1.str() ;
+      _Texte += "DiametMi " + saux2  + "\n" ;
+    }
+  }
+  if ( AdapInit != 0 )
+  {
+    if ( AdapInit > 0 )
+    { _Texte += "# Raffinement" ; }
+    else
+    { _Texte += "# Deraffinement" ; }
+    _Texte += " des regions sans indicateur\n" ;
+    { std::stringstream saux1 ;
+      saux1 << AdapInit ;
+      std::string saux2 = saux1.str() ;
+      _Texte += "AdapInit " + saux2 + "\n" ;
+    }
+  }
+}
 
 ////=============================================================================
 void HomardDriver::CreeFichier( )
index 5324b06757d0100b1347b22b11a88a9f7ad45912..3c1c0a0192ecb007810226738b66f4ba8db998b7 100644 (file)
@@ -1,3 +1,24 @@
+//  HOMARD HOMARD : implementaion of HOMARD idl descriptions
+//
+// Copyright (C) 2011-2012  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
+//
+
 # ifndef __HOMARDDRIVER_H__
 # define __HOMARDDRIVER_H__
 
@@ -14,20 +35,24 @@ public:
   void        CreeFichier();
   void        TexteMaillage( const std::string NomMesh, const std::string MeshFile, int apres );
   void        TexteConfRaffDera( int ConfType, int TypeAdap, int TypeRaff, int TypeDera );
-  void        TexteZone( int NumeZone, int ZoneType, double x0, double x1, double x2, double x3, double x4, double x5 );
+  void        TexteZone( int NumeZone, int ZoneType, int TypeUse, double x0, double x1, double x2, double x3, double x4, double x5, double x6, double x7, double x8 );
   void        TexteGroup( const std::string GroupName );
   void        TexteField( const std::string FieldName, const std::string FieldFile,
                           int TimeStep, int Rank,
-                          int TypeThR, double ThreshR, int TypeThC, double ThreshC, int UsCmpI );
+                          int TypeThR, double ThreshR, int TypeThC, double ThreshC,
+                          int UsField, int UsCmpI );
   void        TexteCompo( int NumeComp, const std::string NomCompo);
 
   void        TexteBoundaryOption( int BoundaryOption );
   void        TexteBoundaryDi( const std::string MeshName, const std::string MeshFile );
-  void        TexteBoundaryAn( int NumeBoundary, int BoundaryType, const std::string Group, double x0, double x1, double x2, double x3, double x4, double x5, double x6 );
+  void        TexteBoundaryDiGr( const std::string GroupName );
+  void        TexteBoundaryAn( const std::string NameBoundary, int NumeBoundary, int BoundaryType, double x0, double x1, double x2, double x3, double x4, double x5, double x6 );
+  void        TexteBoundaryAnGr( const std::string NameBoundary, int NumeBoundary, const std::string GroupName );
 
   void        TexteFieldInterp( int TypeFieldInterp, const std::string FieldFile, const std::string MeshFile,
                                 int TimeStep, int Rank );
   void        TexteFieldInterpName( int NumeChamp, const std::string FieldName);
+  void        TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit);
   void        CloseFichier();
   //
   int         ExecuteHomard();
index 1213d1afafe3455e29d302dabbd9d13778864225..49ef0d09ba974927d8e625fc2326aac52ae0d265 100755 (executable)
@@ -1,25 +1,21 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-#  SuperVisionTest AddComponent : example of component that adds two numbers
 #  File   : Makefile.in
 #  Author : , CEA
 #  Modified by : Alexander BORODIN (OCN) - autotools usage
@@ -56,10 +52,10 @@ libHOMARDImpl_la_LDFLAGS = \
        $(KERNEL_LDFLAGS) \
        -lSALOMELocalTrace
 
-check_PROGRAMS = testhomard
-
-TESTS = $(check_PROGRAMS)
-
-testhomard_SOURCES = testhomard.cxx
-
-testhomard_LDADD = libHOMARDImpl.la
+check_PROGRAMS = testhomard
+# 
+TESTS = $(check_PROGRAMS)
+# 
+testhomard_SOURCES = testhomard.cxx
+# 
+testhomard_LDADD = libHOMARDImpl.la
diff --git a/src/HOMARDGUI/CreateBoundaryAn.h b/src/HOMARDGUI/CreateBoundaryAn.h
new file mode 100644 (file)
index 0000000..c41dfbd
--- /dev/null
@@ -0,0 +1,444 @@
+/********************************************************************************
+** Form generated from reading ui file 'CreateBoundaryAn.ui'
+**
+** Created: Fri Sep 2 14:55:24 2011
+**      by: Qt User Interface Compiler version 4.2.1
+**
+** WARNING! All changes made in this file will be lost when recompiling ui file!
+********************************************************************************/
+
+#ifndef CREATEBOUNDARYAN_H
+#define CREATEBOUNDARYAN_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QDialog>
+#include <QtGui/QDoubleSpinBox>
+#include <QtGui/QGridLayout>
+#include <QtGui/QGroupBox>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QRadioButton>
+
+class Ui_CreateBoundaryAn
+{
+public:
+    QGridLayout *gridLayout;
+    QGroupBox *GBButtons;
+    QGridLayout *gridLayout1;
+    QPushButton *buttonHelp;
+    QPushButton *buttonCancel;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
+    QLabel *Name;
+    QLineEdit *LEBoundaryName;
+    QGroupBox *TypeBoundary;
+    QHBoxLayout *hboxLayout;
+    QRadioButton *RBCylindre;
+    QRadioButton *RBSphere;
+    QGroupBox *gBSphere;
+    QGridLayout *gridLayout2;
+    QDoubleSpinBox *SpinBox_Rayon;
+    QDoubleSpinBox *SpinBox_Zcentre;
+    QLabel *TLRayon;
+    QLabel *TLZcentre;
+    QLabel *TLYcentre;
+    QDoubleSpinBox *SpinBox_Ycentre;
+    QDoubleSpinBox *SpinBox_Xcentre;
+    QLabel *TLXcentre;
+    QGroupBox *gBCylindre;
+    QGridLayout *gridLayout3;
+    QDoubleSpinBox *SpinBox_Xcent;
+    QLabel *TLXcent;
+    QDoubleSpinBox *SpinBox_Radius;
+    QDoubleSpinBox *SpinBox_Zcent;
+    QLabel *TLradius;
+    QLabel *TLZcent;
+    QLabel *TLYcent;
+    QDoubleSpinBox *SpinBox_Ycent;
+    QLabel *TLXaxis;
+    QLabel *TLYaxis;
+    QLabel *TLZaxis;
+    QDoubleSpinBox *SpinBox_Zaxis;
+    QDoubleSpinBox *SpinBox_Yaxis;
+    QDoubleSpinBox *SpinBox_Xaxis;
+
+    void setupUi(QDialog *CreateBoundaryAn)
+    {
+    CreateBoundaryAn->setObjectName(QString::fromUtf8("CreateBoundaryAn"));
+    CreateBoundaryAn->setAutoFillBackground(true);
+    CreateBoundaryAn->setSizeGripEnabled(true);
+    gridLayout = new QGridLayout(CreateBoundaryAn);
+    gridLayout->setSpacing(6);
+    gridLayout->setMargin(9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+    GBButtons = new QGroupBox(CreateBoundaryAn);
+    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy.setHorizontalStretch(0);
+    sizePolicy.setVerticalStretch(0);
+    sizePolicy.setHeightForWidth(GBButtons->sizePolicy().hasHeightForWidth());
+    GBButtons->setSizePolicy(sizePolicy);
+    gridLayout1 = new QGridLayout(GBButtons);
+    gridLayout1->setSpacing(6);
+    gridLayout1->setMargin(9);
+    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+    buttonHelp = new QPushButton(GBButtons);
+    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+
+    gridLayout1->addWidget(buttonHelp, 0, 3, 1, 1);
+
+    buttonCancel = new QPushButton(GBButtons);
+    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+
+    gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
+
+    buttonApply = new QPushButton(GBButtons);
+    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+
+    gridLayout1->addWidget(buttonApply, 0, 1, 1, 1);
+
+    buttonOk = new QPushButton(GBButtons);
+    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+
+    gridLayout1->addWidget(buttonOk, 0, 0, 1, 1);
+
+
+    gridLayout->addWidget(GBButtons, 4, 0, 1, 2);
+
+    Name = new QLabel(CreateBoundaryAn);
+    Name->setObjectName(QString::fromUtf8("Name"));
+
+    gridLayout->addWidget(Name, 0, 0, 1, 1);
+
+    LEBoundaryName = new QLineEdit(CreateBoundaryAn);
+    LEBoundaryName->setObjectName(QString::fromUtf8("LEBoundaryName"));
+    LEBoundaryName->setMaxLength(32);
+
+    gridLayout->addWidget(LEBoundaryName, 0, 1, 1, 1);
+
+    TypeBoundary = new QGroupBox(CreateBoundaryAn);
+    TypeBoundary->setObjectName(QString::fromUtf8("TypeBoundary"));
+    QSizePolicy sizePolicy1(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy1.setHorizontalStretch(0);
+    sizePolicy1.setVerticalStretch(0);
+    sizePolicy1.setHeightForWidth(TypeBoundary->sizePolicy().hasHeightForWidth());
+    TypeBoundary->setSizePolicy(sizePolicy1);
+    TypeBoundary->setMinimumSize(QSize(340, 0));
+    hboxLayout = new QHBoxLayout(TypeBoundary);
+    hboxLayout->setSpacing(6);
+    hboxLayout->setMargin(9);
+    hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+    RBCylindre = new QRadioButton(TypeBoundary);
+    RBCylindre->setObjectName(QString::fromUtf8("RBCylindre"));
+    RBCylindre->setIcon(QIcon(QString::fromUtf8("../../resources/cylinderpointvector.png")));
+    RBCylindre->setCheckable(true);
+    RBCylindre->setChecked(true);
+
+    hboxLayout->addWidget(RBCylindre);
+
+    RBSphere = new QRadioButton(TypeBoundary);
+    RBSphere->setObjectName(QString::fromUtf8("RBSphere"));
+    RBSphere->setIcon(QIcon(QString::fromUtf8("../../resources/zone_spherepoint.png")));
+
+    hboxLayout->addWidget(RBSphere);
+
+
+    gridLayout->addWidget(TypeBoundary, 1, 0, 1, 2);
+
+    gBSphere = new QGroupBox(CreateBoundaryAn);
+    gBSphere->setObjectName(QString::fromUtf8("gBSphere"));
+    QSizePolicy sizePolicy2(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy2.setHorizontalStretch(0);
+    sizePolicy2.setVerticalStretch(0);
+    sizePolicy2.setHeightForWidth(gBSphere->sizePolicy().hasHeightForWidth());
+    gBSphere->setSizePolicy(sizePolicy2);
+    gridLayout2 = new QGridLayout(gBSphere);
+    gridLayout2->setSpacing(6);
+    gridLayout2->setMargin(9);
+    gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+    SpinBox_Rayon = new QDoubleSpinBox(gBSphere);
+    SpinBox_Rayon->setObjectName(QString::fromUtf8("SpinBox_Rayon"));
+    SpinBox_Rayon->setDecimals(5);
+    SpinBox_Rayon->setMaximum(1e+09);
+    SpinBox_Rayon->setMinimum(0);
+    SpinBox_Rayon->setValue(0);
+
+    gridLayout2->addWidget(SpinBox_Rayon, 1, 3, 1, 1);
+
+    SpinBox_Zcentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Zcentre->setObjectName(QString::fromUtf8("SpinBox_Zcentre"));
+    SpinBox_Zcentre->setDecimals(5);
+    SpinBox_Zcentre->setMaximum(1e+09);
+    SpinBox_Zcentre->setMinimum(-1e+09);
+    SpinBox_Zcentre->setValue(0);
+
+    gridLayout2->addWidget(SpinBox_Zcentre, 2, 1, 1, 1);
+
+    TLRayon = new QLabel(gBSphere);
+    TLRayon->setObjectName(QString::fromUtf8("TLRayon"));
+    QSizePolicy sizePolicy3(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy3.setHorizontalStretch(0);
+    sizePolicy3.setVerticalStretch(0);
+    sizePolicy3.setHeightForWidth(TLRayon->sizePolicy().hasHeightForWidth());
+    TLRayon->setSizePolicy(sizePolicy3);
+    TLRayon->setWordWrap(false);
+
+    gridLayout2->addWidget(TLRayon, 1, 2, 1, 1);
+
+    TLZcentre = new QLabel(gBSphere);
+    TLZcentre->setObjectName(QString::fromUtf8("TLZcentre"));
+    QSizePolicy sizePolicy4(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy4.setHorizontalStretch(0);
+    sizePolicy4.setVerticalStretch(0);
+    sizePolicy4.setHeightForWidth(TLZcentre->sizePolicy().hasHeightForWidth());
+    TLZcentre->setSizePolicy(sizePolicy4);
+    TLZcentre->setWordWrap(false);
+
+    gridLayout2->addWidget(TLZcentre, 2, 0, 1, 1);
+
+    TLYcentre = new QLabel(gBSphere);
+    TLYcentre->setObjectName(QString::fromUtf8("TLYcentre"));
+    QSizePolicy sizePolicy5(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy5.setHorizontalStretch(0);
+    sizePolicy5.setVerticalStretch(0);
+    sizePolicy5.setHeightForWidth(TLYcentre->sizePolicy().hasHeightForWidth());
+    TLYcentre->setSizePolicy(sizePolicy5);
+    TLYcentre->setWordWrap(false);
+
+    gridLayout2->addWidget(TLYcentre, 1, 0, 1, 1);
+
+    SpinBox_Ycentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Ycentre->setObjectName(QString::fromUtf8("SpinBox_Ycentre"));
+    SpinBox_Ycentre->setDecimals(5);
+    SpinBox_Ycentre->setMaximum(1e+09);
+    SpinBox_Ycentre->setMinimum(-1e+09);
+    SpinBox_Ycentre->setValue(0);
+
+    gridLayout2->addWidget(SpinBox_Ycentre, 1, 1, 1, 1);
+
+    SpinBox_Xcentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Xcentre->setObjectName(QString::fromUtf8("SpinBox_Xcentre"));
+    SpinBox_Xcentre->setDecimals(5);
+    SpinBox_Xcentre->setMaximum(1e+09);
+    SpinBox_Xcentre->setMinimum(-1e+09);
+    SpinBox_Xcentre->setValue(0);
+
+    gridLayout2->addWidget(SpinBox_Xcentre, 0, 1, 1, 1);
+
+    TLXcentre = new QLabel(gBSphere);
+    TLXcentre->setObjectName(QString::fromUtf8("TLXcentre"));
+    QSizePolicy sizePolicy6(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy6.setHorizontalStretch(0);
+    sizePolicy6.setVerticalStretch(0);
+    sizePolicy6.setHeightForWidth(TLXcentre->sizePolicy().hasHeightForWidth());
+    TLXcentre->setSizePolicy(sizePolicy6);
+    TLXcentre->setWordWrap(false);
+
+    gridLayout2->addWidget(TLXcentre, 0, 0, 1, 1);
+
+
+    gridLayout->addWidget(gBSphere, 3, 0, 1, 2);
+
+    gBCylindre = new QGroupBox(CreateBoundaryAn);
+    gBCylindre->setObjectName(QString::fromUtf8("gBCylindre"));
+    QSizePolicy sizePolicy7(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy7.setHorizontalStretch(0);
+    sizePolicy7.setVerticalStretch(0);
+    sizePolicy7.setHeightForWidth(gBCylindre->sizePolicy().hasHeightForWidth());
+    gBCylindre->setSizePolicy(sizePolicy7);
+    gridLayout3 = new QGridLayout(gBCylindre);
+    gridLayout3->setSpacing(6);
+    gridLayout3->setMargin(9);
+    gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+    SpinBox_Xcent = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Xcent->setObjectName(QString::fromUtf8("SpinBox_Xcent"));
+    SpinBox_Xcent->setDecimals(5);
+    SpinBox_Xcent->setMaximum(1e+09);
+    SpinBox_Xcent->setMinimum(-1e+09);
+    SpinBox_Xcent->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Xcent, 0, 1, 1, 1);
+
+    TLXcent = new QLabel(gBCylindre);
+    TLXcent->setObjectName(QString::fromUtf8("TLXcent"));
+    QSizePolicy sizePolicy8(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy8.setHorizontalStretch(0);
+    sizePolicy8.setVerticalStretch(0);
+    sizePolicy8.setHeightForWidth(TLXcent->sizePolicy().hasHeightForWidth());
+    TLXcent->setSizePolicy(sizePolicy8);
+    TLXcent->setWordWrap(false);
+
+    gridLayout3->addWidget(TLXcent, 0, 0, 1, 1);
+
+    SpinBox_Radius = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Radius->setObjectName(QString::fromUtf8("SpinBox_Radius"));
+    SpinBox_Radius->setDecimals(5);
+    SpinBox_Radius->setMaximum(1e+09);
+
+    gridLayout3->addWidget(SpinBox_Radius, 3, 1, 1, 2);
+
+    SpinBox_Zcent = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Zcent->setObjectName(QString::fromUtf8("SpinBox_Zcent"));
+    SpinBox_Zcent->setDecimals(5);
+    SpinBox_Zcent->setMaximum(1e+09);
+    SpinBox_Zcent->setMinimum(-1e+09);
+    SpinBox_Zcent->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Zcent, 2, 1, 1, 1);
+
+    TLradius = new QLabel(gBCylindre);
+    TLradius->setObjectName(QString::fromUtf8("TLradius"));
+    QSizePolicy sizePolicy9(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy9.setHorizontalStretch(0);
+    sizePolicy9.setVerticalStretch(0);
+    sizePolicy9.setHeightForWidth(TLradius->sizePolicy().hasHeightForWidth());
+    TLradius->setSizePolicy(sizePolicy9);
+    TLradius->setWordWrap(false);
+
+    gridLayout3->addWidget(TLradius, 3, 0, 1, 1);
+
+    TLZcent = new QLabel(gBCylindre);
+    TLZcent->setObjectName(QString::fromUtf8("TLZcent"));
+    QSizePolicy sizePolicy10(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy10.setHorizontalStretch(0);
+    sizePolicy10.setVerticalStretch(0);
+    sizePolicy10.setHeightForWidth(TLZcent->sizePolicy().hasHeightForWidth());
+    TLZcent->setSizePolicy(sizePolicy10);
+    TLZcent->setWordWrap(false);
+
+    gridLayout3->addWidget(TLZcent, 2, 0, 1, 1);
+
+    TLYcent = new QLabel(gBCylindre);
+    TLYcent->setObjectName(QString::fromUtf8("TLYcent"));
+    QSizePolicy sizePolicy11(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy11.setHorizontalStretch(0);
+    sizePolicy11.setVerticalStretch(0);
+    sizePolicy11.setHeightForWidth(TLYcent->sizePolicy().hasHeightForWidth());
+    TLYcent->setSizePolicy(sizePolicy11);
+    TLYcent->setWordWrap(false);
+
+    gridLayout3->addWidget(TLYcent, 1, 0, 1, 1);
+
+    SpinBox_Ycent = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Ycent->setObjectName(QString::fromUtf8("SpinBox_Ycent"));
+    SpinBox_Ycent->setDecimals(5);
+    SpinBox_Ycent->setMaximum(1e+09);
+    SpinBox_Ycent->setMinimum(-1e+09);
+    SpinBox_Ycent->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Ycent, 1, 1, 1, 1);
+
+    TLXaxis = new QLabel(gBCylindre);
+    TLXaxis->setObjectName(QString::fromUtf8("TLXaxis"));
+    QSizePolicy sizePolicy12(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy12.setHorizontalStretch(0);
+    sizePolicy12.setVerticalStretch(0);
+    sizePolicy12.setHeightForWidth(TLXaxis->sizePolicy().hasHeightForWidth());
+    TLXaxis->setSizePolicy(sizePolicy12);
+    TLXaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLXaxis, 0, 2, 1, 1);
+
+    TLYaxis = new QLabel(gBCylindre);
+    TLYaxis->setObjectName(QString::fromUtf8("TLYaxis"));
+    QSizePolicy sizePolicy13(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy13.setHorizontalStretch(0);
+    sizePolicy13.setVerticalStretch(0);
+    sizePolicy13.setHeightForWidth(TLYaxis->sizePolicy().hasHeightForWidth());
+    TLYaxis->setSizePolicy(sizePolicy13);
+    TLYaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLYaxis, 1, 2, 1, 1);
+
+    TLZaxis = new QLabel(gBCylindre);
+    TLZaxis->setObjectName(QString::fromUtf8("TLZaxis"));
+    QSizePolicy sizePolicy14(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy14.setHorizontalStretch(0);
+    sizePolicy14.setVerticalStretch(0);
+    sizePolicy14.setHeightForWidth(TLZaxis->sizePolicy().hasHeightForWidth());
+    TLZaxis->setSizePolicy(sizePolicy14);
+    TLZaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLZaxis, 2, 2, 1, 1);
+
+    SpinBox_Zaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Zaxis->setObjectName(QString::fromUtf8("SpinBox_Zaxis"));
+    SpinBox_Zaxis->setDecimals(5);
+    SpinBox_Zaxis->setMaximum(1e+09);
+    SpinBox_Zaxis->setMinimum(-1e+09);
+    SpinBox_Zaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Zaxis, 2, 3, 1, 1);
+
+    SpinBox_Yaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Yaxis->setObjectName(QString::fromUtf8("SpinBox_Yaxis"));
+    SpinBox_Yaxis->setDecimals(5);
+    SpinBox_Yaxis->setMaximum(1e+09);
+    SpinBox_Yaxis->setMinimum(-1e+09);
+    SpinBox_Yaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Yaxis, 1, 3, 1, 1);
+
+    SpinBox_Xaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Xaxis->setObjectName(QString::fromUtf8("SpinBox_Xaxis"));
+    SpinBox_Xaxis->setDecimals(5);
+    SpinBox_Xaxis->setMaximum(1e+09);
+    SpinBox_Xaxis->setMinimum(-1e+09);
+    SpinBox_Xaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Xaxis, 0, 3, 1, 1);
+
+
+    gridLayout->addWidget(gBCylindre, 2, 0, 1, 2);
+
+
+    retranslateUi(CreateBoundaryAn);
+
+    QSize size(458, 500);
+    size = size.expandedTo(CreateBoundaryAn->minimumSizeHint());
+    CreateBoundaryAn->resize(size);
+
+
+    QMetaObject::connectSlotsByName(CreateBoundaryAn);
+    } // setupUi
+
+    void retranslateUi(QDialog *CreateBoundaryAn)
+    {
+    CreateBoundaryAn->setWindowTitle(QApplication::translate("CreateBoundaryAn", "Create an analytical boundary", 0, QApplication::UnicodeUTF8));
+    GBButtons->setTitle(QString());
+    buttonHelp->setText(QApplication::translate("CreateBoundaryAn", "Help", 0, QApplication::UnicodeUTF8));
+    buttonCancel->setText(QApplication::translate("CreateBoundaryAn", "Cancel", 0, QApplication::UnicodeUTF8));
+    buttonApply->setText(QApplication::translate("CreateBoundaryAn", "Apply", 0, QApplication::UnicodeUTF8));
+    buttonOk->setText(QApplication::translate("CreateBoundaryAn", "OK", 0, QApplication::UnicodeUTF8));
+    Name->setText(QApplication::translate("CreateBoundaryAn", "Name", 0, QApplication::UnicodeUTF8));
+    TypeBoundary->setTitle(QApplication::translate("CreateBoundaryAn", "Type of boundary", 0, QApplication::UnicodeUTF8));
+    RBCylindre->setText(QApplication::translate("CreateBoundaryAn", "Cylinder", 0, QApplication::UnicodeUTF8));
+    RBSphere->setText(QApplication::translate("CreateBoundaryAn", "Sphere", 0, QApplication::UnicodeUTF8));
+    gBSphere->setTitle(QApplication::translate("CreateBoundaryAn", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLRayon->setText(QApplication::translate("CreateBoundaryAn", "Radius", 0, QApplication::UnicodeUTF8));
+    TLZcentre->setText(QApplication::translate("CreateBoundaryAn", "Z centre", 0, QApplication::UnicodeUTF8));
+    TLYcentre->setText(QApplication::translate("CreateBoundaryAn", "Y centre", 0, QApplication::UnicodeUTF8));
+    TLXcentre->setText(QApplication::translate("CreateBoundaryAn", "X centre", 0, QApplication::UnicodeUTF8));
+    gBCylindre->setTitle(QApplication::translate("CreateBoundaryAn", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLXcent->setText(QApplication::translate("CreateBoundaryAn", "X centre", 0, QApplication::UnicodeUTF8));
+    TLradius->setText(QApplication::translate("CreateBoundaryAn", "Radius", 0, QApplication::UnicodeUTF8));
+    TLZcent->setText(QApplication::translate("CreateBoundaryAn", "Z centre", 0, QApplication::UnicodeUTF8));
+    TLYcent->setText(QApplication::translate("CreateBoundaryAn", "Y centre", 0, QApplication::UnicodeUTF8));
+    TLXaxis->setText(QApplication::translate("CreateBoundaryAn", "X axis", 0, QApplication::UnicodeUTF8));
+    TLYaxis->setText(QApplication::translate("CreateBoundaryAn", "Y axis", 0, QApplication::UnicodeUTF8));
+    TLZaxis->setText(QApplication::translate("CreateBoundaryAn", "Z axis", 0, QApplication::UnicodeUTF8));
+    Q_UNUSED(CreateBoundaryAn);
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class CreateBoundaryAn: public Ui_CreateBoundaryAn {};
+} // namespace Ui
+
+#endif // CREATEBOUNDARYAN_H
diff --git a/src/HOMARDGUI/CreateBoundaryAn.ui b/src/HOMARDGUI/CreateBoundaryAn.ui
new file mode 100644 (file)
index 0000000..0750df0
--- /dev/null
@@ -0,0 +1,566 @@
+<ui version="4.0" >
+ <class>CreateBoundaryAn</class>
+ <widget class="QDialog" name="CreateBoundaryAn" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>458</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Create an analytical boundary</string>
+  </property>
+  <property name="autoFillBackground" >
+   <bool>true</bool>
+  </property>
+  <property name="sizeGripEnabled" >
+   <bool>true</bool>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="4" column="0" colspan="2" >
+    <widget class="QGroupBox" name="GBButtons" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="3" >
+       <widget class="QPushButton" name="buttonHelp" >
+        <property name="text" >
+         <string>Help</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QPushButton" name="buttonCancel" >
+        <property name="text" >
+         <string>Cancel</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="buttonApply" >
+        <property name="text" >
+         <string>Apply</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QPushButton" name="buttonOk" >
+        <property name="text" >
+         <string>OK</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="0" column="0" >
+    <widget class="QLabel" name="Name" >
+     <property name="text" >
+      <string>Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1" >
+    <widget class="QLineEdit" name="LEBoundaryName" >
+     <property name="maxLength" >
+      <number>32</number>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" colspan="2" >
+    <widget class="QGroupBox" name="TypeBoundary" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize" >
+      <size>
+       <width>340</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="title" >
+      <string>Type of boundary</string>
+     </property>
+     <layout class="QHBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <widget class="QRadioButton" name="RBCylindre" >
+        <property name="text" >
+         <string>Cylinder</string>
+        </property>
+        <property name="icon" >
+         <iconset>../../resources/cylinderpointvector.png</iconset>
+        </property>
+        <property name="checkable" >
+         <bool>true</bool>
+        </property>
+        <property name="checked" >
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="RBSphere" >
+        <property name="text" >
+         <string>Sphere</string>
+        </property>
+        <property name="icon" >
+         <iconset>../../resources/zone_spherepoint.png</iconset>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBSphere" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string>Coordinates</string>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Rayon" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>0.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zcentre" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLRayon" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ycentre" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xcentre" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="2" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBCylindre" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string>Coordinates</string>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xcent" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXcent" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1" colspan="2" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zcent" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0" >
+       <widget class="QLabel" name="TLradius" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZcent" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYcent" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ycent" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QLabel" name="TLXaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLYaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2" >
+       <widget class="QLabel" name="TLZaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
index 816d59fcedce1de7b94658b68c310af2b7f74563..7caf93da20217b22045ef9b86633ac70df6f98ce 100644 (file)
@@ -1,8 +1,8 @@
 /********************************************************************************
 ** Form generated from reading ui file 'CreateBoundaryDi.ui'
 **
-** Created: Thu Nov 18 15:18:52 2010
-**      by: Qt User Interface Compiler version 4.4.3
+** Created: Thu Sep 1 16:37:21 2011
+**      by: Qt User Interface Compiler version 4.2.1
 **
 ** WARNING! All changes made in this file will be lost when recompiling ui file!
 ********************************************************************************/
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 
-QT_BEGIN_NAMESPACE
-
 class Ui_CreateBoundaryDi
 {
 public:
     QGridLayout *gridLayout;
-    QLabel *Name;
-    QLineEdit *LEBoundaryName;
-    QLabel *Mesh;
-    QPushButton *PushFichier;
-    QLineEdit *LEFileName;
-    QCheckBox *CBGroupe;
     QGroupBox *GBButtons;
-    QGridLayout *gridLayout_5;
-    QPushButton *buttonOk;
-    QPushButton *buttonApply;
-    QPushButton *buttonCancel;
+    QGridLayout *gridLayout1;
     QPushButton *buttonHelp;
+    QPushButton *buttonCancel;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
+    QCheckBox *CBGroupe;
+    QLineEdit *LEFileName;
+    QPushButton *PushFichier;
+    QLabel *Mesh;
+    QLineEdit *LEBoundaryName;
+    QLabel *Name;
 
     void setupUi(QDialog *CreateBoundaryDi)
     {
-    if (CreateBoundaryDi->objectName().isEmpty())
-        CreateBoundaryDi->setObjectName(QString::fromUtf8("CreateBoundaryDi"));
-    CreateBoundaryDi->resize(566, 169);
-    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    CreateBoundaryDi->setObjectName(QString::fromUtf8("CreateBoundaryDi"));
+    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
     sizePolicy.setHorizontalStretch(0);
     sizePolicy.setVerticalStretch(0);
     sizePolicy.setHeightForWidth(CreateBoundaryDi->sizePolicy().hasHeightForWidth());
     CreateBoundaryDi->setSizePolicy(sizePolicy);
-    CreateBoundaryDi->setAutoFillBackground(false);
+    CreateBoundaryDi->setAutoFillBackground(true);
     CreateBoundaryDi->setSizeGripEnabled(true);
     gridLayout = new QGridLayout(CreateBoundaryDi);
+    gridLayout->setSpacing(6);
+    gridLayout->setMargin(9);
     gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    Name = new QLabel(CreateBoundaryDi);
-    Name->setObjectName(QString::fromUtf8("Name"));
+    GBButtons = new QGroupBox(CreateBoundaryDi);
+    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+    gridLayout1 = new QGridLayout(GBButtons);
+    gridLayout1->setSpacing(6);
+    gridLayout1->setMargin(9);
+    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+    buttonHelp = new QPushButton(GBButtons);
+    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-    gridLayout->addWidget(Name, 0, 0, 1, 1);
+    gridLayout1->addWidget(buttonHelp, 0, 3, 1, 1);
 
-    LEBoundaryName = new QLineEdit(CreateBoundaryDi);
-    LEBoundaryName->setObjectName(QString::fromUtf8("LEBoundaryName"));
-    LEBoundaryName->setMinimumSize(QSize(382, 21));
-    LEBoundaryName->setMaxLength(32);
+    buttonCancel = new QPushButton(GBButtons);
+    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
 
-    gridLayout->addWidget(LEBoundaryName, 0, 1, 1, 2);
+    gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
 
-    Mesh = new QLabel(CreateBoundaryDi);
-    Mesh->setObjectName(QString::fromUtf8("Mesh"));
+    buttonApply = new QPushButton(GBButtons);
+    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-    gridLayout->addWidget(Mesh, 1, 0, 1, 1);
+    gridLayout1->addWidget(buttonApply, 0, 1, 1, 1);
 
-    PushFichier = new QPushButton(CreateBoundaryDi);
-    PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
+    buttonOk = new QPushButton(GBButtons);
+    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
 
-    gridLayout->addWidget(PushFichier, 1, 1, 1, 1);
+    gridLayout1->addWidget(buttonOk, 0, 0, 1, 1);
 
-    LEFileName = new QLineEdit(CreateBoundaryDi);
-    LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
-    LEFileName->setMinimumSize(QSize(370, 21));
 
-    gridLayout->addWidget(LEFileName, 1, 2, 1, 1);
+    gridLayout->addWidget(GBButtons, 3, 0, 1, 3);
 
     CBGroupe = new QCheckBox(CreateBoundaryDi);
     CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
 
     gridLayout->addWidget(CBGroupe, 2, 0, 1, 3);
 
-    GBButtons = new QGroupBox(CreateBoundaryDi);
-    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-    gridLayout_5 = new QGridLayout(GBButtons);
-    gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
-    buttonOk = new QPushButton(GBButtons);
-    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+    LEFileName = new QLineEdit(CreateBoundaryDi);
+    LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
+    LEFileName->setMinimumSize(QSize(370, 21));
 
-    gridLayout_5->addWidget(buttonOk, 0, 0, 1, 1);
+    gridLayout->addWidget(LEFileName, 1, 2, 1, 1);
 
-    buttonApply = new QPushButton(GBButtons);
-    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+    PushFichier = new QPushButton(CreateBoundaryDi);
+    PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
 
-    gridLayout_5->addWidget(buttonApply, 0, 1, 1, 1);
+    gridLayout->addWidget(PushFichier, 1, 1, 1, 1);
 
-    buttonCancel = new QPushButton(GBButtons);
-    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+    Mesh = new QLabel(CreateBoundaryDi);
+    Mesh->setObjectName(QString::fromUtf8("Mesh"));
 
-    gridLayout_5->addWidget(buttonCancel, 0, 2, 1, 1);
+    gridLayout->addWidget(Mesh, 1, 0, 1, 1);
 
-    buttonHelp = new QPushButton(GBButtons);
-    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+    LEBoundaryName = new QLineEdit(CreateBoundaryDi);
+    LEBoundaryName->setObjectName(QString::fromUtf8("LEBoundaryName"));
+    LEBoundaryName->setMinimumSize(QSize(382, 21));
+    LEBoundaryName->setMaxLength(32);
 
-    gridLayout_5->addWidget(buttonHelp, 0, 3, 1, 1);
+    gridLayout->addWidget(LEBoundaryName, 0, 1, 1, 2);
 
+    Name = new QLabel(CreateBoundaryDi);
+    Name->setObjectName(QString::fromUtf8("Name"));
 
-    gridLayout->addWidget(GBButtons, 3, 0, 1, 3);
+    gridLayout->addWidget(Name, 0, 0, 1, 1);
 
 
     retranslateUi(CreateBoundaryDi);
 
+    QSize size(566, 169);
+    size = size.expandedTo(CreateBoundaryDi->minimumSizeHint());
+    CreateBoundaryDi->resize(size);
+
+
     QMetaObject::connectSlotsByName(CreateBoundaryDi);
     } // setupUi
 
     void retranslateUi(QDialog *CreateBoundaryDi)
     {
-    CreateBoundaryDi->setWindowTitle(QApplication::translate("CreateBoundaryDi", "Create Discrete Boundary", 0, QApplication::UnicodeUTF8));
-    Name->setText(QApplication::translate("CreateBoundaryDi", "Name", 0, QApplication::UnicodeUTF8));
-    Mesh->setText(QApplication::translate("CreateBoundaryDi", "Mesh", 0, QApplication::UnicodeUTF8));
-    PushFichier->setText(QString());
-    CBGroupe->setText(QApplication::translate("CreateBoundaryDi", "Filtering with groups", 0, QApplication::UnicodeUTF8));
+    CreateBoundaryDi->setWindowTitle(QApplication::translate("CreateBoundaryDi", "Create a discrete boundary", 0, QApplication::UnicodeUTF8));
     GBButtons->setTitle(QString());
-    buttonOk->setText(QApplication::translate("CreateBoundaryDi", "&Ok", 0, QApplication::UnicodeUTF8));
-    buttonApply->setText(QApplication::translate("CreateBoundaryDi", "&Apply", 0, QApplication::UnicodeUTF8));
-    buttonCancel->setText(QApplication::translate("CreateBoundaryDi", "&Cancel", 0, QApplication::UnicodeUTF8));
-    buttonHelp->setText(QApplication::translate("CreateBoundaryDi", "&Help", 0, QApplication::UnicodeUTF8));
+    buttonHelp->setText(QApplication::translate("CreateBoundaryDi", "Help", 0, QApplication::UnicodeUTF8));
+    buttonCancel->setText(QApplication::translate("CreateBoundaryDi", "Cancel", 0, QApplication::UnicodeUTF8));
+    buttonApply->setText(QApplication::translate("CreateBoundaryDi", "Apply", 0, QApplication::UnicodeUTF8));
+    buttonOk->setText(QApplication::translate("CreateBoundaryDi", "OK", 0, QApplication::UnicodeUTF8));
+    CBGroupe->setText(QApplication::translate("CreateBoundaryDi", "Filtering with groups", 0, QApplication::UnicodeUTF8));
+    PushFichier->setText(QString());
+    Mesh->setText(QApplication::translate("CreateBoundaryDi", "Mesh", 0, QApplication::UnicodeUTF8));
+    Name->setText(QApplication::translate("CreateBoundaryDi", "Name", 0, QApplication::UnicodeUTF8));
     Q_UNUSED(CreateBoundaryDi);
     } // retranslateUi
 
@@ -142,6 +147,4 @@ namespace Ui {
     class CreateBoundaryDi: public Ui_CreateBoundaryDi {};
 } // namespace Ui
 
-QT_END_NAMESPACE
-
 #endif // CREATEBOUNDARYDI_H
index b97931d91fef018bb014ab80c05520b26fa50970..3cc0ec09e3c686b71d219219ca1f4900f50fcc03 100644 (file)
    </rect>
   </property>
   <property name="sizePolicy" >
-   <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+   <sizepolicy>
+    <hsizetype>0</hsizetype>
+    <vsizetype>0</vsizetype>
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="windowTitle" >
-   <string>Create Discrete Boundary</string>
+   <string>Create a discrete boundary</string>
   </property>
   <property name="autoFillBackground" >
-   <bool>false</bool>
+   <bool>true</bool>
   </property>
   <property name="sizeGripEnabled" >
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout" >
-   <item row="0" column="0" >
-    <widget class="QLabel" name="Name" >
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="3" column="0" colspan="3" >
+    <widget class="QGroupBox" name="GBButtons" >
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="3" >
+       <widget class="QPushButton" name="buttonHelp" >
+        <property name="text" >
+         <string>Help</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QPushButton" name="buttonCancel" >
+        <property name="text" >
+         <string>Cancel</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="buttonApply" >
+        <property name="text" >
+         <string>Apply</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QPushButton" name="buttonOk" >
+        <property name="text" >
+         <string>OK</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="2" column="0" colspan="3" >
+    <widget class="QCheckBox" name="CBGroupe" >
      <property name="text" >
-      <string>Name</string>
+      <string>Filtering with groups</string>
      </property>
     </widget>
    </item>
-   <item row="0" column="1" colspan="2" >
-    <widget class="QLineEdit" name="LEBoundaryName" >
+   <item row="1" column="2" >
+    <widget class="QLineEdit" name="LEFileName" >
      <property name="minimumSize" >
       <size>
-       <width>382</width>
+       <width>370</width>
        <height>21</height>
       </size>
      </property>
-     <property name="maxLength" >
-      <number>32</number>
-     </property>
     </widget>
    </item>
-   <item row="1" column="0" >
-    <widget class="QLabel" name="Mesh" >
+   <item row="1" column="1" >
+    <widget class="QPushButton" name="PushFichier" >
      <property name="text" >
-      <string>Mesh</string>
+      <string/>
      </property>
     </widget>
    </item>
-   <item row="1" column="1" >
-    <widget class="QPushButton" name="PushFichier" >
+   <item row="1" column="0" >
+    <widget class="QLabel" name="Mesh" >
      <property name="text" >
-      <string/>
+      <string>Mesh</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="2" >
-    <widget class="QLineEdit" name="LEFileName" >
+   <item row="0" column="1" colspan="2" >
+    <widget class="QLineEdit" name="LEBoundaryName" >
      <property name="minimumSize" >
       <size>
-       <width>370</width>
+       <width>382</width>
        <height>21</height>
       </size>
      </property>
-    </widget>
-   </item>
-   <item row="2" column="0" colspan="3" >
-    <widget class="QCheckBox" name="CBGroupe" >
-     <property name="text" >
-      <string>Filtering with groups</string>
+     <property name="maxLength" >
+      <number>32</number>
      </property>
     </widget>
    </item>
-   <item row="3" column="0" colspan="3" >
-    <widget class="QGroupBox" name="GBButtons" >
-     <property name="title" >
-      <string/>
+   <item row="0" column="0" >
+    <widget class="QLabel" name="Name" >
+     <property name="text" >
+      <string>Name</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_5" >
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>&amp;Ok</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>&amp;Apply</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>&amp;Cancel</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>&amp;Help</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
     </widget>
    </item>
   </layout>
index f3010ccb6a8d06ad7dcf99cc0dad0ebf3c1a3bf3..46af698f779727f780f4fed189a4684cf74f0605 100644 (file)
@@ -1,10 +1,10 @@
 /********************************************************************************
-** Form generated from reading ui file 'CreateCase.ui'
+** Form generated from reading UI file 'CreateCase.ui'
 **
-** Created: Fri Nov 26 13:44:35 2010
-**      by: Qt User Interface Compiler version 4.4.3
+** Created: Wed Feb 15 18:15:40 2012
+**      by: Qt User Interface Compiler version 4.6.3
 **
-** WARNING! All changes made in this file will be lost when recompiling ui file!
+** WARNING! All changes made in this file will be lost when recompiling UI file!
 ********************************************************************************/
 
 #ifndef CREATECASE_H
 #include <QtGui/QCheckBox>
 #include <QtGui/QComboBox>
 #include <QtGui/QDialog>
+#include <QtGui/QFormLayout>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QTableWidget>
-#include <QtGui/QVBoxLayout>
-#include <QtGui/QWidget>
 
 QT_BEGIN_NAMESPACE
 
@@ -35,351 +35,446 @@ class Ui_CreateCase
 {
 public:
     QGridLayout *gridLayout_2;
-    QHBoxLayout *horizontalLayout_5;
+    QHBoxLayout *hboxLayout;
     QLabel *Name;
     QLineEdit *LECaseName;
-    QHBoxLayout *horizontalLayout_4;
+    QHBoxLayout *hboxLayout1;
     QLabel *Directory;
     QPushButton *PushDir;
     QLineEdit *LEDirName;
-    QHBoxLayout *horizontalLayout_3;
+    QSpacerItem *spacerItem;
+    QHBoxLayout *hboxLayout2;
     QLabel *Mesh_2;
     QPushButton *PushFichier;
     QLineEdit *LEFileName;
-    QSpacerItem *verticalSpacer_2;
+    QSpacerItem *spacerItem1;
     QGroupBox *GBTypeConf;
-    QHBoxLayout *horizontalLayout;
+    QHBoxLayout *hboxLayout3;
     QRadioButton *RBConforme;
     QRadioButton *RBNonConforme;
-    QSpacerItem *verticalSpacer_3;
+    QSpacerItem *spacerItem2;
     QGroupBox *GBTypeNoConf;
-    QHBoxLayout *horizontalLayout_2;
+    QHBoxLayout *hboxLayout4;
     QRadioButton *RB1NpM;
     QRadioButton *RB1NpA;
     QRadioButton *RBQuelconque;
-    QSpacerItem *verticalSpacer_4;
-    QHBoxLayout *horizontalLayout_6;
+    QSpacerItem *spacerItem3;
+    QHBoxLayout *hboxLayout5;
     QCheckBox *CBBoundaryD;
     QCheckBox *CBBoundaryA;
-    QSpacerItem *verticalSpacer_7;
+    QSpacerItem *spacerItem4;
     QGroupBox *GBBoundaryD;
-    QGridLayout *gridLayout_3;
-    QComboBox *CBBoundaryDi;
-    QSpacerItem *spacer_2;
+    QGridLayout *gridLayout;
     QPushButton *PBBoundaryDiEdit;
     QPushButton *PBBoundaryDiNew;
+    QComboBox *CBBoundaryDi;
+    QSpacerItem *spacerItem5;
+    QPushButton *PBBoundaryDiHelp;
     QGroupBox *GBBoundaryA;
+    QFormLayout *formLayout;
     QTableWidget *TWBoundary;
-    QWidget *layoutWidget;
-    QVBoxLayout *verticalLayout_4;
-    QPushButton *PBBoundaryNew;
-    QPushButton *PBBoundaryEdit;
-    QPushButton *PBBoundaryDelete;
+    QGridLayout *gridLayout1;
+    QPushButton *PBBoundaryAnEdit;
+    QPushButton *PBBoundaryAnNew;
+    QPushButton *PBBoundaryAnHelp;
+    QSpacerItem *spacer;
+    QCheckBox *CBAdvanced;
+    QGroupBox *GBAdvancedOptions;
+    QGridLayout *gridLayout2;
+    QCheckBox *CBPyramid;
+    QSpacerItem *spacer_3;
+    QSpacerItem *spacer_4;
     QGroupBox *GroupButtons;
-    QGridLayout *gridLayout;
-    QPushButton *buttonOk;
+    QGridLayout *gridLayout3;
+    QPushButton *buttonHelp;
     QPushButton *buttonApply;
+    QPushButton *buttonOk;
     QPushButton *buttonCancel;
-    QPushButton *buttonHelp;
-    QSpacerItem *verticalSpacer_5;
+    QSpacerItem *spacer_2;
 
     void setupUi(QDialog *CreateCase)
     {
-    if (CreateCase->objectName().isEmpty())
-        CreateCase->setObjectName(QString::fromUtf8("CreateCase"));
-    CreateCase->resize(589, 675);
-    QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
-    sizePolicy.setHorizontalStretch(0);
-    sizePolicy.setVerticalStretch(0);
-    sizePolicy.setHeightForWidth(CreateCase->sizePolicy().hasHeightForWidth());
-    CreateCase->setSizePolicy(sizePolicy);
-    CreateCase->setAutoFillBackground(false);
-    gridLayout_2 = new QGridLayout(CreateCase);
-    gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-    horizontalLayout_5 = new QHBoxLayout();
-    horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
-    Name = new QLabel(CreateCase);
-    Name->setObjectName(QString::fromUtf8("Name"));
+        if (CreateCase->objectName().isEmpty())
+            CreateCase->setObjectName(QString::fromUtf8("CreateCase"));
+        CreateCase->resize(601, 1070);
+        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(CreateCase->sizePolicy().hasHeightForWidth());
+        CreateCase->setSizePolicy(sizePolicy);
+        CreateCase->setAutoFillBackground(true);
+        gridLayout_2 = new QGridLayout(CreateCase);
+        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
+        hboxLayout = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout->setContentsMargins(0, 0, 0, 0);
+#endif
+        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+        Name = new QLabel(CreateCase);
+        Name->setObjectName(QString::fromUtf8("Name"));
+
+        hboxLayout->addWidget(Name);
+
+        LECaseName = new QLineEdit(CreateCase);
+        LECaseName->setObjectName(QString::fromUtf8("LECaseName"));
+        LECaseName->setMinimumSize(QSize(382, 21));
+
+        hboxLayout->addWidget(LECaseName);
+
+
+        gridLayout_2->addLayout(hboxLayout, 0, 0, 1, 4);
+
+        hboxLayout1 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout1->setSpacing(6);
+#endif
+        hboxLayout1->setContentsMargins(0, 0, 0, 0);
+        hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
+        Directory = new QLabel(CreateCase);
+        Directory->setObjectName(QString::fromUtf8("Directory"));
+
+        hboxLayout1->addWidget(Directory);
+
+        PushDir = new QPushButton(CreateCase);
+        PushDir->setObjectName(QString::fromUtf8("PushDir"));
+        PushDir->setAutoDefault(false);
+
+        hboxLayout1->addWidget(PushDir);
+
+        LEDirName = new QLineEdit(CreateCase);
+        LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
+        LEDirName->setMinimumSize(QSize(382, 21));
+
+        hboxLayout1->addWidget(LEDirName);
+
+
+        gridLayout_2->addLayout(hboxLayout1, 1, 0, 1, 4);
+
+        spacerItem = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        gridLayout_2->addItem(spacerItem, 2, 1, 1, 1);
+
+        hboxLayout2 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout2->setSpacing(6);
+#endif
+        hboxLayout2->setContentsMargins(0, 0, 0, 0);
+        hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
+        Mesh_2 = new QLabel(CreateCase);
+        Mesh_2->setObjectName(QString::fromUtf8("Mesh_2"));
+
+        hboxLayout2->addWidget(Mesh_2);
+
+        PushFichier = new QPushButton(CreateCase);
+        PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
+        PushFichier->setAutoDefault(false);
+
+        hboxLayout2->addWidget(PushFichier);
+
+        LEFileName = new QLineEdit(CreateCase);
+        LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
+        LEFileName->setMinimumSize(QSize(382, 21));
 
-    horizontalLayout_5->addWidget(Name);
+        hboxLayout2->addWidget(LEFileName);
 
-    LECaseName = new QLineEdit(CreateCase);
-    LECaseName->setObjectName(QString::fromUtf8("LECaseName"));
-    LECaseName->setMinimumSize(QSize(382, 21));
 
-    horizontalLayout_5->addWidget(LECaseName);
+        gridLayout_2->addLayout(hboxLayout2, 3, 0, 1, 4);
 
+        spacerItem1 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addLayout(horizontalLayout_5, 0, 0, 1, 2);
+        gridLayout_2->addItem(spacerItem1, 4, 1, 1, 3);
 
-    horizontalLayout_4 = new QHBoxLayout();
-    horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
-    Directory = new QLabel(CreateCase);
-    Directory->setObjectName(QString::fromUtf8("Directory"));
+        GBTypeConf = new QGroupBox(CreateCase);
+        GBTypeConf->setObjectName(QString::fromUtf8("GBTypeConf"));
+        hboxLayout3 = new QHBoxLayout(GBTypeConf);
+#ifndef Q_OS_MAC
+        hboxLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
+        RBConforme = new QRadioButton(GBTypeConf);
+        RBConforme->setObjectName(QString::fromUtf8("RBConforme"));
+        RBConforme->setChecked(true);
 
-    horizontalLayout_4->addWidget(Directory);
+        hboxLayout3->addWidget(RBConforme);
 
-    PushDir = new QPushButton(CreateCase);
-    PushDir->setObjectName(QString::fromUtf8("PushDir"));
-    PushDir->setAutoDefault(false);
+        RBNonConforme = new QRadioButton(GBTypeConf);
+        RBNonConforme->setObjectName(QString::fromUtf8("RBNonConforme"));
 
-    horizontalLayout_4->addWidget(PushDir);
+        hboxLayout3->addWidget(RBNonConforme);
 
-    LEDirName = new QLineEdit(CreateCase);
-    LEDirName->setObjectName(QString::fromUtf8("LEDirName"));
-    LEDirName->setMinimumSize(QSize(382, 21));
 
-    horizontalLayout_4->addWidget(LEDirName);
+        gridLayout_2->addWidget(GBTypeConf, 5, 0, 1, 1);
 
+        spacerItem2 = new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addLayout(horizontalLayout_4, 1, 0, 1, 1);
+        gridLayout_2->addItem(spacerItem2, 6, 1, 1, 1);
 
-    horizontalLayout_3 = new QHBoxLayout();
-    horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
-    Mesh_2 = new QLabel(CreateCase);
-    Mesh_2->setObjectName(QString::fromUtf8("Mesh_2"));
+        GBTypeNoConf = new QGroupBox(CreateCase);
+        GBTypeNoConf->setObjectName(QString::fromUtf8("GBTypeNoConf"));
+        hboxLayout4 = new QHBoxLayout(GBTypeNoConf);
+#ifndef Q_OS_MAC
+        hboxLayout4->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout4->setContentsMargins(9, 9, 9, 9);
+#endif
+        hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
+        RB1NpM = new QRadioButton(GBTypeNoConf);
+        RB1NpM->setObjectName(QString::fromUtf8("RB1NpM"));
 
-    horizontalLayout_3->addWidget(Mesh_2);
+        hboxLayout4->addWidget(RB1NpM);
 
-    PushFichier = new QPushButton(CreateCase);
-    PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
-    PushFichier->setAutoDefault(false);
+        RB1NpA = new QRadioButton(GBTypeNoConf);
+        RB1NpA->setObjectName(QString::fromUtf8("RB1NpA"));
 
-    horizontalLayout_3->addWidget(PushFichier);
+        hboxLayout4->addWidget(RB1NpA);
 
-    LEFileName = new QLineEdit(CreateCase);
-    LEFileName->setObjectName(QString::fromUtf8("LEFileName"));
-    LEFileName->setMinimumSize(QSize(382, 21));
+        RBQuelconque = new QRadioButton(GBTypeNoConf);
+        RBQuelconque->setObjectName(QString::fromUtf8("RBQuelconque"));
 
-    horizontalLayout_3->addWidget(LEFileName);
+        hboxLayout4->addWidget(RBQuelconque);
 
 
-    gridLayout_2->addLayout(horizontalLayout_3, 3, 0, 1, 2);
+        gridLayout_2->addWidget(GBTypeNoConf, 7, 0, 1, 3);
 
-    verticalSpacer_2 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem3 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addItem(verticalSpacer_2, 4, 0, 1, 1);
+        gridLayout_2->addItem(spacerItem3, 8, 1, 1, 3);
 
-    GBTypeConf = new QGroupBox(CreateCase);
-    GBTypeConf->setObjectName(QString::fromUtf8("GBTypeConf"));
-    horizontalLayout = new QHBoxLayout(GBTypeConf);
-    horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
-    RBConforme = new QRadioButton(GBTypeConf);
-    RBConforme->setObjectName(QString::fromUtf8("RBConforme"));
-    RBConforme->setChecked(true);
+        hboxLayout5 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout5->setSpacing(6);
+#endif
+        hboxLayout5->setContentsMargins(0, 0, 0, 0);
+        hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
+        CBBoundaryD = new QCheckBox(CreateCase);
+        CBBoundaryD->setObjectName(QString::fromUtf8("CBBoundaryD"));
 
-    horizontalLayout->addWidget(RBConforme);
+        hboxLayout5->addWidget(CBBoundaryD);
 
-    RBNonConforme = new QRadioButton(GBTypeConf);
-    RBNonConforme->setObjectName(QString::fromUtf8("RBNonConforme"));
+        CBBoundaryA = new QCheckBox(CreateCase);
+        CBBoundaryA->setObjectName(QString::fromUtf8("CBBoundaryA"));
 
-    horizontalLayout->addWidget(RBNonConforme);
+        hboxLayout5->addWidget(CBBoundaryA);
 
-    RBNonConforme->raise();
-    RBConforme->raise();
 
-    gridLayout_2->addWidget(GBTypeConf, 5, 0, 1, 2);
+        gridLayout_2->addLayout(hboxLayout5, 9, 0, 1, 2);
 
-    verticalSpacer_3 = new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem4 = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addItem(verticalSpacer_3, 6, 0, 1, 1);
+        gridLayout_2->addItem(spacerItem4, 10, 1, 1, 1);
 
-    GBTypeNoConf = new QGroupBox(CreateCase);
-    GBTypeNoConf->setObjectName(QString::fromUtf8("GBTypeNoConf"));
-    horizontalLayout_2 = new QHBoxLayout(GBTypeNoConf);
-    horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
-    RB1NpM = new QRadioButton(GBTypeNoConf);
-    RB1NpM->setObjectName(QString::fromUtf8("RB1NpM"));
+        GBBoundaryD = new QGroupBox(CreateCase);
+        GBBoundaryD->setObjectName(QString::fromUtf8("GBBoundaryD"));
+        sizePolicy.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
+        GBBoundaryD->setSizePolicy(sizePolicy);
+        gridLayout = new QGridLayout(GBBoundaryD);
+#ifndef Q_OS_MAC
+        gridLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        PBBoundaryDiEdit = new QPushButton(GBBoundaryD);
+        PBBoundaryDiEdit->setObjectName(QString::fromUtf8("PBBoundaryDiEdit"));
+        PBBoundaryDiEdit->setAutoDefault(false);
 
-    horizontalLayout_2->addWidget(RB1NpM);
+        gridLayout->addWidget(PBBoundaryDiEdit, 0, 3, 1, 1);
 
-    RB1NpA = new QRadioButton(GBTypeNoConf);
-    RB1NpA->setObjectName(QString::fromUtf8("RB1NpA"));
+        PBBoundaryDiNew = new QPushButton(GBBoundaryD);
+        PBBoundaryDiNew->setObjectName(QString::fromUtf8("PBBoundaryDiNew"));
+        PBBoundaryDiNew->setAutoDefault(false);
 
-    horizontalLayout_2->addWidget(RB1NpA);
+        gridLayout->addWidget(PBBoundaryDiNew, 0, 2, 1, 1);
 
-    RBQuelconque = new QRadioButton(GBTypeNoConf);
-    RBQuelconque->setObjectName(QString::fromUtf8("RBQuelconque"));
+        CBBoundaryDi = new QComboBox(GBBoundaryD);
+        CBBoundaryDi->setObjectName(QString::fromUtf8("CBBoundaryDi"));
+        CBBoundaryDi->setSizeAdjustPolicy(QComboBox::AdjustToContents);
 
-    horizontalLayout_2->addWidget(RBQuelconque);
+        gridLayout->addWidget(CBBoundaryDi, 0, 0, 1, 1);
 
+        spacerItem5 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout_2->addWidget(GBTypeNoConf, 7, 0, 1, 2);
+        gridLayout->addItem(spacerItem5, 0, 1, 1, 1);
 
-    verticalSpacer_4 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        PBBoundaryDiHelp = new QPushButton(GBBoundaryD);
+        PBBoundaryDiHelp->setObjectName(QString::fromUtf8("PBBoundaryDiHelp"));
+        PBBoundaryDiHelp->setAutoDefault(false);
 
-    gridLayout_2->addItem(verticalSpacer_4, 8, 0, 1, 1);
+        gridLayout->addWidget(PBBoundaryDiHelp, 0, 4, 1, 1);
 
-    horizontalLayout_6 = new QHBoxLayout();
-    horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6"));
-    CBBoundaryD = new QCheckBox(CreateCase);
-    CBBoundaryD->setObjectName(QString::fromUtf8("CBBoundaryD"));
 
-    horizontalLayout_6->addWidget(CBBoundaryD);
+        gridLayout_2->addWidget(GBBoundaryD, 11, 0, 1, 3);
 
-    CBBoundaryA = new QCheckBox(CreateCase);
-    CBBoundaryA->setObjectName(QString::fromUtf8("CBBoundaryA"));
+        GBBoundaryA = new QGroupBox(CreateCase);
+        GBBoundaryA->setObjectName(QString::fromUtf8("GBBoundaryA"));
+        GBBoundaryA->setMinimumSize(QSize(548, 200));
+        formLayout = new QFormLayout(GBBoundaryA);
+        formLayout->setObjectName(QString::fromUtf8("formLayout"));
+        TWBoundary = new QTableWidget(GBBoundaryA);
+        if (TWBoundary->columnCount() < 1)
+            TWBoundary->setColumnCount(1);
+        QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
+        TWBoundary->setHorizontalHeaderItem(0, __qtablewidgetitem);
+        TWBoundary->setObjectName(QString::fromUtf8("TWBoundary"));
+        TWBoundary->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
+        TWBoundary->setShowGrid(true);
+        TWBoundary->setRowCount(0);
+        TWBoundary->setColumnCount(1);
 
-    horizontalLayout_6->addWidget(CBBoundaryA);
+        formLayout->setWidget(0, QFormLayout::LabelRole, TWBoundary);
 
+        gridLayout1 = new QGridLayout();
+#ifndef Q_OS_MAC
+        gridLayout1->setSpacing(6);
+#endif
+        gridLayout1->setContentsMargins(0, 0, 0, 0);
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+        PBBoundaryAnEdit = new QPushButton(GBBoundaryA);
+        PBBoundaryAnEdit->setObjectName(QString::fromUtf8("PBBoundaryAnEdit"));
+        PBBoundaryAnEdit->setAutoDefault(false);
 
-    gridLayout_2->addLayout(horizontalLayout_6, 9, 0, 1, 1);
+        gridLayout1->addWidget(PBBoundaryAnEdit, 1, 0, 1, 1);
 
-    verticalSpacer_7 = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        PBBoundaryAnNew = new QPushButton(GBBoundaryA);
+        PBBoundaryAnNew->setObjectName(QString::fromUtf8("PBBoundaryAnNew"));
+        PBBoundaryAnNew->setAutoDefault(false);
 
-    gridLayout_2->addItem(verticalSpacer_7, 10, 0, 1, 1);
+        gridLayout1->addWidget(PBBoundaryAnNew, 0, 0, 1, 1);
 
-    GBBoundaryD = new QGroupBox(CreateCase);
-    GBBoundaryD->setObjectName(QString::fromUtf8("GBBoundaryD"));
-    sizePolicy.setHeightForWidth(GBBoundaryD->sizePolicy().hasHeightForWidth());
-    GBBoundaryD->setSizePolicy(sizePolicy);
-    gridLayout_3 = new QGridLayout(GBBoundaryD);
-    gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-    CBBoundaryDi = new QComboBox(GBBoundaryD);
-    CBBoundaryDi->setObjectName(QString::fromUtf8("CBBoundaryDi"));
-    CBBoundaryDi->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+        PBBoundaryAnHelp = new QPushButton(GBBoundaryA);
+        PBBoundaryAnHelp->setObjectName(QString::fromUtf8("PBBoundaryAnHelp"));
+        PBBoundaryAnHelp->setAutoDefault(false);
 
-    gridLayout_3->addWidget(CBBoundaryDi, 0, 0, 1, 1);
+        gridLayout1->addWidget(PBBoundaryAnHelp, 2, 0, 1, 1);
 
-    spacer_2 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout_3->addItem(spacer_2, 0, 1, 1, 1);
+        formLayout->setLayout(0, QFormLayout::FieldRole, gridLayout1);
 
-    PBBoundaryDiEdit = new QPushButton(GBBoundaryD);
-    PBBoundaryDiEdit->setObjectName(QString::fromUtf8("PBBoundaryDiEdit"));
-    PBBoundaryDiEdit->setAutoDefault(false);
 
-    gridLayout_3->addWidget(PBBoundaryDiEdit, 0, 2, 1, 1);
+        gridLayout_2->addWidget(GBBoundaryA, 12, 0, 1, 4);
 
-    PBBoundaryDiNew = new QPushButton(GBBoundaryD);
-    PBBoundaryDiNew->setObjectName(QString::fromUtf8("PBBoundaryDiNew"));
-    PBBoundaryDiNew->setAutoDefault(false);
+        spacer = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_3->addWidget(PBBoundaryDiNew, 0, 3, 1, 1);
+        gridLayout_2->addItem(spacer, 13, 0, 1, 1);
 
+        CBAdvanced = new QCheckBox(CreateCase);
+        CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
 
-    gridLayout_2->addWidget(GBBoundaryD, 11, 0, 1, 1);
+        gridLayout_2->addWidget(CBAdvanced, 14, 0, 1, 1);
 
-    GBBoundaryA = new QGroupBox(CreateCase);
-    GBBoundaryA->setObjectName(QString::fromUtf8("GBBoundaryA"));
-    GBBoundaryA->setMinimumSize(QSize(548, 150));
-    TWBoundary = new QTableWidget(GBBoundaryA);
-    if (TWBoundary->columnCount() < 2)
-        TWBoundary->setColumnCount(2);
-    QTableWidgetItem *__colItem = new QTableWidgetItem();
-    TWBoundary->setHorizontalHeaderItem(0, __colItem);
-    QTableWidgetItem *__colItem1 = new QTableWidgetItem();
-    TWBoundary->setHorizontalHeaderItem(1, __colItem1);
-    TWBoundary->setObjectName(QString::fromUtf8("TWBoundary"));
-    TWBoundary->setGeometry(QRect(4, 20, 371, 121));
-    TWBoundary->setAutoScrollMargin(16);
-    TWBoundary->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
-    TWBoundary->setShowGrid(true);
-    TWBoundary->setRowCount(0);
-    TWBoundary->setColumnCount(2);
-    layoutWidget = new QWidget(GBBoundaryA);
-    layoutWidget->setObjectName(QString::fromUtf8("layoutWidget"));
-    layoutWidget->setGeometry(QRect(410, 20, 120, 110));
-    verticalLayout_4 = new QVBoxLayout(layoutWidget);
-    verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4"));
-    verticalLayout_4->setContentsMargins(0, 0, 0, 0);
-    PBBoundaryNew = new QPushButton(layoutWidget);
-    PBBoundaryNew->setObjectName(QString::fromUtf8("PBBoundaryNew"));
-    PBBoundaryNew->setAutoDefault(false);
+        GBAdvancedOptions = new QGroupBox(CreateCase);
+        GBAdvancedOptions->setObjectName(QString::fromUtf8("GBAdvancedOptions"));
+        gridLayout2 = new QGridLayout(GBAdvancedOptions);
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        CBPyramid = new QCheckBox(GBAdvancedOptions);
+        CBPyramid->setObjectName(QString::fromUtf8("CBPyramid"));
 
-    verticalLayout_4->addWidget(PBBoundaryNew);
+        gridLayout2->addWidget(CBPyramid, 0, 0, 1, 1);
 
-    PBBoundaryEdit = new QPushButton(layoutWidget);
-    PBBoundaryEdit->setObjectName(QString::fromUtf8("PBBoundaryEdit"));
-    PBBoundaryEdit->setAutoDefault(false);
 
-    verticalLayout_4->addWidget(PBBoundaryEdit);
+        gridLayout_2->addWidget(GBAdvancedOptions, 15, 0, 1, 2);
 
-    PBBoundaryDelete = new QPushButton(layoutWidget);
-    PBBoundaryDelete->setObjectName(QString::fromUtf8("PBBoundaryDelete"));
-    PBBoundaryDelete->setAutoDefault(false);
+        spacer_3 = new QSpacerItem(128, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    verticalLayout_4->addWidget(PBBoundaryDelete);
+        gridLayout_2->addItem(spacer_3, 15, 2, 1, 2);
 
+        spacer_4 = new QSpacerItem(239, 41, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addWidget(GBBoundaryA, 12, 0, 1, 2);
+        gridLayout_2->addItem(spacer_4, 16, 0, 1, 2);
 
-    GroupButtons = new QGroupBox(CreateCase);
-    GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
-    gridLayout = new QGridLayout(GroupButtons);
-    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    buttonOk = new QPushButton(GroupButtons);
-    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
-    buttonOk->setAutoDefault(false);
+        GroupButtons = new QGroupBox(CreateCase);
+        GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
+        gridLayout3 = new QGridLayout(GroupButtons);
+#ifndef Q_OS_MAC
+        gridLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+        buttonHelp = new QPushButton(GroupButtons);
+        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+        buttonHelp->setAutoDefault(false);
 
-    gridLayout->addWidget(buttonOk, 0, 0, 1, 1);
+        gridLayout3->addWidget(buttonHelp, 0, 4, 1, 1);
 
-    buttonApply = new QPushButton(GroupButtons);
-    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
-    buttonApply->setAutoDefault(false);
+        buttonApply = new QPushButton(GroupButtons);
+        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+        buttonApply->setAutoDefault(false);
 
-    gridLayout->addWidget(buttonApply, 0, 1, 1, 1);
+        gridLayout3->addWidget(buttonApply, 0, 1, 1, 1);
 
-    buttonCancel = new QPushButton(GroupButtons);
-    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
-    buttonCancel->setAutoDefault(false);
+        buttonOk = new QPushButton(GroupButtons);
+        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+        buttonOk->setAutoDefault(false);
 
-    gridLayout->addWidget(buttonCancel, 0, 2, 1, 1);
+        gridLayout3->addWidget(buttonOk, 0, 0, 1, 1);
 
-    buttonHelp = new QPushButton(GroupButtons);
-    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
-    buttonHelp->setAutoDefault(false);
+        buttonCancel = new QPushButton(GroupButtons);
+        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+        buttonCancel->setAutoDefault(false);
 
-    gridLayout->addWidget(buttonHelp, 0, 3, 1, 1);
+        gridLayout3->addWidget(buttonCancel, 0, 2, 1, 1);
 
 
-    gridLayout_2->addWidget(GroupButtons, 13, 0, 1, 2);
+        gridLayout_2->addWidget(GroupButtons, 17, 0, 1, 3);
 
-    verticalSpacer_5 = new QSpacerItem(20, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacer_2 = new QSpacerItem(128, 25, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout_2->addItem(verticalSpacer_5, 2, 1, 1, 1);
+        gridLayout_2->addItem(spacer_2, 17, 3, 1, 1);
 
 
-    retranslateUi(CreateCase);
+        retranslateUi(CreateCase);
 
-    CBBoundaryDi->setCurrentIndex(-1);
+        CBBoundaryDi->setCurrentIndex(-1);
 
 
-    QMetaObject::connectSlotsByName(CreateCase);
+        QMetaObject::connectSlotsByName(CreateCase);
     } // setupUi
 
     void retranslateUi(QDialog *CreateCase)
     {
-    CreateCase->setWindowTitle(QApplication::translate("CreateCase", "Create Case", 0, QApplication::UnicodeUTF8));
-    Name->setText(QApplication::translate("CreateCase", "Name", 0, QApplication::UnicodeUTF8));
-    Directory->setText(QApplication::translate("CreateCase", "Directory", 0, QApplication::UnicodeUTF8));
-    PushDir->setText(QString());
-    Mesh_2->setText(QApplication::translate("CreateCase", "Mesh", 0, QApplication::UnicodeUTF8));
-    PushFichier->setText(QString());
-    GBTypeConf->setTitle(QApplication::translate("CreateCase", "Conformity Type", 0, QApplication::UnicodeUTF8));
-    RBConforme->setText(QApplication::translate("CreateCase", "Conformal", 0, QApplication::UnicodeUTF8));
-    RBNonConforme->setText(QApplication::translate("CreateCase", "Non conformal", 0, QApplication::UnicodeUTF8));
-    GBTypeNoConf->setTitle(QApplication::translate("CreateCase", "Non Conformal option", 0, QApplication::UnicodeUTF8));
-    RB1NpM->setText(QApplication::translate("CreateCase", "1 hanging node per mesh", 0, QApplication::UnicodeUTF8));
-    RB1NpA->setText(QApplication::translate("CreateCase", "1 node per edge", 0, QApplication::UnicodeUTF8));
-    RBQuelconque->setText(QApplication::translate("CreateCase", "free", 0, QApplication::UnicodeUTF8));
-    CBBoundaryD->setText(QApplication::translate("CreateCase", "Discrete Boundary ", 0, QApplication::UnicodeUTF8));
-    CBBoundaryA->setText(QApplication::translate("CreateCase", "Analytic Boundary ", 0, QApplication::UnicodeUTF8));
-    GBBoundaryD->setTitle(QApplication::translate("CreateCase", "Discrete Boundary", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDiEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDiNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
-    GBBoundaryA->setTitle(QApplication::translate("CreateCase", "Analytic Boundary", 0, QApplication::UnicodeUTF8));
-    TWBoundary->horizontalHeaderItem(0)->setText(QApplication::translate("CreateCase", "Group", 0, QApplication::UnicodeUTF8));
-    TWBoundary->horizontalHeaderItem(1)->setText(QApplication::translate("CreateCase", "Boundary", 0, QApplication::UnicodeUTF8));
-    PBBoundaryNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
-    PBBoundaryEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
-    PBBoundaryDelete->setText(QString());
-    GroupButtons->setTitle(QString());
-    buttonOk->setText(QApplication::translate("CreateCase", "&Ok", 0, QApplication::UnicodeUTF8));
-    buttonApply->setText(QApplication::translate("CreateCase", "&Apply", 0, QApplication::UnicodeUTF8));
-    buttonCancel->setText(QApplication::translate("CreateCase", "&Cancel", 0, QApplication::UnicodeUTF8));
-    buttonHelp->setText(QApplication::translate("CreateCase", "&Help", 0, QApplication::UnicodeUTF8));
-    Q_UNUSED(CreateCase);
+        CreateCase->setWindowTitle(QApplication::translate("CreateCase", "Create a case", 0, QApplication::UnicodeUTF8));
+        Name->setText(QApplication::translate("CreateCase", "Name", 0, QApplication::UnicodeUTF8));
+        Directory->setText(QApplication::translate("CreateCase", "Directory", 0, QApplication::UnicodeUTF8));
+        PushDir->setText(QString());
+        Mesh_2->setText(QApplication::translate("CreateCase", "Mesh", 0, QApplication::UnicodeUTF8));
+        PushFichier->setText(QString());
+        GBTypeConf->setTitle(QApplication::translate("CreateCase", "Conformity type", 0, QApplication::UnicodeUTF8));
+        RBConforme->setText(QApplication::translate("CreateCase", "Conformal", 0, QApplication::UnicodeUTF8));
+        RBNonConforme->setText(QApplication::translate("CreateCase", "Non conformal", 0, QApplication::UnicodeUTF8));
+        GBTypeNoConf->setTitle(QApplication::translate("CreateCase", "Non conformal option", 0, QApplication::UnicodeUTF8));
+        RB1NpM->setText(QApplication::translate("CreateCase", "1 hanging node per mesh", 0, QApplication::UnicodeUTF8));
+        RB1NpA->setText(QApplication::translate("CreateCase", "1 node per edge", 0, QApplication::UnicodeUTF8));
+        RBQuelconque->setText(QApplication::translate("CreateCase", "Free", 0, QApplication::UnicodeUTF8));
+        CBBoundaryD->setText(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
+        CBBoundaryA->setText(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
+        GBBoundaryD->setTitle(QApplication::translate("CreateCase", "Discrete boundary", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
+        PBBoundaryDiHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        GBBoundaryA->setTitle(QApplication::translate("CreateCase", "Analytical boundary", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem = TWBoundary->horizontalHeaderItem(0);
+        ___qtablewidgetitem->setText(QApplication::translate("CreateCase", "a_virer", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnEdit->setText(QApplication::translate("CreateCase", "Edit", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnNew->setText(QApplication::translate("CreateCase", "New", 0, QApplication::UnicodeUTF8));
+        PBBoundaryAnHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        CBAdvanced->setText(QApplication::translate("CreateCase", "Advanced options", 0, QApplication::UnicodeUTF8));
+        GBAdvancedOptions->setTitle(QApplication::translate("CreateCase", "Advanced options", 0, QApplication::UnicodeUTF8));
+        CBPyramid->setText(QApplication::translate("CreateCase", "Authorized pyramids", 0, QApplication::UnicodeUTF8));
+        GroupButtons->setTitle(QString());
+        buttonHelp->setText(QApplication::translate("CreateCase", "Help", 0, QApplication::UnicodeUTF8));
+        buttonApply->setText(QApplication::translate("CreateCase", "Apply", 0, QApplication::UnicodeUTF8));
+        buttonOk->setText(QApplication::translate("CreateCase", "OK", 0, QApplication::UnicodeUTF8));
+        buttonCancel->setText(QApplication::translate("CreateCase", "Cancel", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
index abfe1cf8f667dec36ce18c22289fceb710f05cb9..95204dcd88da69862ec7a7cdfae50ce3b0aab551 100644 (file)
@@ -1,39 +1,46 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateCase</class>
- <widget class="QDialog" name="CreateCase" >
-  <property name="geometry" >
+ <widget class="QDialog" name="CreateCase">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>589</width>
-    <height>675</height>
+    <width>601</width>
+    <height>1070</height>
    </rect>
   </property>
-  <property name="sizePolicy" >
-   <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
-  <property name="windowTitle" >
-   <string>Create Case</string>
+  <property name="windowTitle">
+   <string>Create a case</string>
   </property>
-  <property name="autoFillBackground" >
-   <bool>false</bool>
+  <property name="autoFillBackground">
+   <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2" >
-   <item row="0" column="0" colspan="2" >
-    <layout class="QHBoxLayout" name="horizontalLayout_5" >
+  <layout class="QGridLayout" name="gridLayout_2">
+   <item row="0" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QLabel" name="Name" >
-       <property name="text" >
+      <widget class="QLabel" name="Name">
+       <property name="text">
         <string>Name</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LECaseName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LECaseName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="1" column="0" >
-    <layout class="QHBoxLayout" name="horizontalLayout_4" >
+   <item row="1" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QLabel" name="Directory" >
-       <property name="text" >
+      <widget class="QLabel" name="Directory">
+       <property name="text">
         <string>Directory</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="PushDir" >
-       <property name="text" >
+      <widget class="QPushButton" name="PushDir">
+       <property name="text">
         <string/>
        </property>
-       <property name="autoDefault" >
+       <property name="autoDefault">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LEDirName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LEDirName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="3" column="0" colspan="2" >
-    <layout class="QHBoxLayout" name="horizontalLayout_3" >
+   <item row="2" column="1">
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>18</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="3" column="0" colspan="4">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QLabel" name="Mesh_2" >
-       <property name="text" >
+      <widget class="QLabel" name="Mesh_2">
+       <property name="text">
         <string>Mesh</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="PushFichier" >
-       <property name="text" >
+      <widget class="QPushButton" name="PushFichier">
+       <property name="text">
         <string/>
        </property>
-       <property name="autoDefault" >
+       <property name="autoDefault">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="LEFileName" >
-       <property name="minimumSize" >
+      <widget class="QLineEdit" name="LEFileName">
+       <property name="minimumSize">
         <size>
          <width>382</width>
          <height>21</height>
      </item>
     </layout>
    </item>
-   <item row="4" column="0" >
-    <spacer name="verticalSpacer_2" >
-     <property name="orientation" >
+   <item row="4" column="1" colspan="3">
+    <spacer>
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>0</height>
      </property>
     </spacer>
    </item>
-   <item row="5" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBTypeConf" >
-     <property name="title" >
-      <string>Conformity Type</string>
+   <item row="5" column="0">
+    <widget class="QGroupBox" name="GBTypeConf">
+     <property name="title">
+      <string>Conformity type</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
+     <layout class="QHBoxLayout">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item>
-       <widget class="QRadioButton" name="RBConforme" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBConforme">
+        <property name="text">
          <string>Conformal</string>
         </property>
-        <property name="checked" >
+        <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBNonConforme" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBNonConforme">
+        <property name="text">
          <string>Non conformal</string>
         </property>
        </widget>
       </item>
      </layout>
-     <zorder>RBNonConforme</zorder>
-     <zorder>RBConforme</zorder>
     </widget>
    </item>
-   <item row="6" column="0" >
-    <spacer name="verticalSpacer_3" >
-     <property name="orientation" >
+   <item row="6" column="1">
+    <spacer>
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>1</height>
      </property>
     </spacer>
    </item>
-   <item row="7" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBTypeNoConf" >
-     <property name="title" >
-      <string>Non Conformal option</string>
+   <item row="7" column="0" colspan="3">
+    <widget class="QGroupBox" name="GBTypeNoConf">
+     <property name="title">
+      <string>Non conformal option</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_2" >
+     <layout class="QHBoxLayout">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item>
-       <widget class="QRadioButton" name="RB1NpM" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RB1NpM">
+        <property name="text">
          <string>1 hanging node per mesh</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RB1NpA" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RB1NpA">
+        <property name="text">
          <string>1 node per edge</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBQuelconque" >
-        <property name="text" >
-         <string>free</string>
+       <widget class="QRadioButton" name="RBQuelconque">
+        <property name="text">
+         <string>Free</string>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
-   <item row="8" column="0" >
-    <spacer name="verticalSpacer_4" >
-     <property name="orientation" >
+   <item row="8" column="1" colspan="3">
+    <spacer>
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>0</height>
      </property>
     </spacer>
    </item>
-   <item row="9" column="0" >
-    <layout class="QHBoxLayout" name="horizontalLayout_6" >
+   <item row="9" column="0" colspan="2">
+    <layout class="QHBoxLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
      <item>
-      <widget class="QCheckBox" name="CBBoundaryD" >
-       <property name="text" >
-        <string>Discrete Boundary </string>
+      <widget class="QCheckBox" name="CBBoundaryD">
+       <property name="text">
+        <string>Discrete boundary</string>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QCheckBox" name="CBBoundaryA" >
-       <property name="text" >
-        <string>Analytic Boundary </string>
+      <widget class="QCheckBox" name="CBBoundaryA">
+       <property name="text">
+        <string>Analytical boundary</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
-   <item row="10" column="0" >
-    <spacer name="verticalSpacer_7" >
-     <property name="orientation" >
+   <item row="10" column="1">
+    <spacer>
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>2</height>
      </property>
     </spacer>
    </item>
-   <item row="11" column="0" >
-    <widget class="QGroupBox" name="GBBoundaryD" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" >
+   <item row="11" column="0" colspan="3">
+    <widget class="QGroupBox" name="GBBoundaryD">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
-      <string>Discrete Boundary</string>
+     <property name="title">
+      <string>Discrete boundary</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3" >
-      <item row="0" column="0" >
-       <widget class="QComboBox" name="CBBoundaryDi" >
-        <property name="currentIndex" >
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="3">
+       <widget class="QPushButton" name="PBBoundaryDiEdit">
+        <property name="text">
+         <string>Edit</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="PBBoundaryDiNew">
+        <property name="text">
+         <string>New</string>
+        </property>
+        <property name="autoDefault">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QComboBox" name="CBBoundaryDi">
+        <property name="currentIndex">
          <number>-1</number>
         </property>
-        <property name="sizeAdjustPolicy" >
+        <property name="sizeAdjustPolicy">
          <enum>QComboBox::AdjustToContents</enum>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <spacer name="spacer_2" >
-        <property name="orientation" >
+      <item row="0" column="1">
+       <spacer>
+        <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
-        <property name="sizeType" >
+        <property name="sizeType">
          <enum>QSizePolicy::Fixed</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" stdset="0">
          <size>
           <width>40</width>
           <height>13</height>
         </property>
        </spacer>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="PBBoundaryDiEdit" >
-        <property name="text" >
-         <string>Edit</string>
+      <item row="0" column="4">
+       <widget class="QPushButton" name="PBBoundaryDiHelp">
+        <property name="text">
+         <string>Help</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="PBBoundaryDiNew" >
-        <property name="text" >
-         <string>New</string>
+     </layout>
+    </widget>
+   </item>
+   <item row="12" column="0" colspan="4">
+    <widget class="QGroupBox" name="GBBoundaryA">
+     <property name="minimumSize">
+      <size>
+       <width>548</width>
+       <height>200</height>
+      </size>
+     </property>
+     <property name="title">
+      <string>Analytical boundary</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QTableWidget" name="TWBoundary">
+        <property name="editTriggers">
+         <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
         </property>
-        <property name="autoDefault" >
-         <bool>false</bool>
+        <property name="showGrid">
+         <bool>true</bool>
+        </property>
+        <property name="rowCount">
+         <number>0</number>
         </property>
+        <property name="columnCount">
+         <number>1</number>
+        </property>
+        <column>
+         <property name="text">
+          <string>a_virer</string>
+         </property>
+        </column>
        </widget>
       </item>
+      <item row="0" column="1">
+       <layout class="QGridLayout">
+        <property name="margin">
+         <number>0</number>
+        </property>
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <item row="1" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnEdit">
+          <property name="text">
+           <string>Edit</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnNew">
+          <property name="text">
+           <string>New</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QPushButton" name="PBBoundaryAnHelp">
+          <property name="text">
+           <string>Help</string>
+          </property>
+          <property name="autoDefault">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
      </layout>
     </widget>
    </item>
-   <item row="12" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBBoundaryA" >
-     <property name="minimumSize" >
+   <item row="13" column="0">
+    <spacer name="spacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
       <size>
-       <width>548</width>
-       <height>150</height>
+       <width>239</width>
+       <height>41</height>
       </size>
      </property>
-     <property name="title" >
-      <string>Analytic Boundary</string>
-     </property>
-     <widget class="QTableWidget" name="TWBoundary" >
-      <property name="geometry" >
-       <rect>
-        <x>4</x>
-        <y>20</y>
-        <width>371</width>
-        <height>121</height>
-       </rect>
-      </property>
-      <property name="autoScrollMargin" >
-       <number>16</number>
-      </property>
-      <property name="editTriggers" >
-       <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
-      </property>
-      <property name="showGrid" >
-       <bool>true</bool>
-      </property>
-      <property name="rowCount" >
-       <number>0</number>
-      </property>
-      <property name="columnCount" >
-       <number>2</number>
-      </property>
-      <column>
-       <property name="text" >
-        <string>Group</string>
-       </property>
-      </column>
-      <column>
-       <property name="text" >
-        <string>Boundary</string>
-       </property>
-      </column>
-     </widget>
-     <widget class="QWidget" name="layoutWidget" >
-      <property name="geometry" >
-       <rect>
-        <x>410</x>
-        <y>20</y>
-        <width>120</width>
-        <height>110</height>
-       </rect>
-      </property>
-      <layout class="QVBoxLayout" name="verticalLayout_4" >
-       <item>
-        <widget class="QPushButton" name="PBBoundaryNew" >
-         <property name="text" >
-          <string>New</string>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QPushButton" name="PBBoundaryEdit" >
-         <property name="text" >
-          <string>Edit</string>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QPushButton" name="PBBoundaryDelete" >
-         <property name="text" >
-          <string/>
-         </property>
-         <property name="autoDefault" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
+    </spacer>
+   </item>
+   <item row="14" column="0">
+    <widget class="QCheckBox" name="CBAdvanced">
+     <property name="text">
+      <string>Advanced options</string>
+     </property>
+    </widget>
+   </item>
+   <item row="15" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBAdvancedOptions">
+     <property name="title">
+      <string>Advanced options</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="CBPyramid">
+        <property name="text">
+         <string>Authorized pyramids</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
     </widget>
    </item>
-   <item row="13" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GroupButtons" >
-     <property name="title" >
+   <item row="15" column="2" colspan="2">
+    <spacer name="spacer_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>128</width>
+       <height>13</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="16" column="0" colspan="2">
+    <spacer name="spacer_4">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>239</width>
+       <height>41</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="17" column="0" colspan="3">
+    <widget class="QGroupBox" name="GroupButtons">
+     <property name="title">
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout" >
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>&amp;Ok</string>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="4">
+       <widget class="QPushButton" name="buttonHelp">
+        <property name="text">
+         <string>Help</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>&amp;Apply</string>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="buttonApply">
+        <property name="text">
+         <string>Apply</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>&amp;Cancel</string>
+      <item row="0" column="0">
+       <widget class="QPushButton" name="buttonOk">
+        <property name="text">
+         <string>OK</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>&amp;Help</string>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="buttonCancel">
+        <property name="text">
+         <string>Cancel</string>
         </property>
-        <property name="autoDefault" >
+        <property name="autoDefault">
          <bool>false</bool>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="2" column="1" >
-    <spacer name="verticalSpacer_5" >
-     <property name="orientation" >
-      <enum>Qt::Vertical</enum>
+   <item row="17" column="3">
+    <spacer name="spacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
       <size>
-       <width>20</width>
-       <height>18</height>
+       <width>128</width>
+       <height>25</height>
       </size>
      </property>
     </spacer>
index 1d10a3f2e31e1167dae9b831f5e609ca3cc383f4..e40b04b889d0dec5313a93883cff663f068aaed7 100644 (file)
@@ -1,10 +1,10 @@
 /********************************************************************************
-** Form generated from reading ui file 'CreateHypothesis.ui'
+** Form generated from reading UI file 'CreateHypothesis.ui'
 **
-** Created: Thu Nov 18 15:21:42 2010
-**      by: Qt User Interface Compiler version 4.4.3
+** Created: Wed Apr 11 11:35:26 2012
+**      by: Qt User Interface Compiler version 4.6.3
 **
-** WARNING! All changes made in this file will be lost when recompiling ui file!
+** WARNING! All changes made in this file will be lost when recompiling UI file!
 ********************************************************************************/
 
 #ifndef CREATEHYPOTHESIS_H
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
 #include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
 #include <QtGui/QSpacerItem>
+#include <QtGui/QSpinBox>
 #include <QtGui/QTableWidget>
 #include <QtGui/QVBoxLayout>
 
@@ -34,38 +36,38 @@ QT_BEGIN_NAMESPACE
 class Ui_CreateHypothesis
 {
 public:
-    QGridLayout *gridLayout_10;
-    QLabel *Name;
+    QGridLayout *gridLayout_3;
     QLineEdit *LEHypothesisName;
     QGroupBox *GBTypeAdaptation;
-    QHBoxLayout *horizontalLayout;
+    QHBoxLayout *hboxLayout;
     QRadioButton *RBUniforme;
     QRadioButton *RBChamp;
     QRadioButton *RBZone;
     QGroupBox *GBUniform;
-    QGridLayout *gridLayout_2;
+    QGridLayout *gridLayout;
     QRadioButton *RBUniDera;
     QRadioButton *RBUniRaff;
     QGroupBox *GBFieldFile;
-    QGridLayout *gridLayout_9;
+    QGridLayout *gridLayout1;
     QLabel *FieldFile;
     QLineEdit *LEFieldFile;
     QGroupBox *GBFieldManagement;
-    QGridLayout *gridLayout_6;
-    QHBoxLayout *horizontalLayout_6;
+    QGridLayout *gridLayout2;
+    QHBoxLayout *hboxLayout1;
     QLabel *FieldName;
     QComboBox *CBFieldName;
-    QSpacerItem *horizontalSpacer_3;
-    QHBoxLayout *horizontalLayout_7;
+    QSpacerItem *spacerItem;
+    QHBoxLayout *hboxLayout2;
     QTableWidget *TWCMP;
-    QSpacerItem *horizontalSpacer_4;
-    QVBoxLayout *verticalLayout_3;
-    QHBoxLayout *horizontalLayout_3;
+    QSpacerItem *spacerItem1;
+    QVBoxLayout *vboxLayout;
+    QHBoxLayout *hboxLayout3;
     QRadioButton *RBL2;
     QRadioButton *RBInf;
-    QHBoxLayout *horizontalLayout_2;
+    QCheckBox *CBJump;
+    QHBoxLayout *hboxLayout4;
     QGroupBox *GBRefinementThresholds;
-    QGridLayout *gridLayout;
+    QGridLayout *gridLayout3;
     QRadioButton *RBRPE;
     QDoubleSpinBox *SpinBox_RPE;
     QRadioButton *RBRRel;
@@ -74,7 +76,7 @@ public:
     QDoubleSpinBox *SpinBox_RAbs;
     QRadioButton *RBRNo;
     QGroupBox *GBCoarseningThresholds;
-    QGridLayout *gridLayout_4;
+    QGridLayout *gridLayout4;
     QRadioButton *RBCPE;
     QDoubleSpinBox *SpinBox_CPE;
     QRadioButton *RBCRel;
@@ -83,499 +85,703 @@ public:
     QDoubleSpinBox *SpinBox_CAbs;
     QRadioButton *RBCNo;
     QGroupBox *GBAreaManagement;
-    QGridLayout *gridLayout_3;
+    QGridLayout *gridLayout_4;
     QTableWidget *TWZone;
-    QVBoxLayout *verticalLayout_2;
-    QVBoxLayout *verticalLayout;
+    QSpacerItem *horizontalSpacer;
+    QVBoxLayout *vboxLayout1;
+    QVBoxLayout *vboxLayout2;
     QPushButton *PBZoneNew;
     QPushButton *PBZoneEdit;
     QPushButton *PBZoneDelete;
-    QSpacerItem *verticalSpacer;
+    QSpacerItem *spacerItem2;
     QGroupBox *GBField;
-    QGridLayout *gridLayout_8;
-    QGridLayout *gridLayout_7;
+    QGridLayout *gridLayout5;
+    QGridLayout *gridLayout6;
     QRadioButton *RBFieldNo;
     QRadioButton *RBFieldAll;
     QRadioButton *RBFieldChosen;
     QTableWidget *TWField;
     QCheckBox *CBGroupe;
+    QCheckBox *CBAdvanced;
+    QGroupBox *GBAdvancedOptions;
+    QGridLayout *gridLayout_1;
+    QLabel *TLMinimalDiameter;
+    QDoubleSpinBox *doubleSpinBoxDiamMin;
+    QLabel *TLMaximalLevel;
+    QSpinBox *spinBoxNivMax;
+    QGroupBox *GBAdapInit;
+    QGridLayout *gridLayout_2;
+    QRadioButton *RBAIN;
+    QRadioButton *RBAIR;
+    QRadioButton *RBAID;
     QGroupBox *GBButtons;
-    QGridLayout *gridLayout_5;
+    QGridLayout *gridLayout7;
     QPushButton *buttonOk;
     QPushButton *buttonApply;
     QPushButton *buttonCancel;
     QPushButton *buttonHelp;
+    QLabel *Name;
 
     void setupUi(QDialog *CreateHypothesis)
     {
-    if (CreateHypothesis->objectName().isEmpty())
-        CreateHypothesis->setObjectName(QString::fromUtf8("CreateHypothesis"));
-    CreateHypothesis->resize(717, 1005);
-    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-    sizePolicy.setHorizontalStretch(0);
-    sizePolicy.setVerticalStretch(0);
-    sizePolicy.setHeightForWidth(CreateHypothesis->sizePolicy().hasHeightForWidth());
-    CreateHypothesis->setSizePolicy(sizePolicy);
-    CreateHypothesis->setAutoFillBackground(false);
-    CreateHypothesis->setSizeGripEnabled(true);
-    gridLayout_10 = new QGridLayout(CreateHypothesis);
-    gridLayout_10->setObjectName(QString::fromUtf8("gridLayout_10"));
-    Name = new QLabel(CreateHypothesis);
-    Name->setObjectName(QString::fromUtf8("Name"));
-
-    gridLayout_10->addWidget(Name, 0, 0, 1, 1);
-
-    LEHypothesisName = new QLineEdit(CreateHypothesis);
-    LEHypothesisName->setObjectName(QString::fromUtf8("LEHypothesisName"));
-    LEHypothesisName->setMinimumSize(QSize(382, 31));
-    LEHypothesisName->setMaxLength(32);
-
-    gridLayout_10->addWidget(LEHypothesisName, 0, 1, 1, 1);
-
-    GBTypeAdaptation = new QGroupBox(CreateHypothesis);
-    GBTypeAdaptation->setObjectName(QString::fromUtf8("GBTypeAdaptation"));
-    horizontalLayout = new QHBoxLayout(GBTypeAdaptation);
-    horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
-    RBUniforme = new QRadioButton(GBTypeAdaptation);
-    RBUniforme->setObjectName(QString::fromUtf8("RBUniforme"));
-    RBUniforme->setCheckable(true);
-
-    horizontalLayout->addWidget(RBUniforme);
-
-    RBChamp = new QRadioButton(GBTypeAdaptation);
-    RBChamp->setObjectName(QString::fromUtf8("RBChamp"));
-
-    horizontalLayout->addWidget(RBChamp);
-
-    RBZone = new QRadioButton(GBTypeAdaptation);
-    RBZone->setObjectName(QString::fromUtf8("RBZone"));
-
-    horizontalLayout->addWidget(RBZone);
-
-
-    gridLayout_10->addWidget(GBTypeAdaptation, 1, 0, 1, 2);
-
-    GBUniform = new QGroupBox(CreateHypothesis);
-    GBUniform->setObjectName(QString::fromUtf8("GBUniform"));
-    gridLayout_2 = new QGridLayout(GBUniform);
-    gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-    RBUniDera = new QRadioButton(GBUniform);
-    RBUniDera->setObjectName(QString::fromUtf8("RBUniDera"));
-
-    gridLayout_2->addWidget(RBUniDera, 0, 1, 1, 1);
-
-    RBUniRaff = new QRadioButton(GBUniform);
-    RBUniRaff->setObjectName(QString::fromUtf8("RBUniRaff"));
-    RBUniRaff->setChecked(true);
+        if (CreateHypothesis->objectName().isEmpty())
+            CreateHypothesis->setObjectName(QString::fromUtf8("CreateHypothesis"));
+        CreateHypothesis->resize(770, 1428);
+        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+        sizePolicy.setHorizontalStretch(0);
+        sizePolicy.setVerticalStretch(0);
+        sizePolicy.setHeightForWidth(CreateHypothesis->sizePolicy().hasHeightForWidth());
+        CreateHypothesis->setSizePolicy(sizePolicy);
+        CreateHypothesis->setAutoFillBackground(true);
+        CreateHypothesis->setSizeGripEnabled(true);
+        gridLayout_3 = new QGridLayout(CreateHypothesis);
+        gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
+        LEHypothesisName = new QLineEdit(CreateHypothesis);
+        LEHypothesisName->setObjectName(QString::fromUtf8("LEHypothesisName"));
+        LEHypothesisName->setMinimumSize(QSize(382, 31));
+        LEHypothesisName->setMaxLength(32);
+
+        gridLayout_3->addWidget(LEHypothesisName, 0, 1, 1, 1);
+
+        GBTypeAdaptation = new QGroupBox(CreateHypothesis);
+        GBTypeAdaptation->setObjectName(QString::fromUtf8("GBTypeAdaptation"));
+        hboxLayout = new QHBoxLayout(GBTypeAdaptation);
+#ifndef Q_OS_MAC
+        hboxLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout->setContentsMargins(9, 9, 9, 9);
+#endif
+        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+        RBUniforme = new QRadioButton(GBTypeAdaptation);
+        RBUniforme->setObjectName(QString::fromUtf8("RBUniforme"));
+        RBUniforme->setCheckable(true);
+
+        hboxLayout->addWidget(RBUniforme);
+
+        RBChamp = new QRadioButton(GBTypeAdaptation);
+        RBChamp->setObjectName(QString::fromUtf8("RBChamp"));
+
+        hboxLayout->addWidget(RBChamp);
+
+        RBZone = new QRadioButton(GBTypeAdaptation);
+        RBZone->setObjectName(QString::fromUtf8("RBZone"));
+
+        hboxLayout->addWidget(RBZone);
+
+
+        gridLayout_3->addWidget(GBTypeAdaptation, 1, 0, 1, 2);
+
+        GBUniform = new QGroupBox(CreateHypothesis);
+        GBUniform->setObjectName(QString::fromUtf8("GBUniform"));
+        gridLayout = new QGridLayout(GBUniform);
+#ifndef Q_OS_MAC
+        gridLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        RBUniDera = new QRadioButton(GBUniform);
+        RBUniDera->setObjectName(QString::fromUtf8("RBUniDera"));
+
+        gridLayout->addWidget(RBUniDera, 0, 1, 1, 1);
+
+        RBUniRaff = new QRadioButton(GBUniform);
+        RBUniRaff->setObjectName(QString::fromUtf8("RBUniRaff"));
+        RBUniRaff->setChecked(true);
+
+        gridLayout->addWidget(RBUniRaff, 0, 0, 1, 1);
+
+
+        gridLayout_3->addWidget(GBUniform, 2, 0, 1, 2);
+
+        GBFieldFile = new QGroupBox(CreateHypothesis);
+        GBFieldFile->setObjectName(QString::fromUtf8("GBFieldFile"));
+        gridLayout1 = new QGridLayout(GBFieldFile);
+#ifndef Q_OS_MAC
+        gridLayout1->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout1->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+        FieldFile = new QLabel(GBFieldFile);
+        FieldFile->setObjectName(QString::fromUtf8("FieldFile"));
+
+        gridLayout1->addWidget(FieldFile, 0, 0, 1, 1);
+
+        LEFieldFile = new QLineEdit(GBFieldFile);
+        LEFieldFile->setObjectName(QString::fromUtf8("LEFieldFile"));
+        LEFieldFile->setMinimumSize(QSize(282, 31));
+
+        gridLayout1->addWidget(LEFieldFile, 0, 1, 1, 1);
+
+
+        gridLayout_3->addWidget(GBFieldFile, 3, 0, 1, 2);
+
+        GBFieldManagement = new QGroupBox(CreateHypothesis);
+        GBFieldManagement->setObjectName(QString::fromUtf8("GBFieldManagement"));
+        sizePolicy.setHeightForWidth(GBFieldManagement->sizePolicy().hasHeightForWidth());
+        GBFieldManagement->setSizePolicy(sizePolicy);
+        gridLayout2 = new QGridLayout(GBFieldManagement);
+#ifndef Q_OS_MAC
+        gridLayout2->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout2->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        hboxLayout1 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout1->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout1->setContentsMargins(0, 0, 0, 0);
+#endif
+        hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
+        FieldName = new QLabel(GBFieldManagement);
+        FieldName->setObjectName(QString::fromUtf8("FieldName"));
+
+        hboxLayout1->addWidget(FieldName);
+
+        CBFieldName = new QComboBox(GBFieldManagement);
+        CBFieldName->setObjectName(QString::fromUtf8("CBFieldName"));
+        sizePolicy.setHeightForWidth(CBFieldName->sizePolicy().hasHeightForWidth());
+        CBFieldName->setSizePolicy(sizePolicy);
+        CBFieldName->setEditable(false);
+        CBFieldName->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+
+        hboxLayout1->addWidget(CBFieldName);
+
+        spacerItem = new QSpacerItem(48, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+        hboxLayout1->addItem(spacerItem);
+
+
+        gridLayout2->addLayout(hboxLayout1, 0, 0, 1, 1);
+
+        hboxLayout2 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout2->setSpacing(6);
+#endif
+        hboxLayout2->setContentsMargins(0, 0, 0, 0);
+        hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
+        TWCMP = new QTableWidget(GBFieldManagement);
+        if (TWCMP->columnCount() < 2)
+            TWCMP->setColumnCount(2);
+        QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
+        TWCMP->setHorizontalHeaderItem(0, __qtablewidgetitem);
+        QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem();
+        TWCMP->setHorizontalHeaderItem(1, __qtablewidgetitem1);
+        TWCMP->setObjectName(QString::fromUtf8("TWCMP"));
+        TWCMP->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
+        TWCMP->setShowGrid(true);
+        TWCMP->setRowCount(0);
+        TWCMP->setColumnCount(2);
 
-    gridLayout_2->addWidget(RBUniRaff, 0, 0, 1, 1);
+        hboxLayout2->addWidget(TWCMP);
 
+        spacerItem1 = new QSpacerItem(60, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-    gridLayout_10->addWidget(GBUniform, 2, 0, 1, 2);
+        hboxLayout2->addItem(spacerItem1);
 
-    GBFieldFile = new QGroupBox(CreateHypothesis);
-    GBFieldFile->setObjectName(QString::fromUtf8("GBFieldFile"));
-    gridLayout_9 = new QGridLayout(GBFieldFile);
-    gridLayout_9->setObjectName(QString::fromUtf8("gridLayout_9"));
-    FieldFile = new QLabel(GBFieldFile);
-    FieldFile->setObjectName(QString::fromUtf8("FieldFile"));
+        vboxLayout = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        vboxLayout->setSpacing(6);
+#endif
+        vboxLayout->setContentsMargins(0, 0, 0, 0);
+        vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
+        hboxLayout3 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        hboxLayout3->setContentsMargins(0, 0, 0, 0);
+#endif
+        hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
+        RBL2 = new QRadioButton(GBFieldManagement);
+        RBL2->setObjectName(QString::fromUtf8("RBL2"));
+        RBL2->setChecked(true);
 
-    gridLayout_9->addWidget(FieldFile, 0, 0, 1, 1);
+        hboxLayout3->addWidget(RBL2);
 
-    LEFieldFile = new QLineEdit(GBFieldFile);
-    LEFieldFile->setObjectName(QString::fromUtf8("LEFieldFile"));
-    LEFieldFile->setMinimumSize(QSize(282, 31));
+        RBInf = new QRadioButton(GBFieldManagement);
+        RBInf->setObjectName(QString::fromUtf8("RBInf"));
+        RBInf->setChecked(false);
 
-    gridLayout_9->addWidget(LEFieldFile, 0, 1, 1, 1);
+        hboxLayout3->addWidget(RBInf);
 
 
-    gridLayout_10->addWidget(GBFieldFile, 3, 0, 1, 2);
+        vboxLayout->addLayout(hboxLayout3);
 
-    GBFieldManagement = new QGroupBox(CreateHypothesis);
-    GBFieldManagement->setObjectName(QString::fromUtf8("GBFieldManagement"));
-    sizePolicy.setHeightForWidth(GBFieldManagement->sizePolicy().hasHeightForWidth());
-    GBFieldManagement->setSizePolicy(sizePolicy);
-    gridLayout_6 = new QGridLayout(GBFieldManagement);
-    gridLayout_6->setObjectName(QString::fromUtf8("gridLayout_6"));
-    horizontalLayout_6 = new QHBoxLayout();
-    horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6"));
-    FieldName = new QLabel(GBFieldManagement);
-    FieldName->setObjectName(QString::fromUtf8("FieldName"));
+        CBJump = new QCheckBox(GBFieldManagement);
+        CBJump->setObjectName(QString::fromUtf8("CBJump"));
+
+        vboxLayout->addWidget(CBJump);
 
-    horizontalLayout_6->addWidget(FieldName);
 
-    CBFieldName = new QComboBox(GBFieldManagement);
-    CBFieldName->setObjectName(QString::fromUtf8("CBFieldName"));
-    QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Fixed);
-    sizePolicy1.setHorizontalStretch(0);
-    sizePolicy1.setVerticalStretch(0);
-    sizePolicy1.setHeightForWidth(CBFieldName->sizePolicy().hasHeightForWidth());
-    CBFieldName->setSizePolicy(sizePolicy1);
-    CBFieldName->setEditable(false);
-    CBFieldName->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+        hboxLayout2->addLayout(vboxLayout);
 
-    horizontalLayout_6->addWidget(CBFieldName);
 
-    horizontalSpacer_3 = new QSpacerItem(48, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+        gridLayout2->addLayout(hboxLayout2, 1, 0, 1, 1);
 
-    horizontalLayout_6->addItem(horizontalSpacer_3);
+        hboxLayout4 = new QHBoxLayout();
+#ifndef Q_OS_MAC
+        hboxLayout4->setSpacing(6);
+#endif
+        hboxLayout4->setContentsMargins(0, 0, 0, 0);
+        hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
+        GBRefinementThresholds = new QGroupBox(GBFieldManagement);
+        GBRefinementThresholds->setObjectName(QString::fromUtf8("GBRefinementThresholds"));
+        sizePolicy.setHeightForWidth(GBRefinementThresholds->sizePolicy().hasHeightForWidth());
+        GBRefinementThresholds->setSizePolicy(sizePolicy);
+        gridLayout3 = new QGridLayout(GBRefinementThresholds);
+#ifndef Q_OS_MAC
+        gridLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+        RBRPE = new QRadioButton(GBRefinementThresholds);
+        RBRPE->setObjectName(QString::fromUtf8("RBRPE"));
+        RBRPE->setCheckable(true);
+        RBRPE->setChecked(true);
 
+        gridLayout3->addWidget(RBRPE, 0, 0, 1, 1);
 
-    gridLayout_6->addLayout(horizontalLayout_6, 0, 0, 1, 1);
+        SpinBox_RPE = new QDoubleSpinBox(GBRefinementThresholds);
+        SpinBox_RPE->setObjectName(QString::fromUtf8("SpinBox_RPE"));
+        SpinBox_RPE->setDecimals(3);
+        SpinBox_RPE->setMaximum(100);
+        SpinBox_RPE->setSingleStep(0.1);
+        SpinBox_RPE->setValue(2);
 
-    horizontalLayout_7 = new QHBoxLayout();
-    horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
-    TWCMP = new QTableWidget(GBFieldManagement);
-    if (TWCMP->columnCount() < 2)
-        TWCMP->setColumnCount(2);
-    QTableWidgetItem *__colItem = new QTableWidgetItem();
-    TWCMP->setHorizontalHeaderItem(0, __colItem);
-    QTableWidgetItem *__colItem1 = new QTableWidgetItem();
-    TWCMP->setHorizontalHeaderItem(1, __colItem1);
-    TWCMP->setObjectName(QString::fromUtf8("TWCMP"));
-    TWCMP->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
-    TWCMP->setShowGrid(true);
-    TWCMP->setRowCount(0);
-    TWCMP->setColumnCount(2);
+        gridLayout3->addWidget(SpinBox_RPE, 0, 1, 1, 1);
 
-    horizontalLayout_7->addWidget(TWCMP);
+        RBRRel = new QRadioButton(GBRefinementThresholds);
+        RBRRel->setObjectName(QString::fromUtf8("RBRRel"));
 
-    horizontalSpacer_4 = new QSpacerItem(60, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+        gridLayout3->addWidget(RBRRel, 1, 0, 1, 1);
 
-    horizontalLayout_7->addItem(horizontalSpacer_4);
+        SpinBox_RRel = new QDoubleSpinBox(GBRefinementThresholds);
+        SpinBox_RRel->setObjectName(QString::fromUtf8("SpinBox_RRel"));
+        SpinBox_RRel->setEnabled(false);
+        SpinBox_RRel->setDecimals(3);
+        SpinBox_RRel->setMaximum(100);
+        SpinBox_RRel->setSingleStep(0.1);
 
-    verticalLayout_3 = new QVBoxLayout();
-    verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
-    horizontalLayout_3 = new QHBoxLayout();
-    horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
-    RBL2 = new QRadioButton(GBFieldManagement);
-    RBL2->setObjectName(QString::fromUtf8("RBL2"));
-    RBL2->setChecked(true);
+        gridLayout3->addWidget(SpinBox_RRel, 1, 1, 1, 1);
 
-    horizontalLayout_3->addWidget(RBL2);
+        RBRAbs = new QRadioButton(GBRefinementThresholds);
+        RBRAbs->setObjectName(QString::fromUtf8("RBRAbs"));
 
-    RBInf = new QRadioButton(GBFieldManagement);
-    RBInf->setObjectName(QString::fromUtf8("RBInf"));
-    RBInf->setChecked(false);
+        gridLayout3->addWidget(RBRAbs, 2, 0, 1, 1);
 
-    horizontalLayout_3->addWidget(RBInf);
+        SpinBox_RAbs = new QDoubleSpinBox(GBRefinementThresholds);
+        SpinBox_RAbs->setObjectName(QString::fromUtf8("SpinBox_RAbs"));
+        SpinBox_RAbs->setEnabled(false);
+        SpinBox_RAbs->setDecimals(8);
+        SpinBox_RAbs->setMinimum(-1e+12);
+        SpinBox_RAbs->setMaximum(1e+12);
+        SpinBox_RAbs->setSingleStep(0.1);
+
+        gridLayout3->addWidget(SpinBox_RAbs, 2, 1, 1, 1);
+
+        RBRNo = new QRadioButton(GBRefinementThresholds);
+        RBRNo->setObjectName(QString::fromUtf8("RBRNo"));
 
+        gridLayout3->addWidget(RBRNo, 3, 0, 1, 1);
 
-    verticalLayout_3->addLayout(horizontalLayout_3);
 
+        hboxLayout4->addWidget(GBRefinementThresholds);
 
-    horizontalLayout_7->addLayout(verticalLayout_3);
+        GBCoarseningThresholds = new QGroupBox(GBFieldManagement);
+        GBCoarseningThresholds->setObjectName(QString::fromUtf8("GBCoarseningThresholds"));
+        gridLayout4 = new QGridLayout(GBCoarseningThresholds);
+#ifndef Q_OS_MAC
+        gridLayout4->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout4->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
+        RBCPE = new QRadioButton(GBCoarseningThresholds);
+        RBCPE->setObjectName(QString::fromUtf8("RBCPE"));
+        RBCPE->setCheckable(true);
+        RBCPE->setChecked(false);
 
+        gridLayout4->addWidget(RBCPE, 0, 0, 1, 1);
+
+        SpinBox_CPE = new QDoubleSpinBox(GBCoarseningThresholds);
+        SpinBox_CPE->setObjectName(QString::fromUtf8("SpinBox_CPE"));
+        SpinBox_CPE->setEnabled(false);
+        SpinBox_CPE->setDecimals(3);
+        SpinBox_CPE->setMaximum(100);
+        SpinBox_CPE->setSingleStep(0.1);
+
+        gridLayout4->addWidget(SpinBox_CPE, 0, 1, 1, 1);
+
+        RBCRel = new QRadioButton(GBCoarseningThresholds);
+        RBCRel->setObjectName(QString::fromUtf8("RBCRel"));
+
+        gridLayout4->addWidget(RBCRel, 1, 0, 1, 1);
+
+        SpinBox_CRel = new QDoubleSpinBox(GBCoarseningThresholds);
+        SpinBox_CRel->setObjectName(QString::fromUtf8("SpinBox_CRel"));
+        SpinBox_CRel->setEnabled(false);
+        SpinBox_CRel->setDecimals(3);
+        SpinBox_CRel->setMaximum(100);
+        SpinBox_CRel->setSingleStep(0.1);
 
-    gridLayout_6->addLayout(horizontalLayout_7, 1, 0, 1, 1);
+        gridLayout4->addWidget(SpinBox_CRel, 1, 1, 1, 1);
 
-    horizontalLayout_2 = new QHBoxLayout();
-    horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
-    GBRefinementThresholds = new QGroupBox(GBFieldManagement);
-    GBRefinementThresholds->setObjectName(QString::fromUtf8("GBRefinementThresholds"));
-    sizePolicy.setHeightForWidth(GBRefinementThresholds->sizePolicy().hasHeightForWidth());
-    GBRefinementThresholds->setSizePolicy(sizePolicy);
-    gridLayout = new QGridLayout(GBRefinementThresholds);
-    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    RBRPE = new QRadioButton(GBRefinementThresholds);
-    RBRPE->setObjectName(QString::fromUtf8("RBRPE"));
-    RBRPE->setCheckable(true);
-    RBRPE->setChecked(true);
+        RBCAbs = new QRadioButton(GBCoarseningThresholds);
+        RBCAbs->setObjectName(QString::fromUtf8("RBCAbs"));
 
-    gridLayout->addWidget(RBRPE, 0, 0, 1, 1);
+        gridLayout4->addWidget(RBCAbs, 2, 0, 1, 1);
 
-    SpinBox_RPE = new QDoubleSpinBox(GBRefinementThresholds);
-    SpinBox_RPE->setObjectName(QString::fromUtf8("SpinBox_RPE"));
-    SpinBox_RPE->setDecimals(3);
-    SpinBox_RPE->setMaximum(100);
-    SpinBox_RPE->setSingleStep(0.1);
-    SpinBox_RPE->setValue(3);
+        SpinBox_CAbs = new QDoubleSpinBox(GBCoarseningThresholds);
+        SpinBox_CAbs->setObjectName(QString::fromUtf8("SpinBox_CAbs"));
+        SpinBox_CAbs->setEnabled(false);
+        SpinBox_CAbs->setDecimals(8);
+        SpinBox_CAbs->setMinimum(-1e+12);
+        SpinBox_CAbs->setMaximum(1e+12);
+        SpinBox_CAbs->setSingleStep(0.1);
 
-    gridLayout->addWidget(SpinBox_RPE, 0, 1, 1, 1);
+        gridLayout4->addWidget(SpinBox_CAbs, 2, 1, 1, 1);
 
-    RBRRel = new QRadioButton(GBRefinementThresholds);
-    RBRRel->setObjectName(QString::fromUtf8("RBRRel"));
+        RBCNo = new QRadioButton(GBCoarseningThresholds);
+        RBCNo->setObjectName(QString::fromUtf8("RBCNo"));
+        RBCNo->setChecked(true);
 
-    gridLayout->addWidget(RBRRel, 1, 0, 1, 1);
+        gridLayout4->addWidget(RBCNo, 3, 0, 1, 1);
 
-    SpinBox_RRel = new QDoubleSpinBox(GBRefinementThresholds);
-    SpinBox_RRel->setObjectName(QString::fromUtf8("SpinBox_RRel"));
-    SpinBox_RRel->setEnabled(false);
-    SpinBox_RRel->setDecimals(3);
-    SpinBox_RRel->setMaximum(100);
-    SpinBox_RRel->setSingleStep(0.1);
 
-    gridLayout->addWidget(SpinBox_RRel, 1, 1, 1, 1);
+        hboxLayout4->addWidget(GBCoarseningThresholds);
 
-    RBRAbs = new QRadioButton(GBRefinementThresholds);
-    RBRAbs->setObjectName(QString::fromUtf8("RBRAbs"));
 
-    gridLayout->addWidget(RBRAbs, 2, 0, 1, 1);
+        gridLayout2->addLayout(hboxLayout4, 2, 0, 1, 1);
 
-    SpinBox_RAbs = new QDoubleSpinBox(GBRefinementThresholds);
-    SpinBox_RAbs->setObjectName(QString::fromUtf8("SpinBox_RAbs"));
-    SpinBox_RAbs->setEnabled(false);
-    SpinBox_RAbs->setDecimals(3);
-    SpinBox_RAbs->setMaximum(100);
-    SpinBox_RAbs->setSingleStep(0.1);
 
-    gridLayout->addWidget(SpinBox_RAbs, 2, 1, 1, 1);
+        gridLayout_3->addWidget(GBFieldManagement, 4, 0, 1, 2);
 
-    RBRNo = new QRadioButton(GBRefinementThresholds);
-    RBRNo->setObjectName(QString::fromUtf8("RBRNo"));
+        GBAreaManagement = new QGroupBox(CreateHypothesis);
+        GBAreaManagement->setObjectName(QString::fromUtf8("GBAreaManagement"));
+        sizePolicy.setHeightForWidth(GBAreaManagement->sizePolicy().hasHeightForWidth());
+        GBAreaManagement->setSizePolicy(sizePolicy);
+        gridLayout_4 = new QGridLayout(GBAreaManagement);
+        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
+        TWZone = new QTableWidget(GBAreaManagement);
+        if (TWZone->columnCount() < 3)
+            TWZone->setColumnCount(3);
+        QTableWidgetItem *__qtablewidgetitem2 = new QTableWidgetItem();
+        TWZone->setHorizontalHeaderItem(0, __qtablewidgetitem2);
+        QTableWidgetItem *__qtablewidgetitem3 = new QTableWidgetItem();
+        TWZone->setHorizontalHeaderItem(1, __qtablewidgetitem3);
+        QTableWidgetItem *__qtablewidgetitem4 = new QTableWidgetItem();
+        TWZone->setHorizontalHeaderItem(2, __qtablewidgetitem4);
+        TWZone->setObjectName(QString::fromUtf8("TWZone"));
+        TWZone->setMinimumSize(QSize(400, 0));
+        TWZone->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
+        TWZone->setShowGrid(true);
+        TWZone->setRowCount(0);
+        TWZone->setColumnCount(3);
 
-    gridLayout->addWidget(RBRNo, 3, 0, 1, 1);
+        gridLayout_4->addWidget(TWZone, 0, 0, 1, 1);
 
+        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-    horizontalLayout_2->addWidget(GBRefinementThresholds);
+        gridLayout_4->addItem(horizontalSpacer, 0, 1, 1, 1);
 
-    GBCoarseningThresholds = new QGroupBox(GBFieldManagement);
-    GBCoarseningThresholds->setObjectName(QString::fromUtf8("GBCoarseningThresholds"));
-    gridLayout_4 = new QGridLayout(GBCoarseningThresholds);
-    gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
-    RBCPE = new QRadioButton(GBCoarseningThresholds);
-    RBCPE->setObjectName(QString::fromUtf8("RBCPE"));
-    RBCPE->setCheckable(true);
-    RBCPE->setChecked(false);
+        vboxLayout1 = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        vboxLayout1->setSpacing(6);
+#endif
+        vboxLayout1->setContentsMargins(0, 0, 0, 0);
+        vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
+        vboxLayout2 = new QVBoxLayout();
+#ifndef Q_OS_MAC
+        vboxLayout2->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        vboxLayout2->setContentsMargins(0, 0, 0, 0);
+#endif
+        vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
+        PBZoneNew = new QPushButton(GBAreaManagement);
+        PBZoneNew->setObjectName(QString::fromUtf8("PBZoneNew"));
 
-    gridLayout_4->addWidget(RBCPE, 0, 0, 1, 1);
+        vboxLayout2->addWidget(PBZoneNew);
 
-    SpinBox_CPE = new QDoubleSpinBox(GBCoarseningThresholds);
-    SpinBox_CPE->setObjectName(QString::fromUtf8("SpinBox_CPE"));
-    SpinBox_CPE->setEnabled(false);
-    SpinBox_CPE->setDecimals(3);
-    SpinBox_CPE->setMaximum(100);
-    SpinBox_CPE->setSingleStep(0.1);
+        PBZoneEdit = new QPushButton(GBAreaManagement);
+        PBZoneEdit->setObjectName(QString::fromUtf8("PBZoneEdit"));
 
-    gridLayout_4->addWidget(SpinBox_CPE, 0, 1, 1, 1);
+        vboxLayout2->addWidget(PBZoneEdit);
 
-    RBCRel = new QRadioButton(GBCoarseningThresholds);
-    RBCRel->setObjectName(QString::fromUtf8("RBCRel"));
+        PBZoneDelete = new QPushButton(GBAreaManagement);
+        PBZoneDelete->setObjectName(QString::fromUtf8("PBZoneDelete"));
 
-    gridLayout_4->addWidget(RBCRel, 1, 0, 1, 1);
+        vboxLayout2->addWidget(PBZoneDelete);
 
-    SpinBox_CRel = new QDoubleSpinBox(GBCoarseningThresholds);
-    SpinBox_CRel->setObjectName(QString::fromUtf8("SpinBox_CRel"));
-    SpinBox_CRel->setEnabled(false);
-    SpinBox_CRel->setDecimals(3);
-    SpinBox_CRel->setMaximum(100);
-    SpinBox_CRel->setSingleStep(0.1);
 
-    gridLayout_4->addWidget(SpinBox_CRel, 1, 1, 1, 1);
+        vboxLayout1->addLayout(vboxLayout2);
 
-    RBCAbs = new QRadioButton(GBCoarseningThresholds);
-    RBCAbs->setObjectName(QString::fromUtf8("RBCAbs"));
+        spacerItem2 = new QSpacerItem(20, 48, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_4->addWidget(RBCAbs, 2, 0, 1, 1);
+        vboxLayout1->addItem(spacerItem2);
 
-    SpinBox_CAbs = new QDoubleSpinBox(GBCoarseningThresholds);
-    SpinBox_CAbs->setObjectName(QString::fromUtf8("SpinBox_CAbs"));
-    SpinBox_CAbs->setEnabled(false);
-    SpinBox_CAbs->setDecimals(3);
-    SpinBox_CAbs->setMaximum(100);
-    SpinBox_CAbs->setSingleStep(0.1);
 
-    gridLayout_4->addWidget(SpinBox_CAbs, 2, 1, 1, 1);
+        gridLayout_4->addLayout(vboxLayout1, 0, 2, 1, 1);
 
-    RBCNo = new QRadioButton(GBCoarseningThresholds);
-    RBCNo->setObjectName(QString::fromUtf8("RBCNo"));
-    RBCNo->setChecked(true);
 
-    gridLayout_4->addWidget(RBCNo, 3, 0, 1, 1);
+        gridLayout_3->addWidget(GBAreaManagement, 5, 0, 1, 2);
 
+        GBField = new QGroupBox(CreateHypothesis);
+        GBField->setObjectName(QString::fromUtf8("GBField"));
+        gridLayout5 = new QGridLayout(GBField);
+#ifndef Q_OS_MAC
+        gridLayout5->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout5->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
+        gridLayout6 = new QGridLayout();
+#ifndef Q_OS_MAC
+        gridLayout6->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout6->setContentsMargins(0, 0, 0, 0);
+#endif
+        gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+        RBFieldNo = new QRadioButton(GBField);
+        RBFieldNo->setObjectName(QString::fromUtf8("RBFieldNo"));
+        RBFieldNo->setChecked(true);
 
-    horizontalLayout_2->addWidget(GBCoarseningThresholds);
+        gridLayout6->addWidget(RBFieldNo, 0, 0, 1, 1);
 
+        RBFieldAll = new QRadioButton(GBField);
+        RBFieldAll->setObjectName(QString::fromUtf8("RBFieldAll"));
+        RBFieldAll->setChecked(false);
 
-    gridLayout_6->addLayout(horizontalLayout_2, 2, 0, 1, 1);
+        gridLayout6->addWidget(RBFieldAll, 0, 1, 1, 1);
 
+        RBFieldChosen = new QRadioButton(GBField);
+        RBFieldChosen->setObjectName(QString::fromUtf8("RBFieldChosen"));
+        RBFieldChosen->setChecked(false);
 
-    gridLayout_10->addWidget(GBFieldManagement, 4, 0, 1, 2);
+        gridLayout6->addWidget(RBFieldChosen, 0, 2, 1, 1);
 
-    GBAreaManagement = new QGroupBox(CreateHypothesis);
-    GBAreaManagement->setObjectName(QString::fromUtf8("GBAreaManagement"));
-    sizePolicy.setHeightForWidth(GBAreaManagement->sizePolicy().hasHeightForWidth());
-    GBAreaManagement->setSizePolicy(sizePolicy);
-    gridLayout_3 = new QGridLayout(GBAreaManagement);
-    gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-    TWZone = new QTableWidget(GBAreaManagement);
-    if (TWZone->columnCount() < 2)
-        TWZone->setColumnCount(2);
-    QTableWidgetItem *__colItem2 = new QTableWidgetItem();
-    TWZone->setHorizontalHeaderItem(0, __colItem2);
-    QTableWidgetItem *__colItem3 = new QTableWidgetItem();
-    TWZone->setHorizontalHeaderItem(1, __colItem3);
-    TWZone->setObjectName(QString::fromUtf8("TWZone"));
-    TWZone->setEditTriggers(QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked);
-    TWZone->setShowGrid(true);
-    TWZone->setRowCount(0);
-    TWZone->setColumnCount(2);
 
-    gridLayout_3->addWidget(TWZone, 0, 0, 1, 1);
+        gridLayout5->addLayout(gridLayout6, 0, 0, 1, 1);
 
-    verticalLayout_2 = new QVBoxLayout();
-    verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
-    verticalLayout = new QVBoxLayout();
-    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
-    PBZoneNew = new QPushButton(GBAreaManagement);
-    PBZoneNew->setObjectName(QString::fromUtf8("PBZoneNew"));
+        TWField = new QTableWidget(GBField);
+        if (TWField->columnCount() < 2)
+            TWField->setColumnCount(2);
+        QTableWidgetItem *__qtablewidgetitem5 = new QTableWidgetItem();
+        TWField->setHorizontalHeaderItem(0, __qtablewidgetitem5);
+        QTableWidgetItem *__qtablewidgetitem6 = new QTableWidgetItem();
+        TWField->setHorizontalHeaderItem(1, __qtablewidgetitem6);
+        TWField->setObjectName(QString::fromUtf8("TWField"));
 
-    verticalLayout->addWidget(PBZoneNew);
+        gridLayout5->addWidget(TWField, 1, 0, 1, 1);
 
-    PBZoneEdit = new QPushButton(GBAreaManagement);
-    PBZoneEdit->setObjectName(QString::fromUtf8("PBZoneEdit"));
 
-    verticalLayout->addWidget(PBZoneEdit);
+        gridLayout_3->addWidget(GBField, 6, 0, 1, 2);
 
-    PBZoneDelete = new QPushButton(GBAreaManagement);
-    PBZoneDelete->setObjectName(QString::fromUtf8("PBZoneDelete"));
+        CBGroupe = new QCheckBox(CreateHypothesis);
+        CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
 
-    verticalLayout->addWidget(PBZoneDelete);
+        gridLayout_3->addWidget(CBGroupe, 7, 0, 1, 2);
 
+        CBAdvanced = new QCheckBox(CreateHypothesis);
+        CBAdvanced->setObjectName(QString::fromUtf8("CBAdvanced"));
 
-    verticalLayout_2->addLayout(verticalLayout);
+        gridLayout_3->addWidget(CBAdvanced, 8, 0, 1, 2);
 
-    verticalSpacer = new QSpacerItem(20, 48, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        GBAdvancedOptions = new QGroupBox(CreateHypothesis);
+        GBAdvancedOptions->setObjectName(QString::fromUtf8("GBAdvancedOptions"));
+        gridLayout_1 = new QGridLayout(GBAdvancedOptions);
+        gridLayout_1->setObjectName(QString::fromUtf8("gridLayout_1"));
+        TLMinimalDiameter = new QLabel(GBAdvancedOptions);
+        TLMinimalDiameter->setObjectName(QString::fromUtf8("TLMinimalDiameter"));
+        sizePolicy.setHeightForWidth(TLMinimalDiameter->sizePolicy().hasHeightForWidth());
+        TLMinimalDiameter->setSizePolicy(sizePolicy);
+        TLMinimalDiameter->setWordWrap(false);
 
-    verticalLayout_2->addItem(verticalSpacer);
+        gridLayout_1->addWidget(TLMinimalDiameter, 0, 0, 1, 1);
 
+        doubleSpinBoxDiamMin = new QDoubleSpinBox(GBAdvancedOptions);
+        doubleSpinBoxDiamMin->setObjectName(QString::fromUtf8("doubleSpinBoxDiamMin"));
+        doubleSpinBoxDiamMin->setDecimals(5);
 
-    gridLayout_3->addLayout(verticalLayout_2, 0, 1, 1, 1);
+        gridLayout_1->addWidget(doubleSpinBoxDiamMin, 0, 1, 1, 1);
 
+        TLMaximalLevel = new QLabel(GBAdvancedOptions);
+        TLMaximalLevel->setObjectName(QString::fromUtf8("TLMaximalLevel"));
+        sizePolicy.setHeightForWidth(TLMaximalLevel->sizePolicy().hasHeightForWidth());
+        TLMaximalLevel->setSizePolicy(sizePolicy);
+        TLMaximalLevel->setWordWrap(false);
 
-    gridLayout_10->addWidget(GBAreaManagement, 5, 0, 1, 2);
+        gridLayout_1->addWidget(TLMaximalLevel, 1, 0, 1, 1);
 
-    GBField = new QGroupBox(CreateHypothesis);
-    GBField->setObjectName(QString::fromUtf8("GBField"));
-    gridLayout_8 = new QGridLayout(GBField);
-    gridLayout_8->setObjectName(QString::fromUtf8("gridLayout_8"));
-    gridLayout_7 = new QGridLayout();
-    gridLayout_7->setObjectName(QString::fromUtf8("gridLayout_7"));
-    RBFieldNo = new QRadioButton(GBField);
-    RBFieldNo->setObjectName(QString::fromUtf8("RBFieldNo"));
-    RBFieldNo->setChecked(true);
+        spinBoxNivMax = new QSpinBox(GBAdvancedOptions);
+        spinBoxNivMax->setObjectName(QString::fromUtf8("spinBoxNivMax"));
+        spinBoxNivMax->setValue(99);
 
-    gridLayout_7->addWidget(RBFieldNo, 0, 0, 1, 1);
+        gridLayout_1->addWidget(spinBoxNivMax, 1, 1, 1, 1);
 
-    RBFieldAll = new QRadioButton(GBField);
-    RBFieldAll->setObjectName(QString::fromUtf8("RBFieldAll"));
-    RBFieldAll->setChecked(false);
+        GBAdapInit = new QGroupBox(GBAdvancedOptions);
+        GBAdapInit->setObjectName(QString::fromUtf8("GBAdapInit"));
+        gridLayout_2 = new QGridLayout(GBAdapInit);
+        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
+        RBAIN = new QRadioButton(GBAdapInit);
+        RBAIN->setObjectName(QString::fromUtf8("RBAIN"));
+        RBAIN->setChecked(true);
 
-    gridLayout_7->addWidget(RBFieldAll, 0, 1, 1, 1);
+        gridLayout_2->addWidget(RBAIN, 0, 0, 1, 1);
 
-    RBFieldChosen = new QRadioButton(GBField);
-    RBFieldChosen->setObjectName(QString::fromUtf8("RBFieldChosen"));
-    RBFieldChosen->setChecked(false);
+        RBAIR = new QRadioButton(GBAdapInit);
+        RBAIR->setObjectName(QString::fromUtf8("RBAIR"));
 
-    gridLayout_7->addWidget(RBFieldChosen, 0, 2, 1, 1);
+        gridLayout_2->addWidget(RBAIR, 0, 1, 1, 1);
 
+        RBAID = new QRadioButton(GBAdapInit);
+        RBAID->setObjectName(QString::fromUtf8("RBAID"));
 
-    gridLayout_8->addLayout(gridLayout_7, 0, 0, 1, 1);
+        gridLayout_2->addWidget(RBAID, 0, 2, 1, 1);
 
-    TWField = new QTableWidget(GBField);
-    if (TWField->columnCount() < 2)
-        TWField->setColumnCount(2);
-    QTableWidgetItem *__colItem4 = new QTableWidgetItem();
-    TWField->setHorizontalHeaderItem(0, __colItem4);
-    QTableWidgetItem *__colItem5 = new QTableWidgetItem();
-    TWField->setHorizontalHeaderItem(1, __colItem5);
-    TWField->setObjectName(QString::fromUtf8("TWField"));
 
-    gridLayout_8->addWidget(TWField, 1, 0, 1, 1);
+        gridLayout_1->addWidget(GBAdapInit, 2, 0, 1, 2);
 
 
-    gridLayout_10->addWidget(GBField, 6, 0, 1, 2);
+        gridLayout_3->addWidget(GBAdvancedOptions, 9, 0, 1, 2);
 
-    CBGroupe = new QCheckBox(CreateHypothesis);
-    CBGroupe->setObjectName(QString::fromUtf8("CBGroupe"));
+        GBButtons = new QGroupBox(CreateHypothesis);
+        GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+        gridLayout7 = new QGridLayout(GBButtons);
+#ifndef Q_OS_MAC
+        gridLayout7->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout7->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout7->setObjectName(QString::fromUtf8("gridLayout7"));
+        buttonOk = new QPushButton(GBButtons);
+        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
 
-    gridLayout_10->addWidget(CBGroupe, 7, 0, 1, 2);
+        gridLayout7->addWidget(buttonOk, 0, 0, 1, 1);
 
-    GBButtons = new QGroupBox(CreateHypothesis);
-    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-    gridLayout_5 = new QGridLayout(GBButtons);
-    gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
-    buttonOk = new QPushButton(GBButtons);
-    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+        buttonApply = new QPushButton(GBButtons);
+        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-    gridLayout_5->addWidget(buttonOk, 0, 0, 1, 1);
+        gridLayout7->addWidget(buttonApply, 0, 1, 1, 1);
 
-    buttonApply = new QPushButton(GBButtons);
-    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+        buttonCancel = new QPushButton(GBButtons);
+        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
 
-    gridLayout_5->addWidget(buttonApply, 0, 1, 1, 1);
+        gridLayout7->addWidget(buttonCancel, 0, 2, 1, 1);
 
-    buttonCancel = new QPushButton(GBButtons);
-    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+        buttonHelp = new QPushButton(GBButtons);
+        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-    gridLayout_5->addWidget(buttonCancel, 0, 2, 1, 1);
+        gridLayout7->addWidget(buttonHelp, 0, 3, 1, 1);
 
-    buttonHelp = new QPushButton(GBButtons);
-    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-    gridLayout_5->addWidget(buttonHelp, 0, 3, 1, 1);
+        gridLayout_3->addWidget(GBButtons, 10, 0, 1, 2);
 
+        Name = new QLabel(CreateHypothesis);
+        Name->setObjectName(QString::fromUtf8("Name"));
 
-    gridLayout_10->addWidget(GBButtons, 8, 0, 1, 2);
+        gridLayout_3->addWidget(Name, 0, 0, 1, 1);
 
+        LEHypothesisName->raise();
+        GBTypeAdaptation->raise();
+        GBUniform->raise();
+        GBFieldFile->raise();
+        GBFieldManagement->raise();
+        GBAreaManagement->raise();
+        GBField->raise();
+        CBGroupe->raise();
+        CBAdvanced->raise();
+        GBAdvancedOptions->raise();
+        GBButtons->raise();
+        Name->raise();
 
-    retranslateUi(CreateHypothesis);
+        retranslateUi(CreateHypothesis);
 
-    QMetaObject::connectSlotsByName(CreateHypothesis);
+        QMetaObject::connectSlotsByName(CreateHypothesis);
     } // setupUi
 
     void retranslateUi(QDialog *CreateHypothesis)
     {
-    CreateHypothesis->setWindowTitle(QApplication::translate("CreateHypothesis", "Create Hypothesis", 0, QApplication::UnicodeUTF8));
-    Name->setText(QApplication::translate("CreateHypothesis", "Name", 0, QApplication::UnicodeUTF8));
-    GBTypeAdaptation->setTitle(QApplication::translate("CreateHypothesis", "Type of adaptation", 0, QApplication::UnicodeUTF8));
-    RBUniforme->setText(QApplication::translate("CreateHypothesis", "Uniform", 0, QApplication::UnicodeUTF8));
-    RBChamp->setText(QApplication::translate("CreateHypothesis", "Following a field", 0, QApplication::UnicodeUTF8));
-    RBZone->setText(QApplication::translate("CreateHypothesis", "With geometrical zones", 0, QApplication::UnicodeUTF8));
-    GBUniform->setTitle(QApplication::translate("CreateHypothesis", "Uniform adaptation", 0, QApplication::UnicodeUTF8));
-    RBUniDera->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
-    RBUniRaff->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
-    GBFieldFile->setTitle(QString());
-    FieldFile->setText(QApplication::translate("CreateHypothesis", "File of the fields", 0, QApplication::UnicodeUTF8));
-    GBFieldManagement->setTitle(QApplication::translate("CreateHypothesis", "Governing field for the adaptation", 0, QApplication::UnicodeUTF8));
-    FieldName->setText(QApplication::translate("CreateHypothesis", "Field Name", 0, QApplication::UnicodeUTF8));
-    TWCMP->horizontalHeaderItem(0)->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
-    TWCMP->horizontalHeaderItem(1)->setText(QApplication::translate("CreateHypothesis", "Component", 0, QApplication::UnicodeUTF8));
-    RBL2->setText(QApplication::translate("CreateHypothesis", "L2 norm", 0, QApplication::UnicodeUTF8));
-    RBInf->setText(QApplication::translate("CreateHypothesis", "Infinite norm", 0, QApplication::UnicodeUTF8));
-    GBRefinementThresholds->setTitle(QApplication::translate("CreateHypothesis", "Refinement thresholds", 0, QApplication::UnicodeUTF8));
-    RBRPE->setText(QApplication::translate("CreateHypothesis", "Percentage of meshes", 0, QApplication::UnicodeUTF8));
-    SpinBox_RPE->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
-    RBRRel->setText(QApplication::translate("CreateHypothesis", "Relative", 0, QApplication::UnicodeUTF8));
-    SpinBox_RRel->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
-    RBRAbs->setText(QApplication::translate("CreateHypothesis", "Absolute", 0, QApplication::UnicodeUTF8));
-    RBRNo->setText(QApplication::translate("CreateHypothesis", "No refinement", 0, QApplication::UnicodeUTF8));
-    GBCoarseningThresholds->setTitle(QApplication::translate("CreateHypothesis", "Coarsening thresholds", 0, QApplication::UnicodeUTF8));
-    RBCPE->setText(QApplication::translate("CreateHypothesis", "Percentage of meshes", 0, QApplication::UnicodeUTF8));
-    SpinBox_CPE->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
-    RBCRel->setText(QApplication::translate("CreateHypothesis", "Relative", 0, QApplication::UnicodeUTF8));
-    SpinBox_CRel->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
-    RBCAbs->setText(QApplication::translate("CreateHypothesis", "Absolute", 0, QApplication::UnicodeUTF8));
-    RBCNo->setText(QApplication::translate("CreateHypothesis", "No coarsening", 0, QApplication::UnicodeUTF8));
-    GBAreaManagement->setTitle(QApplication::translate("CreateHypothesis", "Area management", 0, QApplication::UnicodeUTF8));
-    TWZone->horizontalHeaderItem(0)->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
-    TWZone->horizontalHeaderItem(1)->setText(QApplication::translate("CreateHypothesis", "Zone name", 0, QApplication::UnicodeUTF8));
-    PBZoneNew->setText(QApplication::translate("CreateHypothesis", "New", 0, QApplication::UnicodeUTF8));
-    PBZoneEdit->setText(QApplication::translate("CreateHypothesis", "Edit", 0, QApplication::UnicodeUTF8));
-    PBZoneDelete->setText(QString());
-    GBField->setTitle(QApplication::translate("CreateHypothesis", "Field Interpolation", 0, QApplication::UnicodeUTF8));
-    RBFieldNo->setText(QApplication::translate("CreateHypothesis", "None", 0, QApplication::UnicodeUTF8));
-    RBFieldAll->setText(QApplication::translate("CreateHypothesis", "All", 0, QApplication::UnicodeUTF8));
-    RBFieldChosen->setText(QApplication::translate("CreateHypothesis", "Chosen", 0, QApplication::UnicodeUTF8));
-    TWField->horizontalHeaderItem(0)->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
-    TWField->horizontalHeaderItem(1)->setText(QApplication::translate("CreateHypothesis", "Field Name", 0, QApplication::UnicodeUTF8));
-    CBGroupe->setText(QApplication::translate("CreateHypothesis", "Filtering with groups", 0, QApplication::UnicodeUTF8));
-    GBButtons->setTitle(QString());
-    buttonOk->setText(QApplication::translate("CreateHypothesis", "&Ok", 0, QApplication::UnicodeUTF8));
-    buttonApply->setText(QApplication::translate("CreateHypothesis", "&Apply", 0, QApplication::UnicodeUTF8));
-    buttonCancel->setText(QApplication::translate("CreateHypothesis", "&Cancel", 0, QApplication::UnicodeUTF8));
-    buttonHelp->setText(QApplication::translate("CreateHypothesis", "&Help", 0, QApplication::UnicodeUTF8));
-    Q_UNUSED(CreateHypothesis);
+        CreateHypothesis->setWindowTitle(QApplication::translate("CreateHypothesis", "Create an hypothesis", 0, QApplication::UnicodeUTF8));
+        GBTypeAdaptation->setTitle(QApplication::translate("CreateHypothesis", "Type of adaptation", 0, QApplication::UnicodeUTF8));
+        RBUniforme->setText(QApplication::translate("CreateHypothesis", "Uniform", 0, QApplication::UnicodeUTF8));
+        RBChamp->setText(QApplication::translate("CreateHypothesis", "Driven by a field", 0, QApplication::UnicodeUTF8));
+        RBZone->setText(QApplication::translate("CreateHypothesis", "With geometrical zones", 0, QApplication::UnicodeUTF8));
+        GBUniform->setTitle(QApplication::translate("CreateHypothesis", "Uniform adaptation", 0, QApplication::UnicodeUTF8));
+        RBUniDera->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
+        RBUniRaff->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
+        GBFieldFile->setTitle(QString());
+        FieldFile->setText(QApplication::translate("CreateHypothesis", "File of the fields", 0, QApplication::UnicodeUTF8));
+        GBFieldManagement->setTitle(QApplication::translate("CreateHypothesis", "Governing field for the adaptation", 0, QApplication::UnicodeUTF8));
+        FieldName->setText(QApplication::translate("CreateHypothesis", "Field name", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem = TWCMP->horizontalHeaderItem(0);
+        ___qtablewidgetitem->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem1 = TWCMP->horizontalHeaderItem(1);
+        ___qtablewidgetitem1->setText(QApplication::translate("CreateHypothesis", "Component", 0, QApplication::UnicodeUTF8));
+        RBL2->setText(QApplication::translate("CreateHypothesis", "L2 norm", 0, QApplication::UnicodeUTF8));
+        RBInf->setText(QApplication::translate("CreateHypothesis", "Infinite norm", 0, QApplication::UnicodeUTF8));
+        CBJump->setText(QApplication::translate("CreateHypothesis", "Jump between elements", 0, QApplication::UnicodeUTF8));
+        GBRefinementThresholds->setTitle(QApplication::translate("CreateHypothesis", "Refinement threshold", 0, QApplication::UnicodeUTF8));
+        RBRPE->setText(QApplication::translate("CreateHypothesis", "Percentage of meshes", 0, QApplication::UnicodeUTF8));
+        SpinBox_RPE->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
+        RBRRel->setText(QApplication::translate("CreateHypothesis", "Relative", 0, QApplication::UnicodeUTF8));
+        SpinBox_RRel->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
+        RBRAbs->setText(QApplication::translate("CreateHypothesis", "Absolute", 0, QApplication::UnicodeUTF8));
+        RBRNo->setText(QApplication::translate("CreateHypothesis", "No refinement", 0, QApplication::UnicodeUTF8));
+        GBCoarseningThresholds->setTitle(QApplication::translate("CreateHypothesis", "Coarsening threshold", 0, QApplication::UnicodeUTF8));
+        RBCPE->setText(QApplication::translate("CreateHypothesis", "Percentage of meshes", 0, QApplication::UnicodeUTF8));
+        SpinBox_CPE->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
+        RBCRel->setText(QApplication::translate("CreateHypothesis", "Relative", 0, QApplication::UnicodeUTF8));
+        SpinBox_CRel->setSuffix(QApplication::translate("CreateHypothesis", " %", 0, QApplication::UnicodeUTF8));
+        RBCAbs->setText(QApplication::translate("CreateHypothesis", "Absolute", 0, QApplication::UnicodeUTF8));
+        RBCNo->setText(QApplication::translate("CreateHypothesis", "No coarsening", 0, QApplication::UnicodeUTF8));
+        GBAreaManagement->setTitle(QApplication::translate("CreateHypothesis", "Zone management", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem2 = TWZone->horizontalHeaderItem(0);
+        ___qtablewidgetitem2->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem3 = TWZone->horizontalHeaderItem(1);
+        ___qtablewidgetitem3->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem4 = TWZone->horizontalHeaderItem(2);
+        ___qtablewidgetitem4->setText(QApplication::translate("CreateHypothesis", "Zone name", 0, QApplication::UnicodeUTF8));
+        PBZoneNew->setText(QApplication::translate("CreateHypothesis", "New", 0, QApplication::UnicodeUTF8));
+        PBZoneEdit->setText(QApplication::translate("CreateHypothesis", "Edit", 0, QApplication::UnicodeUTF8));
+        PBZoneDelete->setText(QString());
+        GBField->setTitle(QApplication::translate("CreateHypothesis", "Field Interpolation", 0, QApplication::UnicodeUTF8));
+        RBFieldNo->setText(QApplication::translate("CreateHypothesis", "None", 0, QApplication::UnicodeUTF8));
+        RBFieldAll->setText(QApplication::translate("CreateHypothesis", "All", 0, QApplication::UnicodeUTF8));
+        RBFieldChosen->setText(QApplication::translate("CreateHypothesis", "Chosen", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem5 = TWField->horizontalHeaderItem(0);
+        ___qtablewidgetitem5->setText(QApplication::translate("CreateHypothesis", "Selection", 0, QApplication::UnicodeUTF8));
+        QTableWidgetItem *___qtablewidgetitem6 = TWField->horizontalHeaderItem(1);
+        ___qtablewidgetitem6->setText(QApplication::translate("CreateHypothesis", "Field Name", 0, QApplication::UnicodeUTF8));
+        CBGroupe->setText(QApplication::translate("CreateHypothesis", "Filtering with groups", 0, QApplication::UnicodeUTF8));
+        CBAdvanced->setText(QApplication::translate("CreateHypothesis", "Advanced options", 0, QApplication::UnicodeUTF8));
+        GBAdvancedOptions->setTitle(QApplication::translate("CreateHypothesis", "Advanced options", 0, QApplication::UnicodeUTF8));
+        TLMinimalDiameter->setText(QApplication::translate("CreateHypothesis", "Minimal diameter", 0, QApplication::UnicodeUTF8));
+        TLMaximalLevel->setText(QApplication::translate("CreateHypothesis", "Maximal level", 0, QApplication::UnicodeUTF8));
+        GBAdapInit->setTitle(QApplication::translate("CreateHypothesis", "Initialization of adaptation", 0, QApplication::UnicodeUTF8));
+        RBAIN->setText(QApplication::translate("CreateHypothesis", "Nothing", 0, QApplication::UnicodeUTF8));
+        RBAIR->setText(QApplication::translate("CreateHypothesis", "Refinement", 0, QApplication::UnicodeUTF8));
+        RBAID->setText(QApplication::translate("CreateHypothesis", "Coarsening", 0, QApplication::UnicodeUTF8));
+        GBButtons->setTitle(QString());
+        buttonOk->setText(QApplication::translate("CreateHypothesis", "OK", 0, QApplication::UnicodeUTF8));
+        buttonApply->setText(QApplication::translate("CreateHypothesis", "Apply", 0, QApplication::UnicodeUTF8));
+        buttonCancel->setText(QApplication::translate("CreateHypothesis", "Cancel", 0, QApplication::UnicodeUTF8));
+        buttonHelp->setText(QApplication::translate("CreateHypothesis", "Help", 0, QApplication::UnicodeUTF8));
+        Name->setText(QApplication::translate("CreateHypothesis", "Name", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
index 7e5bc80e56deccbe909f42e09c455a27f2b004f2..686a25ab7de3592309abe79b30534e7d96816977 100644 (file)
@@ -1,76 +1,76 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>CreateHypothesis</class>
- <widget class="QDialog" name="CreateHypothesis" >
-  <property name="geometry" >
+ <widget class="QDialog" name="CreateHypothesis">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>717</width>
-    <height>1005</height>
+    <width>770</width>
+    <height>1428</height>
    </rect>
   </property>
-  <property name="sizePolicy" >
-   <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
-  <property name="windowTitle" >
-   <string>Create Hypothesis</string>
+  <property name="windowTitle">
+   <string>Create an hypothesis</string>
   </property>
-  <property name="autoFillBackground" >
-   <bool>false</bool>
+  <property name="autoFillBackground">
+   <bool>true</bool>
   </property>
-  <property name="sizeGripEnabled" >
+  <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_10" >
-   <item row="0" column="0" >
-    <widget class="QLabel" name="Name" >
-     <property name="text" >
-      <string>Name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1" >
-    <widget class="QLineEdit" name="LEHypothesisName" >
-     <property name="minimumSize" >
+  <layout class="QGridLayout" name="gridLayout_3">
+   <item row="0" column="1">
+    <widget class="QLineEdit" name="LEHypothesisName">
+     <property name="minimumSize">
       <size>
        <width>382</width>
        <height>31</height>
       </size>
      </property>
-     <property name="maxLength" >
+     <property name="maxLength">
       <number>32</number>
      </property>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBTypeAdaptation" >
-     <property name="title" >
+   <item row="1" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBTypeAdaptation">
+     <property name="title">
       <string>Type of adaptation</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout" >
+     <layout class="QHBoxLayout">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item>
-       <widget class="QRadioButton" name="RBUniforme" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBUniforme">
+        <property name="text">
          <string>Uniform</string>
         </property>
-        <property name="checkable" >
+        <property name="checkable">
          <bool>true</bool>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBChamp" >
-        <property name="text" >
-         <string>Following a field</string>
+       <widget class="QRadioButton" name="RBChamp">
+        <property name="text">
+         <string>Driven by a field</string>
         </property>
        </widget>
       </item>
       <item>
-       <widget class="QRadioButton" name="RBZone" >
-        <property name="text" >
+       <widget class="QRadioButton" name="RBZone">
+        <property name="text">
          <string>With geometrical zones</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBUniform" >
-     <property name="title" >
+   <item row="2" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBUniform">
+     <property name="title">
       <string>Uniform adaptation</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_2" >
-      <item row="0" column="1" >
-       <widget class="QRadioButton" name="RBUniDera" >
-        <property name="text" >
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="1">
+       <widget class="QRadioButton" name="RBUniDera">
+        <property name="text">
          <string>Coarsening</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="0" >
-       <widget class="QRadioButton" name="RBUniRaff" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QRadioButton" name="RBUniRaff">
+        <property name="text">
          <string>Refinement</string>
         </property>
-        <property name="checked" >
+        <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBFieldFile" >
-     <property name="title" >
+   <item row="3" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBFieldFile">
+     <property name="title">
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout_9" >
-      <item row="0" column="0" >
-       <widget class="QLabel" name="FieldFile" >
-        <property name="text" >
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="0">
+       <widget class="QLabel" name="FieldFile">
+        <property name="text">
          <string>File of the fields</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QLineEdit" name="LEFieldFile" >
-        <property name="minimumSize" >
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="LEFieldFile">
+        <property name="minimumSize">
          <size>
           <width>282</width>
           <height>31</height>
      </layout>
     </widget>
    </item>
-   <item row="4" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBFieldManagement" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+   <item row="4" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBFieldManagement">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Governing field for the adaptation</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_6" >
-      <item row="0" column="0" >
-       <layout class="QHBoxLayout" name="horizontalLayout_6" >
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="0">
+       <layout class="QHBoxLayout">
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
-         <widget class="QLabel" name="FieldName" >
-          <property name="text" >
-           <string>Field Name</string>
+         <widget class="QLabel" name="FieldName">
+          <property name="text">
+           <string>Field name</string>
           </property>
          </widget>
         </item>
         <item>
-         <widget class="QComboBox" name="CBFieldName" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+         <widget class="QComboBox" name="CBFieldName">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="editable" >
+          <property name="editable">
            <bool>false</bool>
           </property>
-          <property name="sizeAdjustPolicy" >
+          <property name="sizeAdjustPolicy">
            <enum>QComboBox::AdjustToContents</enum>
           </property>
          </widget>
         </item>
         <item>
-         <spacer name="horizontalSpacer_3" >
-          <property name="orientation" >
+         <spacer>
+          <property name="orientation">
            <enum>Qt::Horizontal</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>48</width>
             <height>20</height>
         </item>
        </layout>
       </item>
-      <item row="1" column="0" >
-       <layout class="QHBoxLayout" name="horizontalLayout_7" >
+      <item row="1" column="0">
+       <layout class="QHBoxLayout">
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
-         <widget class="QTableWidget" name="TWCMP" >
-          <property name="editTriggers" >
+         <widget class="QTableWidget" name="TWCMP">
+          <property name="editTriggers">
            <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
           </property>
-          <property name="showGrid" >
+          <property name="showGrid">
            <bool>true</bool>
           </property>
-          <property name="rowCount" >
+          <property name="rowCount">
            <number>0</number>
           </property>
-          <property name="columnCount" >
+          <property name="columnCount">
            <number>2</number>
           </property>
           <column>
-           <property name="text" >
+           <property name="text">
             <string>Selection</string>
            </property>
           </column>
           <column>
-           <property name="text" >
+           <property name="text">
             <string>Component</string>
            </property>
           </column>
          </widget>
         </item>
         <item>
-         <spacer name="horizontalSpacer_4" >
-          <property name="orientation" >
+         <spacer>
+          <property name="orientation">
            <enum>Qt::Horizontal</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>60</width>
             <height>20</height>
          </spacer>
         </item>
         <item>
-         <layout class="QVBoxLayout" name="verticalLayout_3" >
+         <layout class="QVBoxLayout">
+          <property name="spacing">
+           <number>6</number>
+          </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
           <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_3" >
+           <layout class="QHBoxLayout">
+            <property name="spacing">
+             <number>6</number>
+            </property>
+            <property name="margin">
+             <number>0</number>
+            </property>
             <item>
-             <widget class="QRadioButton" name="RBL2" >
-              <property name="text" >
+             <widget class="QRadioButton" name="RBL2">
+              <property name="text">
                <string>L2 norm</string>
               </property>
-              <property name="checked" >
+              <property name="checked">
                <bool>true</bool>
               </property>
              </widget>
             </item>
             <item>
-             <widget class="QRadioButton" name="RBInf" >
-              <property name="text" >
+             <widget class="QRadioButton" name="RBInf">
+              <property name="text">
                <string>Infinite norm</string>
               </property>
-              <property name="checked" >
+              <property name="checked">
                <bool>false</bool>
               </property>
              </widget>
             </item>
            </layout>
           </item>
+          <item>
+           <widget class="QCheckBox" name="CBJump">
+            <property name="text">
+             <string>Jump between elements</string>
+            </property>
+           </widget>
+          </item>
          </layout>
         </item>
        </layout>
       </item>
-      <item row="2" column="0" >
-       <layout class="QHBoxLayout" name="horizontalLayout_2" >
+      <item row="2" column="0">
+       <layout class="QHBoxLayout">
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
-         <widget class="QGroupBox" name="GBRefinementThresholds" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+         <widget class="QGroupBox" name="GBRefinementThresholds">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
-           <string>Refinement thresholds</string>
+          <property name="title">
+           <string>Refinement threshold</string>
           </property>
-          <layout class="QGridLayout" name="gridLayout" >
-           <item row="0" column="0" >
-            <widget class="QRadioButton" name="RBRPE" >
-             <property name="text" >
+          <layout class="QGridLayout">
+           <property name="margin">
+            <number>9</number>
+           </property>
+           <property name="spacing">
+            <number>6</number>
+           </property>
+           <item row="0" column="0">
+            <widget class="QRadioButton" name="RBRPE">
+             <property name="text">
               <string>Percentage of meshes</string>
              </property>
-             <property name="checkable" >
+             <property name="checkable">
               <bool>true</bool>
              </property>
-             <property name="checked" >
+             <property name="checked">
               <bool>true</bool>
              </property>
             </widget>
            </item>
-           <item row="0" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_RPE" >
-             <property name="suffix" >
+           <item row="0" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_RPE">
+             <property name="suffix">
               <string> %</string>
              </property>
-             <property name="decimals" >
+             <property name="decimals">
               <number>3</number>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <double>100.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
-             <property name="value" >
-              <double>3.000000000000000</double>
+             <property name="value">
+              <double>2.000000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="QRadioButton" name="RBRRel" >
-             <property name="text" >
+           <item row="1" column="0">
+            <widget class="QRadioButton" name="RBRRel">
+             <property name="text">
               <string>Relative</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_RRel" >
-             <property name="enabled" >
+           <item row="1" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_RRel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="suffix" >
+             <property name="suffix">
               <string> %</string>
              </property>
-             <property name="decimals" >
+             <property name="decimals">
               <number>3</number>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <double>100.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QRadioButton" name="RBRAbs" >
-             <property name="text" >
+           <item row="2" column="0">
+            <widget class="QRadioButton" name="RBRAbs">
+             <property name="text">
               <string>Absolute</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_RAbs" >
-             <property name="enabled" >
+           <item row="2" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_RAbs">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="decimals" >
-              <number>3</number>
+             <property name="decimals">
+              <number>8</number>
              </property>
-             <property name="maximum" >
-              <double>100.000000000000000</double>
+             <property name="minimum">
+              <double>-1000000000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000000000.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="3" column="0" >
-            <widget class="QRadioButton" name="RBRNo" >
-             <property name="text" >
+           <item row="3" column="0">
+            <widget class="QRadioButton" name="RBRNo">
+             <property name="text">
               <string>No refinement</string>
              </property>
             </widget>
          </widget>
         </item>
         <item>
-         <widget class="QGroupBox" name="GBCoarseningThresholds" >
-          <property name="title" >
-           <string>Coarsening thresholds</string>
+         <widget class="QGroupBox" name="GBCoarseningThresholds">
+          <property name="title">
+           <string>Coarsening threshold</string>
           </property>
-          <layout class="QGridLayout" name="gridLayout_4" >
-           <item row="0" column="0" >
-            <widget class="QRadioButton" name="RBCPE" >
-             <property name="text" >
+          <layout class="QGridLayout">
+           <property name="margin">
+            <number>9</number>
+           </property>
+           <property name="spacing">
+            <number>6</number>
+           </property>
+           <item row="0" column="0">
+            <widget class="QRadioButton" name="RBCPE">
+             <property name="text">
               <string>Percentage of meshes</string>
              </property>
-             <property name="checkable" >
+             <property name="checkable">
               <bool>true</bool>
              </property>
-             <property name="checked" >
+             <property name="checked">
               <bool>false</bool>
              </property>
             </widget>
            </item>
-           <item row="0" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_CPE" >
-             <property name="enabled" >
+           <item row="0" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_CPE">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="suffix" >
+             <property name="suffix">
               <string> %</string>
              </property>
-             <property name="decimals" >
+             <property name="decimals">
               <number>3</number>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <double>100.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="QRadioButton" name="RBCRel" >
-             <property name="text" >
+           <item row="1" column="0">
+            <widget class="QRadioButton" name="RBCRel">
+             <property name="text">
               <string>Relative</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_CRel" >
-             <property name="enabled" >
+           <item row="1" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_CRel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="suffix" >
+             <property name="suffix">
               <string> %</string>
              </property>
-             <property name="decimals" >
+             <property name="decimals">
               <number>3</number>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <double>100.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QRadioButton" name="RBCAbs" >
-             <property name="text" >
+           <item row="2" column="0">
+            <widget class="QRadioButton" name="RBCAbs">
+             <property name="text">
               <string>Absolute</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="1" >
-            <widget class="QDoubleSpinBox" name="SpinBox_CAbs" >
-             <property name="enabled" >
+           <item row="2" column="1">
+            <widget class="QDoubleSpinBox" name="SpinBox_CAbs">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="decimals" >
-              <number>3</number>
+             <property name="decimals">
+              <number>8</number>
              </property>
-             <property name="maximum" >
-              <double>100.000000000000000</double>
+             <property name="minimum">
+              <double>-1000000000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000000000.000000000000000</double>
              </property>
-             <property name="singleStep" >
+             <property name="singleStep">
               <double>0.100000000000000</double>
              </property>
             </widget>
            </item>
-           <item row="3" column="0" >
-            <widget class="QRadioButton" name="RBCNo" >
-             <property name="text" >
+           <item row="3" column="0">
+            <widget class="QRadioButton" name="RBCNo">
+             <property name="text">
               <string>No coarsening</string>
              </property>
-             <property name="checked" >
+             <property name="checked">
               <bool>true</bool>
              </property>
             </widget>
      </layout>
     </widget>
    </item>
-   <item row="5" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBAreaManagement" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+   <item row="5" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBAreaManagement">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title" >
-      <string>Area management</string>
+     <property name="title">
+      <string>Zone management</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3" >
-      <item row="0" column="0" >
-       <widget class="QTableWidget" name="TWZone" >
-        <property name="editTriggers" >
+     <layout class="QGridLayout" name="gridLayout_4">
+      <item row="0" column="0">
+       <widget class="QTableWidget" name="TWZone">
+        <property name="minimumSize">
+         <size>
+          <width>400</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="editTriggers">
          <set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
         </property>
-        <property name="showGrid" >
+        <property name="showGrid">
          <bool>true</bool>
         </property>
-        <property name="rowCount" >
+        <property name="rowCount">
          <number>0</number>
         </property>
-        <property name="columnCount" >
-         <number>2</number>
+        <property name="columnCount">
+         <number>3</number>
         </property>
         <column>
-         <property name="text" >
-          <string>Selection</string>
+         <property name="text">
+          <string>Refinement</string>
          </property>
         </column>
         <column>
-         <property name="text" >
+         <property name="text">
+          <string>Coarsening</string>
+         </property>
+        </column>
+        <column>
+         <property name="text">
           <string>Zone name</string>
          </property>
         </column>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <layout class="QVBoxLayout" name="verticalLayout_2" >
+      <item row="0" column="1">
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="0" column="2">
+       <layout class="QVBoxLayout">
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
-         <layout class="QVBoxLayout" name="verticalLayout" >
+         <layout class="QVBoxLayout">
+          <property name="spacing">
+           <number>6</number>
+          </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
           <item>
-           <widget class="QPushButton" name="PBZoneNew" >
-            <property name="text" >
+           <widget class="QPushButton" name="PBZoneNew">
+            <property name="text">
              <string>New</string>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QPushButton" name="PBZoneEdit" >
-            <property name="text" >
+           <widget class="QPushButton" name="PBZoneEdit">
+            <property name="text">
              <string>Edit</string>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QPushButton" name="PBZoneDelete" >
-            <property name="text" >
+           <widget class="QPushButton" name="PBZoneDelete">
+            <property name="text">
              <string/>
             </property>
            </widget>
          </layout>
         </item>
         <item>
-         <spacer name="verticalSpacer" >
-          <property name="orientation" >
+         <spacer>
+          <property name="orientation">
            <enum>Qt::Vertical</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>20</width>
             <height>48</height>
      </layout>
     </widget>
    </item>
-   <item row="6" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBField" >
-     <property name="title" >
+   <item row="6" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBField">
+     <property name="title">
       <string>Field Interpolation</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_8" >
-      <item row="0" column="0" >
-       <layout class="QGridLayout" name="gridLayout_7" >
-        <item row="0" column="0" >
-         <widget class="QRadioButton" name="RBFieldNo" >
-          <property name="text" >
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="0">
+       <layout class="QGridLayout">
+        <property name="margin">
+         <number>0</number>
+        </property>
+        <property name="spacing">
+         <number>6</number>
+        </property>
+        <item row="0" column="0">
+         <widget class="QRadioButton" name="RBFieldNo">
+          <property name="text">
            <string>None</string>
           </property>
-          <property name="checked" >
+          <property name="checked">
            <bool>true</bool>
           </property>
          </widget>
         </item>
-        <item row="0" column="1" >
-         <widget class="QRadioButton" name="RBFieldAll" >
-          <property name="text" >
+        <item row="0" column="1">
+         <widget class="QRadioButton" name="RBFieldAll">
+          <property name="text">
            <string>All</string>
           </property>
-          <property name="checked" >
+          <property name="checked">
            <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="0" column="2" >
-         <widget class="QRadioButton" name="RBFieldChosen" >
-          <property name="text" >
+        <item row="0" column="2">
+         <widget class="QRadioButton" name="RBFieldChosen">
+          <property name="text">
            <string>Chosen</string>
           </property>
-          <property name="checked" >
+          <property name="checked">
            <bool>false</bool>
           </property>
          </widget>
         </item>
        </layout>
       </item>
-      <item row="1" column="0" >
-       <widget class="QTableWidget" name="TWField" >
+      <item row="1" column="0">
+       <widget class="QTableWidget" name="TWField">
         <column>
-         <property name="text" >
+         <property name="text">
           <string>Selection</string>
          </property>
         </column>
         <column>
-         <property name="text" >
+         <property name="text">
           <string>Field Name</string>
          </property>
         </column>
      </layout>
     </widget>
    </item>
-   <item row="7" column="0" colspan="2" >
-    <widget class="QCheckBox" name="CBGroupe" >
-     <property name="text" >
+   <item row="7" column="0" colspan="2">
+    <widget class="QCheckBox" name="CBGroupe">
+     <property name="text">
       <string>Filtering with groups</string>
      </property>
     </widget>
    </item>
-   <item row="8" column="0" colspan="2" >
-    <widget class="QGroupBox" name="GBButtons" >
-     <property name="title" >
+   <item row="8" column="0" colspan="2">
+    <widget class="QCheckBox" name="CBAdvanced">
+     <property name="text">
+      <string>Advanced options</string>
+     </property>
+    </widget>
+   </item>
+   <item row="9" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBAdvancedOptions">
+     <property name="title">
+      <string>Advanced options</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_1">
+      <item row="0" column="0">
+       <widget class="QLabel" name="TLMinimalDiameter">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Minimal diameter</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QDoubleSpinBox" name="doubleSpinBoxDiamMin">
+        <property name="decimals">
+         <number>5</number>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="TLMaximalLevel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>Maximal level</string>
+        </property>
+        <property name="wordWrap">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QSpinBox" name="spinBoxNivMax">
+        <property name="value">
+         <number>99</number>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" colspan="2">
+       <widget class="QGroupBox" name="GBAdapInit">
+        <property name="title">
+         <string>Initialization of adaptation</string>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_2">
+         <item row="0" column="0">
+          <widget class="QRadioButton" name="RBAIN">
+           <property name="text">
+            <string>Nothing</string>
+           </property>
+           <property name="checked">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QRadioButton" name="RBAIR">
+           <property name="text">
+            <string>Refinement</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="2">
+          <widget class="QRadioButton" name="RBAID">
+           <property name="text">
+            <string>Coarsening</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="10" column="0" colspan="2">
+    <widget class="QGroupBox" name="GBButtons">
+     <property name="title">
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout_5" >
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>&amp;Ok</string>
+     <layout class="QGridLayout">
+      <property name="margin">
+       <number>9</number>
+      </property>
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <item row="0" column="0">
+       <widget class="QPushButton" name="buttonOk">
+        <property name="text">
+         <string>OK</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>&amp;Apply</string>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="buttonApply">
+        <property name="text">
+         <string>Apply</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>&amp;Cancel</string>
+      <item row="0" column="2">
+       <widget class="QPushButton" name="buttonCancel">
+        <property name="text">
+         <string>Cancel</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>&amp;Help</string>
+      <item row="0" column="3">
+       <widget class="QPushButton" name="buttonHelp">
+        <property name="text">
+         <string>Help</string>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="Name">
+     <property name="text">
+      <string>Name</string>
+     </property>
+    </widget>
+   </item>
   </layout>
+  <zorder>LEHypothesisName</zorder>
+  <zorder>GBTypeAdaptation</zorder>
+  <zorder>GBUniform</zorder>
+  <zorder>GBFieldFile</zorder>
+  <zorder>GBFieldManagement</zorder>
+  <zorder>GBAreaManagement</zorder>
+  <zorder>GBField</zorder>
+  <zorder>CBGroupe</zorder>
+  <zorder>CBAdvanced</zorder>
+  <zorder>GBAdvancedOptions</zorder>
+  <zorder>GBButtons</zorder>
+  <zorder></zorder>
+  <zorder>Name</zorder>
  </widget>
  <resources/>
  <connections/>
index a1d65484fd147e0aa6aa6c15d0683909cd43252b..c3e48c90a904343e4215aa63cbce30e38bdb473f 100644 (file)
@@ -1,10 +1,10 @@
 /********************************************************************************
-** Form generated from reading ui file 'CreateIteration.ui'
+** Form generated from reading UI file 'CreateIteration.ui'
 **
-** Created: Thu Nov 18 15:59:09 2010
-**      by: Qt User Interface Compiler version 4.4.3
+** Created: Wed Apr 11 11:35:39 2012
+**      by: Qt User Interface Compiler version 4.6.3
 **
-** WARNING! All changes made in this file will be lost when recompiling ui file!
+** WARNING! All changes made in this file will be lost when recompiling UI file!
 ********************************************************************************/
 
 #ifndef CREATEITERATION_H
@@ -17,6 +17,7 @@
 #include <QtGui/QComboBox>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
+#include <QtGui/QHeaderView>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
@@ -30,46 +31,46 @@ QT_BEGIN_NAMESPACE
 class Ui_CreateIteration
 {
 public:
-    QGridLayout *gridLayout_2;
+    QGridLayout *gridLayout;
+    QGroupBox *GBField;
+    QGridLayout *gridLayout1;
+    QLineEdit *LEFieldFile;
+    QSpacerItem *spacerItem;
+    QRadioButton *RBChosen;
+    QSpacerItem *spacerItem1;
+    QSpinBox *SpinBox_Rank;
+    QLabel *Rank;
+    QSpacerItem *spacerItem2;
+    QSpinBox *SpinBox_TimeStep;
+    QLabel *TimeStep;
+    QSpacerItem *spacerItem3;
+    QRadioButton *RBLast;
+    QRadioButton *RBNo;
+    QPushButton *PushFieldFile;
+    QLabel *FieldFile;
     QLabel *Iteration_Name;
     QLineEdit *LEIterationName;
     QLabel *Iter_Parent;
-    QSpacerItem *verticalSpacer;
+    QSpacerItem *spacerItem4;
     QPushButton *PBIterParent;
     QLineEdit *LEIterationParentName;
     QLabel *Mesh_n;
-    QSpacerItem *verticalSpacer_6;
+    QSpacerItem *spacerItem5;
     QLineEdit *LEMeshName_n;
-    QSpacerItem *verticalSpacer_1;
+    QSpacerItem *spacerItem6;
     QLabel *Mesh_np1;
     QLineEdit *LEMeshName_np1;
-    QSpacerItem *verticalSpacer_3;
-    QGroupBox *GBField;
-    QGridLayout *gridLayout;
-    QLabel *FieldFile;
-    QPushButton *PushFieldFile;
-    QLineEdit *LEFieldFile;
-    QSpacerItem *verticalSpacer_7;
-    QRadioButton *RBNo;
-    QRadioButton *RBLast;
-    QRadioButton *RBChosen;
-    QSpacerItem *verticalSpacer_4;
-    QLabel *TimeStep;
-    QSpinBox *SpinBox_TimeStep;
-    QSpacerItem *spacer;
-    QLabel *Rank;
-    QSpinBox *SpinBox_Rank;
-    QSpacerItem *spacer_3;
-    QSpacerItem *verticalSpacer_2;
+    QSpacerItem *spacerItem7;
+    QSpacerItem *spacerItem8;
     QGroupBox *Hypothese;
-    QGridLayout *gridLayout_3;
+    QGridLayout *gridLayout2;
     QComboBox *CBHypothese;
-    QSpacerItem *spacer_2;
+    QSpacerItem *spacerItem9;
     QPushButton *PBHypoEdit;
     QPushButton *PBHypoNew;
-    QSpacerItem *verticalSpacer_5;
+    QSpacerItem *spacerItem10;
     QGroupBox *GroupButtons;
-    QGridLayout *gridLayout_4;
+    QGridLayout *gridLayout3;
     QPushButton *buttonOk;
     QPushButton *buttonApply;
     QPushButton *buttonCancel;
@@ -77,264 +78,287 @@ public:
 
     void setupUi(QWidget *CreateIteration)
     {
-    if (CreateIteration->objectName().isEmpty())
-        CreateIteration->setObjectName(QString::fromUtf8("CreateIteration"));
-    CreateIteration->resize(587, 598);
-    gridLayout_2 = new QGridLayout(CreateIteration);
-    gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-    Iteration_Name = new QLabel(CreateIteration);
-    Iteration_Name->setObjectName(QString::fromUtf8("Iteration_Name"));
+        if (CreateIteration->objectName().isEmpty())
+            CreateIteration->setObjectName(QString::fromUtf8("CreateIteration"));
+        CreateIteration->resize(610, 598);
+        gridLayout = new QGridLayout(CreateIteration);
+#ifndef Q_OS_MAC
+        gridLayout->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+        GBField = new QGroupBox(CreateIteration);
+        GBField->setObjectName(QString::fromUtf8("GBField"));
+        gridLayout1 = new QGridLayout(GBField);
+#ifndef Q_OS_MAC
+        gridLayout1->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout1->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+        LEFieldFile = new QLineEdit(GBField);
+        LEFieldFile->setObjectName(QString::fromUtf8("LEFieldFile"));
+        LEFieldFile->setMinimumSize(QSize(282, 21));
 
-    gridLayout_2->addWidget(Iteration_Name, 0, 0, 1, 2);
+        gridLayout1->addWidget(LEFieldFile, 0, 2, 1, 5);
 
-    LEIterationName = new QLineEdit(CreateIteration);
-    LEIterationName->setObjectName(QString::fromUtf8("LEIterationName"));
-    LEIterationName->setMinimumSize(QSize(290, 21));
-    LEIterationName->setMaxLength(200);
+        spacerItem = new QSpacerItem(138, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addWidget(LEIterationName, 0, 2, 1, 2);
+        gridLayout1->addItem(spacerItem, 1, 3, 1, 4);
 
-    Iter_Parent = new QLabel(CreateIteration);
-    Iter_Parent->setObjectName(QString::fromUtf8("Iter_Parent"));
+        RBChosen = new QRadioButton(GBField);
+        RBChosen->setObjectName(QString::fromUtf8("RBChosen"));
 
-    gridLayout_2->addWidget(Iter_Parent, 1, 0, 1, 1);
+        gridLayout1->addWidget(RBChosen, 2, 6, 1, 1);
 
-    verticalSpacer = new QSpacerItem(20, 24, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem1 = new QSpacerItem(255, 13, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-    gridLayout_2->addItem(verticalSpacer, 1, 1, 1, 1);
+        gridLayout1->addItem(spacerItem1, 4, 6, 1, 1);
 
-    PBIterParent = new QPushButton(CreateIteration);
-    PBIterParent->setObjectName(QString::fromUtf8("PBIterParent"));
-    PBIterParent->setEnabled(true);
-    PBIterParent->setMaximumSize(QSize(50, 27));
+        SpinBox_Rank = new QSpinBox(GBField);
+        SpinBox_Rank->setObjectName(QString::fromUtf8("SpinBox_Rank"));
+        SpinBox_Rank->setMaximum(1010000);
+        SpinBox_Rank->setMinimum(-1);
+        SpinBox_Rank->setValue(1);
 
-    gridLayout_2->addWidget(PBIterParent, 1, 2, 1, 1);
+        gridLayout1->addWidget(SpinBox_Rank, 4, 5, 1, 1);
 
-    LEIterationParentName = new QLineEdit(CreateIteration);
-    LEIterationParentName->setObjectName(QString::fromUtf8("LEIterationParentName"));
-    LEIterationParentName->setMinimumSize(QSize(0, 21));
-    LEIterationParentName->setMaxLength(200);
-    LEIterationParentName->setReadOnly(true);
+        Rank = new QLabel(GBField);
+        Rank->setObjectName(QString::fromUtf8("Rank"));
 
-    gridLayout_2->addWidget(LEIterationParentName, 1, 3, 1, 1);
+        gridLayout1->addWidget(Rank, 4, 4, 1, 1);
 
-    Mesh_n = new QLabel(CreateIteration);
-    Mesh_n->setObjectName(QString::fromUtf8("Mesh_n"));
+        spacerItem2 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout_2->addWidget(Mesh_n, 2, 0, 1, 1);
+        gridLayout1->addItem(spacerItem2, 4, 2, 1, 2);
 
-    verticalSpacer_6 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        SpinBox_TimeStep = new QSpinBox(GBField);
+        SpinBox_TimeStep->setObjectName(QString::fromUtf8("SpinBox_TimeStep"));
+        SpinBox_TimeStep->setMaximum(100000);
+        SpinBox_TimeStep->setMinimum(-2);
+        SpinBox_TimeStep->setValue(-1);
 
-    gridLayout_2->addItem(verticalSpacer_6, 2, 1, 1, 1);
+        gridLayout1->addWidget(SpinBox_TimeStep, 4, 1, 1, 1);
 
-    LEMeshName_n = new QLineEdit(CreateIteration);
-    LEMeshName_n->setObjectName(QString::fromUtf8("LEMeshName_n"));
-    LEMeshName_n->setMinimumSize(QSize(290, 21));
-    LEMeshName_n->setMaxLength(32);
-    LEMeshName_n->setReadOnly(true);
+        TimeStep = new QLabel(GBField);
+        TimeStep->setObjectName(QString::fromUtf8("TimeStep"));
 
-    gridLayout_2->addWidget(LEMeshName_n, 2, 2, 1, 2);
+        gridLayout1->addWidget(TimeStep, 4, 0, 1, 1);
 
-    verticalSpacer_1 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem3 = new QSpacerItem(138, 28, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addItem(verticalSpacer_1, 3, 1, 1, 1);
+        gridLayout1->addItem(spacerItem3, 3, 0, 1, 4);
 
-    Mesh_np1 = new QLabel(CreateIteration);
-    Mesh_np1->setObjectName(QString::fromUtf8("Mesh_np1"));
+        RBLast = new QRadioButton(GBField);
+        RBLast->setObjectName(QString::fromUtf8("RBLast"));
 
-    gridLayout_2->addWidget(Mesh_np1, 4, 0, 1, 2);
+        gridLayout1->addWidget(RBLast, 2, 3, 1, 3);
 
-    LEMeshName_np1 = new QLineEdit(CreateIteration);
-    LEMeshName_np1->setObjectName(QString::fromUtf8("LEMeshName_np1"));
-    LEMeshName_np1->setMinimumSize(QSize(290, 21));
-    LEMeshName_np1->setMaxLength(32);
+        RBNo = new QRadioButton(GBField);
+        RBNo->setObjectName(QString::fromUtf8("RBNo"));
+        RBNo->setCheckable(true);
+        RBNo->setChecked(true);
 
-    gridLayout_2->addWidget(LEMeshName_np1, 4, 2, 1, 2);
+        gridLayout1->addWidget(RBNo, 2, 0, 1, 3);
 
-    verticalSpacer_3 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        PushFieldFile = new QPushButton(GBField);
+        PushFieldFile->setObjectName(QString::fromUtf8("PushFieldFile"));
 
-    gridLayout_2->addItem(verticalSpacer_3, 5, 1, 1, 1);
+        gridLayout1->addWidget(PushFieldFile, 0, 1, 1, 1);
 
-    GBField = new QGroupBox(CreateIteration);
-    GBField->setObjectName(QString::fromUtf8("GBField"));
-    gridLayout = new QGridLayout(GBField);
-    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    FieldFile = new QLabel(GBField);
-    FieldFile->setObjectName(QString::fromUtf8("FieldFile"));
+        FieldFile = new QLabel(GBField);
+        FieldFile->setObjectName(QString::fromUtf8("FieldFile"));
 
-    gridLayout->addWidget(FieldFile, 0, 0, 1, 1);
+        gridLayout1->addWidget(FieldFile, 0, 0, 1, 1);
 
-    PushFieldFile = new QPushButton(GBField);
-    PushFieldFile->setObjectName(QString::fromUtf8("PushFieldFile"));
 
-    gridLayout->addWidget(PushFieldFile, 0, 1, 1, 1);
+        gridLayout->addWidget(GBField, 6, 0, 1, 4);
 
-    LEFieldFile = new QLineEdit(GBField);
-    LEFieldFile->setObjectName(QString::fromUtf8("LEFieldFile"));
-    LEFieldFile->setMinimumSize(QSize(282, 21));
+        Iteration_Name = new QLabel(CreateIteration);
+        Iteration_Name->setObjectName(QString::fromUtf8("Iteration_Name"));
 
-    gridLayout->addWidget(LEFieldFile, 0, 2, 1, 6);
+        gridLayout->addWidget(Iteration_Name, 0, 0, 1, 2);
 
-    verticalSpacer_7 = new QSpacerItem(138, 18, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        LEIterationName = new QLineEdit(CreateIteration);
+        LEIterationName->setObjectName(QString::fromUtf8("LEIterationName"));
+        LEIterationName->setMinimumSize(QSize(290, 21));
+        LEIterationName->setMaxLength(200);
 
-    gridLayout->addItem(verticalSpacer_7, 1, 3, 1, 4);
+        gridLayout->addWidget(LEIterationName, 0, 2, 1, 2);
 
-    RBNo = new QRadioButton(GBField);
-    RBNo->setObjectName(QString::fromUtf8("RBNo"));
-    RBNo->setCheckable(true);
-    RBNo->setChecked(true);
+        Iter_Parent = new QLabel(CreateIteration);
+        Iter_Parent->setObjectName(QString::fromUtf8("Iter_Parent"));
 
-    gridLayout->addWidget(RBNo, 2, 0, 1, 3);
+        gridLayout->addWidget(Iter_Parent, 1, 0, 1, 1);
 
-    RBLast = new QRadioButton(GBField);
-    RBLast->setObjectName(QString::fromUtf8("RBLast"));
+        spacerItem4 = new QSpacerItem(20, 24, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout->addWidget(RBLast, 2, 3, 1, 3);
+        gridLayout->addItem(spacerItem4, 1, 1, 1, 1);
 
-    RBChosen = new QRadioButton(GBField);
-    RBChosen->setObjectName(QString::fromUtf8("RBChosen"));
+        PBIterParent = new QPushButton(CreateIteration);
+        PBIterParent->setObjectName(QString::fromUtf8("PBIterParent"));
+        PBIterParent->setEnabled(true);
+        PBIterParent->setMaximumSize(QSize(50, 27));
 
-    gridLayout->addWidget(RBChosen, 2, 7, 1, 1);
+        gridLayout->addWidget(PBIterParent, 1, 2, 1, 1);
 
-    verticalSpacer_4 = new QSpacerItem(138, 28, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        LEIterationParentName = new QLineEdit(CreateIteration);
+        LEIterationParentName->setObjectName(QString::fromUtf8("LEIterationParentName"));
+        LEIterationParentName->setMinimumSize(QSize(0, 21));
+        LEIterationParentName->setMaxLength(200);
+        LEIterationParentName->setReadOnly(true);
 
-    gridLayout->addItem(verticalSpacer_4, 3, 0, 1, 4);
+        gridLayout->addWidget(LEIterationParentName, 1, 3, 1, 1);
 
-    TimeStep = new QLabel(GBField);
-    TimeStep->setObjectName(QString::fromUtf8("TimeStep"));
+        Mesh_n = new QLabel(CreateIteration);
+        Mesh_n->setObjectName(QString::fromUtf8("Mesh_n"));
 
-    gridLayout->addWidget(TimeStep, 4, 0, 1, 1);
+        gridLayout->addWidget(Mesh_n, 2, 0, 1, 1);
 
-    SpinBox_TimeStep = new QSpinBox(GBField);
-    SpinBox_TimeStep->setObjectName(QString::fromUtf8("SpinBox_TimeStep"));
-    SpinBox_TimeStep->setMinimum(-2);
-    SpinBox_TimeStep->setMaximum(100000);
-    SpinBox_TimeStep->setValue(-1);
+        spacerItem5 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout->addWidget(SpinBox_TimeStep, 4, 1, 1, 1);
+        gridLayout->addItem(spacerItem5, 2, 1, 1, 1);
 
-    spacer = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
+        LEMeshName_n = new QLineEdit(CreateIteration);
+        LEMeshName_n->setObjectName(QString::fromUtf8("LEMeshName_n"));
+        LEMeshName_n->setMinimumSize(QSize(290, 21));
+        LEMeshName_n->setMaxLength(32);
+        LEMeshName_n->setReadOnly(true);
 
-    gridLayout->addItem(spacer, 4, 2, 1, 2);
+        gridLayout->addWidget(LEMeshName_n, 2, 2, 1, 2);
 
-    Rank = new QLabel(GBField);
-    Rank->setObjectName(QString::fromUtf8("Rank"));
+        spacerItem6 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout->addWidget(Rank, 4, 4, 1, 1);
+        gridLayout->addItem(spacerItem6, 3, 1, 1, 1);
 
-    SpinBox_Rank = new QSpinBox(GBField);
-    SpinBox_Rank->setObjectName(QString::fromUtf8("SpinBox_Rank"));
-    SpinBox_Rank->setMinimum(-1);
-    SpinBox_Rank->setMaximum(1010000);
-    SpinBox_Rank->setValue(1);
+        Mesh_np1 = new QLabel(CreateIteration);
+        Mesh_np1->setObjectName(QString::fromUtf8("Mesh_np1"));
 
-    gridLayout->addWidget(SpinBox_Rank, 4, 5, 1, 1);
+        gridLayout->addWidget(Mesh_np1, 4, 0, 1, 2);
 
-    spacer_3 = new QSpacerItem(255, 13, QSizePolicy::Expanding, QSizePolicy::Minimum);
+        LEMeshName_np1 = new QLineEdit(CreateIteration);
+        LEMeshName_np1->setObjectName(QString::fromUtf8("LEMeshName_np1"));
+        LEMeshName_np1->setMinimumSize(QSize(290, 21));
+        LEMeshName_np1->setMaxLength(32);
 
-    gridLayout->addItem(spacer_3, 4, 6, 1, 2);
+        gridLayout->addWidget(LEMeshName_np1, 4, 2, 1, 2);
 
+        spacerItem7 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addWidget(GBField, 6, 0, 1, 4);
+        gridLayout->addItem(spacerItem7, 5, 1, 1, 1);
 
-    verticalSpacer_2 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem8 = new QSpacerItem(20, 22, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addItem(verticalSpacer_2, 7, 1, 1, 1);
+        gridLayout->addItem(spacerItem8, 7, 1, 1, 1);
 
-    Hypothese = new QGroupBox(CreateIteration);
-    Hypothese->setObjectName(QString::fromUtf8("Hypothese"));
-    gridLayout_3 = new QGridLayout(Hypothese);
-    gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-    CBHypothese = new QComboBox(Hypothese);
-    CBHypothese->setObjectName(QString::fromUtf8("CBHypothese"));
-    CBHypothese->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+        Hypothese = new QGroupBox(CreateIteration);
+        Hypothese->setObjectName(QString::fromUtf8("Hypothese"));
+        gridLayout2 = new QGridLayout(Hypothese);
+#ifndef Q_OS_MAC
+        gridLayout2->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout2->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+        CBHypothese = new QComboBox(Hypothese);
+        CBHypothese->setObjectName(QString::fromUtf8("CBHypothese"));
+        CBHypothese->setSizeAdjustPolicy(QComboBox::AdjustToContents);
 
-    gridLayout_3->addWidget(CBHypothese, 0, 0, 1, 1);
+        gridLayout2->addWidget(CBHypothese, 0, 0, 1, 1);
 
-    spacer_2 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
+        spacerItem9 = new QSpacerItem(40, 13, QSizePolicy::Fixed, QSizePolicy::Minimum);
 
-    gridLayout_3->addItem(spacer_2, 0, 1, 1, 1);
+        gridLayout2->addItem(spacerItem9, 0, 1, 1, 1);
 
-    PBHypoEdit = new QPushButton(Hypothese);
-    PBHypoEdit->setObjectName(QString::fromUtf8("PBHypoEdit"));
+        PBHypoEdit = new QPushButton(Hypothese);
+        PBHypoEdit->setObjectName(QString::fromUtf8("PBHypoEdit"));
 
-    gridLayout_3->addWidget(PBHypoEdit, 0, 2, 1, 1);
+        gridLayout2->addWidget(PBHypoEdit, 0, 2, 1, 1);
 
-    PBHypoNew = new QPushButton(Hypothese);
-    PBHypoNew->setObjectName(QString::fromUtf8("PBHypoNew"));
+        PBHypoNew = new QPushButton(Hypothese);
+        PBHypoNew->setObjectName(QString::fromUtf8("PBHypoNew"));
 
-    gridLayout_3->addWidget(PBHypoNew, 0, 3, 1, 1);
+        gridLayout2->addWidget(PBHypoNew, 0, 3, 1, 1);
 
 
-    gridLayout_2->addWidget(Hypothese, 8, 0, 1, 4);
+        gridLayout->addWidget(Hypothese, 8, 0, 1, 4);
 
-    verticalSpacer_5 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
+        spacerItem10 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-    gridLayout_2->addItem(verticalSpacer_5, 9, 0, 1, 2);
+        gridLayout->addItem(spacerItem10, 9, 0, 1, 1);
 
-    GroupButtons = new QGroupBox(CreateIteration);
-    GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
-    gridLayout_4 = new QGridLayout(GroupButtons);
-    gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
-    buttonOk = new QPushButton(GroupButtons);
-    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
-    buttonOk->setAutoDefault(false);
-    buttonOk->setDefault(false);
+        GroupButtons = new QGroupBox(CreateIteration);
+        GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
+        gridLayout3 = new QGridLayout(GroupButtons);
+#ifndef Q_OS_MAC
+        gridLayout3->setSpacing(6);
+#endif
+#ifndef Q_OS_MAC
+        gridLayout3->setContentsMargins(9, 9, 9, 9);
+#endif
+        gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+        buttonOk = new QPushButton(GroupButtons);
+        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+        buttonOk->setAutoDefault(false);
+        buttonOk->setDefault(false);
 
-    gridLayout_4->addWidget(buttonOk, 0, 0, 1, 1);
+        gridLayout3->addWidget(buttonOk, 0, 0, 1, 1);
 
-    buttonApply = new QPushButton(GroupButtons);
-    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+        buttonApply = new QPushButton(GroupButtons);
+        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-    gridLayout_4->addWidget(buttonApply, 0, 1, 1, 1);
+        gridLayout3->addWidget(buttonApply, 0, 1, 1, 1);
 
-    buttonCancel = new QPushButton(GroupButtons);
-    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+        buttonCancel = new QPushButton(GroupButtons);
+        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
 
-    gridLayout_4->addWidget(buttonCancel, 0, 2, 1, 1);
+        gridLayout3->addWidget(buttonCancel, 0, 2, 1, 1);
 
-    buttonHelp = new QPushButton(GroupButtons);
-    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+        buttonHelp = new QPushButton(GroupButtons);
+        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-    gridLayout_4->addWidget(buttonHelp, 0, 3, 1, 1);
+        gridLayout3->addWidget(buttonHelp, 0, 3, 1, 1);
 
 
-    gridLayout_2->addWidget(GroupButtons, 10, 0, 1, 4);
+        gridLayout->addWidget(GroupButtons, 10, 0, 1, 4);
 
 
-    retranslateUi(CreateIteration);
+        retranslateUi(CreateIteration);
 
-    CBHypothese->setCurrentIndex(-1);
+        CBHypothese->setCurrentIndex(-1);
 
 
-    QMetaObject::connectSlotsByName(CreateIteration);
+        QMetaObject::connectSlotsByName(CreateIteration);
     } // setupUi
 
     void retranslateUi(QWidget *CreateIteration)
     {
-    CreateIteration->setWindowTitle(QApplication::translate("CreateIteration", "Create_Iteration", 0, QApplication::UnicodeUTF8));
-    Iteration_Name->setText(QApplication::translate("CreateIteration", "Iteration Name", 0, QApplication::UnicodeUTF8));
-    Iter_Parent->setText(QApplication::translate("CreateIteration", "Previous iteration", 0, QApplication::UnicodeUTF8));
-    PBIterParent->setText(QString());
-    Mesh_n->setText(QApplication::translate("CreateIteration", "Mesh n", 0, QApplication::UnicodeUTF8));
-    Mesh_np1->setText(QApplication::translate("CreateIteration", "Mesh n+1", 0, QApplication::UnicodeUTF8));
-    GBField->setTitle(QApplication::translate("CreateIteration", "Field information", 0, QApplication::UnicodeUTF8));
-    FieldFile->setText(QApplication::translate("CreateIteration", "Field File", 0, QApplication::UnicodeUTF8));
-    PushFieldFile->setText(QString());
-    RBNo->setText(QApplication::translate("CreateIteration", "No Time Step", 0, QApplication::UnicodeUTF8));
-    RBLast->setText(QApplication::translate("CreateIteration", "Last Time Step", 0, QApplication::UnicodeUTF8));
-    RBChosen->setText(QApplication::translate("CreateIteration", "Chosen time step", 0, QApplication::UnicodeUTF8));
-    TimeStep->setText(QApplication::translate("CreateIteration", "Time Step", 0, QApplication::UnicodeUTF8));
-    Rank->setText(QApplication::translate("CreateIteration", "Rank", 0, QApplication::UnicodeUTF8));
-    Hypothese->setTitle(QApplication::translate("CreateIteration", "Hypothesis", 0, QApplication::UnicodeUTF8));
-    PBHypoEdit->setText(QApplication::translate("CreateIteration", "Edit", 0, QApplication::UnicodeUTF8));
-    PBHypoNew->setText(QApplication::translate("CreateIteration", "New", 0, QApplication::UnicodeUTF8));
-    GroupButtons->setTitle(QString());
-    buttonOk->setText(QApplication::translate("CreateIteration", "&Ok", 0, QApplication::UnicodeUTF8));
-    buttonApply->setText(QApplication::translate("CreateIteration", "&Apply", 0, QApplication::UnicodeUTF8));
-    buttonCancel->setText(QApplication::translate("CreateIteration", "&Cancel", 0, QApplication::UnicodeUTF8));
-    buttonHelp->setText(QApplication::translate("CreateIteration", "&Help", 0, QApplication::UnicodeUTF8));
-    Q_UNUSED(CreateIteration);
+        CreateIteration->setWindowTitle(QApplication::translate("CreateIteration", "Create an iteration", 0, QApplication::UnicodeUTF8));
+        GBField->setTitle(QApplication::translate("CreateIteration", "Field information", 0, QApplication::UnicodeUTF8));
+        RBChosen->setText(QApplication::translate("CreateIteration", "Chosen time step", 0, QApplication::UnicodeUTF8));
+        Rank->setText(QApplication::translate("CreateIteration", "Rank", 0, QApplication::UnicodeUTF8));
+        TimeStep->setText(QApplication::translate("CreateIteration", "Time step", 0, QApplication::UnicodeUTF8));
+        RBLast->setText(QApplication::translate("CreateIteration", "Last time step", 0, QApplication::UnicodeUTF8));
+        RBNo->setText(QApplication::translate("CreateIteration", "No time step", 0, QApplication::UnicodeUTF8));
+        PushFieldFile->setText(QString());
+        FieldFile->setText(QApplication::translate("CreateIteration", "Field file", 0, QApplication::UnicodeUTF8));
+        Iteration_Name->setText(QApplication::translate("CreateIteration", "Iteration Name", 0, QApplication::UnicodeUTF8));
+        Iter_Parent->setText(QApplication::translate("CreateIteration", "Previous iteration", 0, QApplication::UnicodeUTF8));
+        PBIterParent->setText(QString());
+        Mesh_n->setText(QApplication::translate("CreateIteration", "Mesh n", 0, QApplication::UnicodeUTF8));
+        Mesh_np1->setText(QApplication::translate("CreateIteration", "Mesh n+1", 0, QApplication::UnicodeUTF8));
+        Hypothese->setTitle(QApplication::translate("CreateIteration", "Hypothesis", 0, QApplication::UnicodeUTF8));
+        PBHypoEdit->setText(QApplication::translate("CreateIteration", "Edit", 0, QApplication::UnicodeUTF8));
+        PBHypoNew->setText(QApplication::translate("CreateIteration", "New", 0, QApplication::UnicodeUTF8));
+        GroupButtons->setTitle(QString());
+        buttonOk->setText(QApplication::translate("CreateIteration", "OK", 0, QApplication::UnicodeUTF8));
+        buttonApply->setText(QApplication::translate("CreateIteration", "Apply", 0, QApplication::UnicodeUTF8));
+        buttonCancel->setText(QApplication::translate("CreateIteration", "Cancel", 0, QApplication::UnicodeUTF8));
+        buttonHelp->setText(QApplication::translate("CreateIteration", "Help", 0, QApplication::UnicodeUTF8));
     } // retranslateUi
 
 };
index dbe973d0fdb1ae32cadebcbf92b79f22ec501273..01a0d38b488314792e2eda698dbef10c34f79182 100644 (file)
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>587</width>
+    <width>610</width>
     <height>598</height>
    </rect>
   </property>
   <property name="windowTitle" >
-   <string>Create_Iteration</string>
+   <string>Create an iteration</string>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2" >
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="6" column="0" colspan="4" >
+    <widget class="QGroupBox" name="GBField" >
+     <property name="title" >
+      <string>Field information</string>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="2" colspan="5" >
+       <widget class="QLineEdit" name="LEFieldFile" >
+        <property name="minimumSize" >
+         <size>
+          <width>282</width>
+          <height>21</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" colspan="4" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>138</width>
+          <height>18</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="2" column="6" >
+       <widget class="QRadioButton" name="RBChosen" >
+        <property name="text" >
+         <string>Chosen time step</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="6" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType" >
+         <enum>QSizePolicy::Expanding</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>255</width>
+          <height>13</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="4" column="5" >
+       <widget class="QSpinBox" name="SpinBox_Rank" >
+        <property name="maximum" >
+         <number>1010000</number>
+        </property>
+        <property name="minimum" >
+         <number>-1</number>
+        </property>
+        <property name="value" >
+         <number>1</number>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="4" >
+       <widget class="QLabel" name="Rank" >
+        <property name="text" >
+         <string>Rank</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="2" colspan="2" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType" >
+         <enum>QSizePolicy::Fixed</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>40</width>
+          <height>13</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="4" column="1" >
+       <widget class="QSpinBox" name="SpinBox_TimeStep" >
+        <property name="maximum" >
+         <number>100000</number>
+        </property>
+        <property name="minimum" >
+         <number>-2</number>
+        </property>
+        <property name="value" >
+         <number>-1</number>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0" >
+       <widget class="QLabel" name="TimeStep" >
+        <property name="text" >
+         <string>Time step</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0" colspan="4" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>138</width>
+          <height>28</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="2" column="3" colspan="3" >
+       <widget class="QRadioButton" name="RBLast" >
+        <property name="text" >
+         <string>Last time step</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" colspan="3" >
+       <widget class="QRadioButton" name="RBNo" >
+        <property name="text" >
+         <string>No time step</string>
+        </property>
+        <property name="checkable" >
+         <bool>true</bool>
+        </property>
+        <property name="checked" >
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushFieldFile" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="FieldFile" >
+        <property name="text" >
+         <string>Field file</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
    <item row="0" column="0" colspan="2" >
     <widget class="QLabel" name="Iteration_Name" >
      <property name="text" >
     </widget>
    </item>
    <item row="1" column="1" >
-    <spacer name="verticalSpacer" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>24</height>
     </widget>
    </item>
    <item row="2" column="1" >
-    <spacer name="verticalSpacer_6" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>21</height>
     </widget>
    </item>
    <item row="3" column="1" >
-    <spacer name="verticalSpacer_1" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>22</height>
     </widget>
    </item>
    <item row="5" column="1" >
-    <spacer name="verticalSpacer_3" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>21</height>
      </property>
     </spacer>
    </item>
-   <item row="6" column="0" colspan="4" >
-    <widget class="QGroupBox" name="GBField" >
-     <property name="title" >
-      <string>Field information</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout" >
-      <item row="0" column="0" >
-       <widget class="QLabel" name="FieldFile" >
-        <property name="text" >
-         <string>Field File</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="PushFieldFile" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" colspan="6" >
-       <widget class="QLineEdit" name="LEFieldFile" >
-        <property name="minimumSize" >
-         <size>
-          <width>282</width>
-          <height>21</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3" colspan="4" >
-       <spacer name="verticalSpacer_7" >
-        <property name="orientation" >
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>138</width>
-          <height>18</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="2" column="0" colspan="3" >
-       <widget class="QRadioButton" name="RBNo" >
-        <property name="text" >
-         <string>No Time Step</string>
-        </property>
-        <property name="checkable" >
-         <bool>true</bool>
-        </property>
-        <property name="checked" >
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="3" colspan="3" >
-       <widget class="QRadioButton" name="RBLast" >
-        <property name="text" >
-         <string>Last Time Step</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="7" >
-       <widget class="QRadioButton" name="RBChosen" >
-        <property name="text" >
-         <string>Chosen time step</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0" colspan="4" >
-       <spacer name="verticalSpacer_4" >
-        <property name="orientation" >
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>138</width>
-          <height>28</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="4" column="0" >
-       <widget class="QLabel" name="TimeStep" >
-        <property name="text" >
-         <string>Time Step</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1" >
-       <widget class="QSpinBox" name="SpinBox_TimeStep" >
-        <property name="minimum" >
-         <number>-2</number>
-        </property>
-        <property name="maximum" >
-         <number>100000</number>
-        </property>
-        <property name="value" >
-         <number>-1</number>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="2" colspan="2" >
-       <spacer name="spacer" >
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType" >
-         <enum>QSizePolicy::Fixed</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>40</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="4" column="4" >
-       <widget class="QLabel" name="Rank" >
-        <property name="text" >
-         <string>Rank</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="5" >
-       <widget class="QSpinBox" name="SpinBox_Rank" >
-        <property name="minimum" >
-         <number>-1</number>
-        </property>
-        <property name="maximum" >
-         <number>1010000</number>
-        </property>
-        <property name="value" >
-         <number>1</number>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="6" colspan="2" >
-       <spacer name="spacer_3" >
-        <property name="orientation" >
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType" >
-         <enum>QSizePolicy::Expanding</enum>
-        </property>
-        <property name="sizeHint" stdset="0" >
-         <size>
-          <width>255</width>
-          <height>13</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
    <item row="7" column="1" >
-    <spacer name="verticalSpacer_2" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>22</height>
      <property name="title" >
       <string>Hypothesis</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3" >
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
       <item row="0" column="0" >
        <widget class="QComboBox" name="CBHypothese" >
         <property name="currentIndex" >
        </widget>
       </item>
       <item row="0" column="1" >
-       <spacer name="spacer_2" >
+       <spacer>
         <property name="orientation" >
          <enum>Qt::Horizontal</enum>
         </property>
         <property name="sizeType" >
          <enum>QSizePolicy::Fixed</enum>
         </property>
-        <property name="sizeHint" stdset="0" >
+        <property name="sizeHint" >
          <size>
           <width>40</width>
           <height>13</height>
      </layout>
     </widget>
    </item>
-   <item row="9" column="0" colspan="2" >
-    <spacer name="verticalSpacer_5" >
+   <item row="9" column="0" >
+    <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
        <width>20</width>
        <height>21</height>
      <property name="title" >
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout_4" >
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
       <item row="0" column="0" >
        <widget class="QPushButton" name="buttonOk" >
         <property name="text" >
-         <string>&amp;Ok</string>
+         <string>OK</string>
         </property>
         <property name="autoDefault" >
          <bool>false</bool>
       <item row="0" column="1" >
        <widget class="QPushButton" name="buttonApply" >
         <property name="text" >
-         <string>&amp;Apply</string>
+         <string>Apply</string>
         </property>
        </widget>
       </item>
       <item row="0" column="2" >
        <widget class="QPushButton" name="buttonCancel" >
         <property name="text" >
-         <string>&amp;Cancel</string>
+         <string>Cancel</string>
         </property>
        </widget>
       </item>
       <item row="0" column="3" >
        <widget class="QPushButton" name="buttonHelp" >
         <property name="text" >
-         <string>&amp;Help</string>
+         <string>Help</string>
         </property>
        </widget>
       </item>
index cf645bcd4a9f9b227268a3be4879e51227dd181a..f57ebc20c4792fddc909c95867d3dd760724eac9 100644 (file)
@@ -1,8 +1,8 @@
 /********************************************************************************
 ** Form generated from reading ui file 'CreateListGroup.ui'
 **
-** Created: Thu Nov 18 16:31:34 2010
-**      by: Qt User Interface Compiler version 4.5.2
+** Created: Thu Sep 1 16:35:32 2011
+**      by: Qt User Interface Compiler version 4.2.1
 **
 ** WARNING! All changes made in this file will be lost when recompiling ui file!
 ********************************************************************************/
 #include <QtGui/QDialog>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
-#include <QtGui/QHeaderView>
 #include <QtGui/QPushButton>
 #include <QtGui/QTableWidget>
 
-QT_BEGIN_NAMESPACE
-
 class Ui_CreateListGroup
 {
 public:
     QGridLayout *gridLayout;
-    QGroupBox *GBOptions;
-    QGridLayout *gridLayout_7;
-    QTableWidget *TWGroupe;
     QGroupBox *GBButtons;
-    QGridLayout *gridLayout_5;
-    QPushButton *buttonOk;
-    QPushButton *buttonApply;
-    QPushButton *buttonCancel;
+    QGridLayout *gridLayout1;
     QPushButton *buttonHelp;
+    QPushButton *buttonCancel;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
+    QGroupBox *GBOptions;
+    QGridLayout *gridLayout2;
+    QTableWidget *TWGroupe;
 
     void setupUi(QDialog *CreateListGroup)
     {
-        if (CreateListGroup->objectName().isEmpty())
-            CreateListGroup->setObjectName(QString::fromUtf8("CreateListGroup"));
-        CreateListGroup->resize(717, 600);
-        QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-        sizePolicy.setHorizontalStretch(0);
-        sizePolicy.setVerticalStretch(0);
-        sizePolicy.setHeightForWidth(CreateListGroup->sizePolicy().hasHeightForWidth());
-        CreateListGroup->setSizePolicy(sizePolicy);
-        CreateListGroup->setAutoFillBackground(false);
-        CreateListGroup->setSizeGripEnabled(true);
-        gridLayout = new QGridLayout(CreateListGroup);
-        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        GBOptions = new QGroupBox(CreateListGroup);
-        GBOptions->setObjectName(QString::fromUtf8("GBOptions"));
-        gridLayout_7 = new QGridLayout(GBOptions);
-        gridLayout_7->setObjectName(QString::fromUtf8("gridLayout_7"));
-        TWGroupe = new QTableWidget(GBOptions);
-        if (TWGroupe->columnCount() < 2)
-            TWGroupe->setColumnCount(2);
-        QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
-        TWGroupe->setHorizontalHeaderItem(0, __qtablewidgetitem);
-        QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem();
-        TWGroupe->setHorizontalHeaderItem(1, __qtablewidgetitem1);
-        TWGroupe->setObjectName(QString::fromUtf8("TWGroupe"));
-        TWGroupe->setShowGrid(true);
-        TWGroupe->setRowCount(0);
-        TWGroupe->setColumnCount(2);
+    CreateListGroup->setObjectName(QString::fromUtf8("CreateListGroup"));
+    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy.setHorizontalStretch(0);
+    sizePolicy.setVerticalStretch(0);
+    sizePolicy.setHeightForWidth(CreateListGroup->sizePolicy().hasHeightForWidth());
+    CreateListGroup->setSizePolicy(sizePolicy);
+    CreateListGroup->setAutoFillBackground(true);
+    CreateListGroup->setSizeGripEnabled(true);
+    gridLayout = new QGridLayout(CreateListGroup);
+    gridLayout->setSpacing(6);
+    gridLayout->setMargin(9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+    GBButtons = new QGroupBox(CreateListGroup);
+    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+    gridLayout1 = new QGridLayout(GBButtons);
+    gridLayout1->setSpacing(6);
+    gridLayout1->setMargin(9);
+    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+    buttonHelp = new QPushButton(GBButtons);
+    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+
+    gridLayout1->addWidget(buttonHelp, 0, 3, 1, 1);
+
+    buttonCancel = new QPushButton(GBButtons);
+    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
 
-        gridLayout_7->addWidget(TWGroupe, 0, 0, 1, 1);
+    gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
 
+    buttonApply = new QPushButton(GBButtons);
+    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-        gridLayout->addWidget(GBOptions, 0, 0, 1, 1);
+    gridLayout1->addWidget(buttonApply, 0, 1, 1, 1);
 
-        GBButtons = new QGroupBox(CreateListGroup);
-        GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-        gridLayout_5 = new QGridLayout(GBButtons);
-        gridLayout_5->setObjectName(QString::fromUtf8("gridLayout_5"));
-        buttonOk = new QPushButton(GBButtons);
-        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+    buttonOk = new QPushButton(GBButtons);
+    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
 
-        gridLayout_5->addWidget(buttonOk, 0, 0, 1, 1);
+    gridLayout1->addWidget(buttonOk, 0, 0, 1, 1);
 
-        buttonApply = new QPushButton(GBButtons);
-        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
 
-        gridLayout_5->addWidget(buttonApply, 0, 1, 1, 1);
+    gridLayout->addWidget(GBButtons, 1, 0, 1, 1);
 
-        buttonCancel = new QPushButton(GBButtons);
-        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+    GBOptions = new QGroupBox(CreateListGroup);
+    GBOptions->setObjectName(QString::fromUtf8("GBOptions"));
+    gridLayout2 = new QGridLayout(GBOptions);
+    gridLayout2->setSpacing(6);
+    gridLayout2->setMargin(9);
+    gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+    TWGroupe = new QTableWidget(GBOptions);
+    TWGroupe->setObjectName(QString::fromUtf8("TWGroupe"));
+    TWGroupe->setShowGrid(true);
+    TWGroupe->setRowCount(0);
+    TWGroupe->setColumnCount(2);
 
-        gridLayout_5->addWidget(buttonCancel, 0, 2, 1, 1);
+    gridLayout2->addWidget(TWGroupe, 0, 0, 1, 1);
 
-        buttonHelp = new QPushButton(GBButtons);
-        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
 
-        gridLayout_5->addWidget(buttonHelp, 0, 3, 1, 1);
+    gridLayout->addWidget(GBOptions, 0, 0, 1, 1);
 
 
-        gridLayout->addWidget(GBButtons, 1, 0, 1, 1);
+    retranslateUi(CreateListGroup);
 
+    QSize size(717, 600);
+    size = size.expandedTo(CreateListGroup->minimumSizeHint());
+    CreateListGroup->resize(size);
 
-        retranslateUi(CreateListGroup);
 
-        QMetaObject::connectSlotsByName(CreateListGroup);
+    QMetaObject::connectSlotsByName(CreateListGroup);
     } // setupUi
 
     void retranslateUi(QDialog *CreateListGroup)
     {
-        CreateListGroup->setWindowTitle(QApplication::translate("CreateListGroup", "Create Hypothesis - Group selection", 0, QApplication::UnicodeUTF8));
-        GBOptions->setTitle(QApplication::translate("CreateListGroup", "Selected groups", 0, QApplication::UnicodeUTF8));
-        QTableWidgetItem *___qtablewidgetitem = TWGroupe->horizontalHeaderItem(0);
-        ___qtablewidgetitem->setText(QApplication::translate("CreateListGroup", "Selection", 0, QApplication::UnicodeUTF8));
-        QTableWidgetItem *___qtablewidgetitem1 = TWGroupe->horizontalHeaderItem(1);
-        ___qtablewidgetitem1->setText(QApplication::translate("CreateListGroup", "Group", 0, QApplication::UnicodeUTF8));
-        GBButtons->setTitle(QString());
-        buttonOk->setText(QApplication::translate("CreateListGroup", "&Ok", 0, QApplication::UnicodeUTF8));
-        buttonApply->setText(QApplication::translate("CreateListGroup", "&Apply", 0, QApplication::UnicodeUTF8));
-        buttonCancel->setText(QApplication::translate("CreateListGroup", "&Cancel", 0, QApplication::UnicodeUTF8));
-        buttonHelp->setText(QApplication::translate("CreateListGroup", "&Help", 0, QApplication::UnicodeUTF8));
-        Q_UNUSED(CreateListGroup);
+    CreateListGroup->setWindowTitle(QApplication::translate("CreateListGroup", "Selection of groups", 0, QApplication::UnicodeUTF8));
+    GBButtons->setTitle(QString());
+    buttonHelp->setText(QApplication::translate("CreateListGroup", "Help", 0, QApplication::UnicodeUTF8));
+    buttonCancel->setText(QApplication::translate("CreateListGroup", "Cancel", 0, QApplication::UnicodeUTF8));
+    buttonApply->setText(QApplication::translate("CreateListGroup", "Apply", 0, QApplication::UnicodeUTF8));
+    buttonOk->setText(QApplication::translate("CreateListGroup", "OK", 0, QApplication::UnicodeUTF8));
+    GBOptions->setTitle(QApplication::translate("CreateListGroup", "Selected groups", 0, QApplication::UnicodeUTF8));
+    if (TWGroupe->columnCount() < 2)
+        TWGroupe->setColumnCount(2);
+
+    QTableWidgetItem *__colItem = new QTableWidgetItem();
+    __colItem->setText(QApplication::translate("CreateListGroup", "Selection", 0, QApplication::UnicodeUTF8));
+    TWGroupe->setHorizontalHeaderItem(0, __colItem);
+
+    QTableWidgetItem *__colItem1 = new QTableWidgetItem();
+    __colItem1->setText(QApplication::translate("CreateListGroup", "Group", 0, QApplication::UnicodeUTF8));
+    TWGroupe->setHorizontalHeaderItem(1, __colItem1);
+    Q_UNUSED(CreateListGroup);
     } // retranslateUi
 
 };
@@ -127,6 +133,4 @@ namespace Ui {
     class CreateListGroup: public Ui_CreateListGroup {};
 } // namespace Ui
 
-QT_END_NAMESPACE
-
 #endif // CREATELISTGROUP_H
index f496638b986e223490b862ded829b68a103b34df..06c60611064b3255c127e02cd317c330e36067bb 100644 (file)
    </rect>
   </property>
   <property name="sizePolicy" >
-   <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+   <sizepolicy>
+    <hsizetype>0</hsizetype>
+    <vsizetype>0</vsizetype>
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="windowTitle" >
-   <string>Create Hypothesis - Group selection</string>
+   <string>Selection of groups</string>
   </property>
   <property name="autoFillBackground" >
-   <bool>false</bool>
+   <bool>true</bool>
   </property>
   <property name="sizeGripEnabled" >
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout" >
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="1" column="0" >
+    <widget class="QGroupBox" name="GBButtons" >
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="3" >
+       <widget class="QPushButton" name="buttonHelp" >
+        <property name="text" >
+         <string>Help</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QPushButton" name="buttonCancel" >
+        <property name="text" >
+         <string>Cancel</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="buttonApply" >
+        <property name="text" >
+         <string>Apply</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QPushButton" name="buttonOk" >
+        <property name="text" >
+         <string>OK</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
    <item row="0" column="0" >
     <widget class="QGroupBox" name="GBOptions" >
      <property name="title" >
       <string>Selected groups</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_7" >
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
       <item row="0" column="0" >
        <widget class="QTableWidget" name="TWGroupe" >
         <property name="showGrid" >
      </layout>
     </widget>
    </item>
-   <item row="1" column="0" >
-    <widget class="QGroupBox" name="GBButtons" >
-     <property name="title" >
-      <string/>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_5" >
-      <item row="0" column="0" >
-       <widget class="QPushButton" name="buttonOk" >
-        <property name="text" >
-         <string>&amp;Ok</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonApply" >
-        <property name="text" >
-         <string>&amp;Apply</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonCancel" >
-        <property name="text" >
-         <string>&amp;Cancel</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="3" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>&amp;Help</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
   </layout>
  </widget>
  <resources/>
index bce2565eef7a2064dd361a6fe91c1beccd552392..70b1d125aa431b5863bcbfdc7e1f927d0ca08119 100644 (file)
@@ -1,8 +1,8 @@
 /********************************************************************************
 ** Form generated from reading ui file 'CreateZone.ui'
 **
-** Created: Mon Sep 27 14:45:47 2010
-**      by: Qt User Interface Compiler version 4.5.2
+** Created: Thu Sep 1 13:03:50 2011
+**      by: Qt User Interface Compiler version 4.2.1
 **
 ** WARNING! All changes made in this file will be lost when recompiling ui file!
 ********************************************************************************/
 #include <QtGui/QDoubleSpinBox>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
-#include <QtGui/QHBoxLayout>
-#include <QtGui/QHeaderView>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
 #include <QtGui/QPushButton>
 #include <QtGui/QRadioButton>
 
-QT_BEGIN_NAMESPACE
-
 class Ui_CreateZone
 {
 public:
-    QGridLayout *gridLayout_3;
-    QLabel *Name;
-    QLineEdit *LEZoneName;
+    QGridLayout *gridLayout;
+    QGroupBox *GBButtons;
+    QGridLayout *gridLayout1;
+    QPushButton *buttonHelp;
+    QPushButton *buttonCancel;
+    QPushButton *buttonApply;
+    QPushButton *buttonOk;
     QGroupBox *TypeZone;
-    QHBoxLayout *horizontalLayout;
-    QRadioButton *RBBox;
+    QGridLayout *gridLayout2;
     QRadioButton *RBSphere;
+    QRadioButton *RBPipe;
+    QRadioButton *RBCylinder;
+    QRadioButton *RBBox;
+    QGroupBox *gBCylindre;
+    QGridLayout *gridLayout3;
+    QDoubleSpinBox *SpinBox_Haut;
+    QLabel *TLHaut;
+    QLabel *TLRadius;
+    QDoubleSpinBox *SpinBox_Xaxis;
+    QDoubleSpinBox *SpinBox_Yaxis;
+    QDoubleSpinBox *SpinBox_Zaxis;
+    QLabel *TLZaxis;
+    QLabel *TLYaxis;
+    QLabel *TLXaxis;
+    QDoubleSpinBox *SpinBox_Ybase;
+    QLabel *TLYbase;
+    QLabel *TLZbase;
+    QDoubleSpinBox *SpinBox_Zbase;
+    QDoubleSpinBox *SpinBox_Radius;
+    QLabel *TLXbase;
+    QDoubleSpinBox *SpinBox_Xbase;
+    QGroupBox *gBSphere;
+    QGridLayout *gridLayout4;
+    QLabel *TLXcentre;
+    QDoubleSpinBox *SpinBox_Xcentre;
+    QLabel *TLYcentre;
+    QDoubleSpinBox *SpinBox_Ycentre;
+    QLabel *TLRayon;
+    QDoubleSpinBox *SpinBox_Rayon;
+    QLabel *TLZcentre;
+    QDoubleSpinBox *SpinBox_Zcentre;
     QGroupBox *gBBox;
-    QGridLayout *gridLayout;
+    QGridLayout *gridLayout5;
     QLabel *TLXmini;
     QDoubleSpinBox *SpinBox_Xmini;
     QLabel *TLYmini;
@@ -51,328 +81,768 @@ public:
     QLabel *TLYmaxi;
     QDoubleSpinBox *SpinBox_Xmaxi;
     QDoubleSpinBox *SpinBox_Ymaxi;
-    QGroupBox *gBSphere;
-    QGridLayout *gridLayout_2;
-    QLabel *TLXcentre;
-    QDoubleSpinBox *SpinBox_Xcentre;
-    QLabel *TLYcentre;
-    QDoubleSpinBox *SpinBox_Ycentre;
-    QLabel *TLRayon;
-    QDoubleSpinBox *SpinBox_Rayon;
-    QLabel *TLZcentre;
-    QDoubleSpinBox *SpinBox_Zcentre;
-    QGroupBox *GBButtons;
-    QHBoxLayout *hboxLayout;
-    QPushButton *buttonOk;
-    QPushButton *buttonApply;
-    QPushButton *buttonCancel;
-    QPushButton *buttonHelp;
+    QLineEdit *LEZoneName;
+    QLabel *Name;
+    QGroupBox *gBPipe;
+    QGridLayout *gridLayout6;
+    QLabel *TLHaut_p;
+    QDoubleSpinBox *SpinBox_Xbase_p;
+    QLabel *TLXbase_p;
+    QDoubleSpinBox *SpinBox_Radius_int;
+    QDoubleSpinBox *SpinBox_Zbase_p;
+    QLabel *TLRadius_int;
+    QLabel *TLZbase_p;
+    QLabel *TLYbase_p;
+    QDoubleSpinBox *SpinBox_Ybase_p;
+    QLabel *TLXaxis_p;
+    QLabel *TLYaxis_p;
+    QLabel *TLZaxis_p;
+    QDoubleSpinBox *SpinBox_Zaxis_p;
+    QDoubleSpinBox *SpinBox_Yaxis_p;
+    QDoubleSpinBox *SpinBox_Xaxis_p;
+    QDoubleSpinBox *SpinBox_Radius_ext;
+    QLabel *TLRadius_ext;
+    QDoubleSpinBox *SpinBox_Haut_p;
 
     void setupUi(QDialog *CreateZone)
     {
-        if (CreateZone->objectName().isEmpty())
-            CreateZone->setObjectName(QString::fromUtf8("CreateZone"));
-        CreateZone->resize(415, 472);
-        CreateZone->setAutoFillBackground(false);
-        CreateZone->setSizeGripEnabled(true);
-        gridLayout_3 = new QGridLayout(CreateZone);
-        gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-        Name = new QLabel(CreateZone);
-        Name->setObjectName(QString::fromUtf8("Name"));
-
-        gridLayout_3->addWidget(Name, 0, 0, 1, 1);
-
-        LEZoneName = new QLineEdit(CreateZone);
-        LEZoneName->setObjectName(QString::fromUtf8("LEZoneName"));
-        LEZoneName->setMaxLength(32);
-
-        gridLayout_3->addWidget(LEZoneName, 0, 1, 1, 1);
-
-        TypeZone = new QGroupBox(CreateZone);
-        TypeZone->setObjectName(QString::fromUtf8("TypeZone"));
-        QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-        sizePolicy.setHorizontalStretch(0);
-        sizePolicy.setVerticalStretch(0);
-        sizePolicy.setHeightForWidth(TypeZone->sizePolicy().hasHeightForWidth());
-        TypeZone->setSizePolicy(sizePolicy);
-        TypeZone->setMinimumSize(QSize(340, 0));
-        horizontalLayout = new QHBoxLayout(TypeZone);
-        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
-        RBBox = new QRadioButton(TypeZone);
-        RBBox->setObjectName(QString::fromUtf8("RBBox"));
-        QIcon icon;
-        icon.addFile(QString::fromUtf8("../../resources/zone_boxdxyz.png"), QSize(), QIcon::Normal, QIcon::Off);
-        RBBox->setIcon(icon);
-        RBBox->setCheckable(true);
-        RBBox->setChecked(true);
-
-        horizontalLayout->addWidget(RBBox);
-
-        RBSphere = new QRadioButton(TypeZone);
-        RBSphere->setObjectName(QString::fromUtf8("RBSphere"));
-        QIcon icon1;
-        icon1.addFile(QString::fromUtf8("../../resources/zone_spherepoint.png"), QSize(), QIcon::Normal, QIcon::Off);
-        RBSphere->setIcon(icon1);
-
-        horizontalLayout->addWidget(RBSphere);
-
-
-        gridLayout_3->addWidget(TypeZone, 1, 0, 1, 2);
-
-        gBBox = new QGroupBox(CreateZone);
-        gBBox->setObjectName(QString::fromUtf8("gBBox"));
-        sizePolicy.setHeightForWidth(gBBox->sizePolicy().hasHeightForWidth());
-        gBBox->setSizePolicy(sizePolicy);
-        gridLayout = new QGridLayout(gBBox);
-        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        TLXmini = new QLabel(gBBox);
-        TLXmini->setObjectName(QString::fromUtf8("TLXmini"));
-        sizePolicy.setHeightForWidth(TLXmini->sizePolicy().hasHeightForWidth());
-        TLXmini->setSizePolicy(sizePolicy);
-        TLXmini->setWordWrap(false);
-
-        gridLayout->addWidget(TLXmini, 0, 0, 1, 1);
-
-        SpinBox_Xmini = new QDoubleSpinBox(gBBox);
-        SpinBox_Xmini->setObjectName(QString::fromUtf8("SpinBox_Xmini"));
-        SpinBox_Xmini->setDecimals(5);
-        SpinBox_Xmini->setMinimum(-1e+09);
-        SpinBox_Xmini->setMaximum(1e+09);
-        SpinBox_Xmini->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Xmini, 0, 1, 1, 1);
-
-        TLYmini = new QLabel(gBBox);
-        TLYmini->setObjectName(QString::fromUtf8("TLYmini"));
-        sizePolicy.setHeightForWidth(TLYmini->sizePolicy().hasHeightForWidth());
-        TLYmini->setSizePolicy(sizePolicy);
-        TLYmini->setWordWrap(false);
-
-        gridLayout->addWidget(TLYmini, 1, 0, 1, 1);
-
-        SpinBox_Ymini = new QDoubleSpinBox(gBBox);
-        SpinBox_Ymini->setObjectName(QString::fromUtf8("SpinBox_Ymini"));
-        SpinBox_Ymini->setDecimals(5);
-        SpinBox_Ymini->setMinimum(-1e+09);
-        SpinBox_Ymini->setMaximum(1e+09);
-        SpinBox_Ymini->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Ymini, 1, 1, 1, 1);
-
-        TLZmini = new QLabel(gBBox);
-        TLZmini->setObjectName(QString::fromUtf8("TLZmini"));
-        sizePolicy.setHeightForWidth(TLZmini->sizePolicy().hasHeightForWidth());
-        TLZmini->setSizePolicy(sizePolicy);
-        TLZmini->setWordWrap(false);
-
-        gridLayout->addWidget(TLZmini, 2, 0, 1, 1);
-
-        SpinBox_Zmini = new QDoubleSpinBox(gBBox);
-        SpinBox_Zmini->setObjectName(QString::fromUtf8("SpinBox_Zmini"));
-        SpinBox_Zmini->setDecimals(5);
-        SpinBox_Zmini->setMinimum(-1e+09);
-        SpinBox_Zmini->setMaximum(1e+09);
-        SpinBox_Zmini->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Zmini, 2, 1, 1, 1);
-
-        TLXmaxi = new QLabel(gBBox);
-        TLXmaxi->setObjectName(QString::fromUtf8("TLXmaxi"));
-        sizePolicy.setHeightForWidth(TLXmaxi->sizePolicy().hasHeightForWidth());
-        TLXmaxi->setSizePolicy(sizePolicy);
-        TLXmaxi->setWordWrap(false);
-
-        gridLayout->addWidget(TLXmaxi, 0, 2, 1, 1);
-
-        TLZmaxi = new QLabel(gBBox);
-        TLZmaxi->setObjectName(QString::fromUtf8("TLZmaxi"));
-        sizePolicy.setHeightForWidth(TLZmaxi->sizePolicy().hasHeightForWidth());
-        TLZmaxi->setSizePolicy(sizePolicy);
-        TLZmaxi->setWordWrap(false);
-
-        gridLayout->addWidget(TLZmaxi, 2, 2, 1, 1);
-
-        SpinBox_Zmaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Zmaxi->setObjectName(QString::fromUtf8("SpinBox_Zmaxi"));
-        SpinBox_Zmaxi->setDecimals(5);
-        SpinBox_Zmaxi->setMinimum(-1e+09);
-        SpinBox_Zmaxi->setMaximum(1e+09);
-        SpinBox_Zmaxi->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Zmaxi, 2, 3, 1, 1);
-
-        TLYmaxi = new QLabel(gBBox);
-        TLYmaxi->setObjectName(QString::fromUtf8("TLYmaxi"));
-        sizePolicy.setHeightForWidth(TLYmaxi->sizePolicy().hasHeightForWidth());
-        TLYmaxi->setSizePolicy(sizePolicy);
-        TLYmaxi->setWordWrap(false);
-
-        gridLayout->addWidget(TLYmaxi, 1, 2, 1, 1);
-
-        SpinBox_Xmaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Xmaxi->setObjectName(QString::fromUtf8("SpinBox_Xmaxi"));
-        SpinBox_Xmaxi->setDecimals(5);
-        SpinBox_Xmaxi->setMinimum(-1e+09);
-        SpinBox_Xmaxi->setMaximum(1e+09);
-        SpinBox_Xmaxi->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Xmaxi, 0, 3, 1, 1);
-
-        SpinBox_Ymaxi = new QDoubleSpinBox(gBBox);
-        SpinBox_Ymaxi->setObjectName(QString::fromUtf8("SpinBox_Ymaxi"));
-        SpinBox_Ymaxi->setDecimals(5);
-        SpinBox_Ymaxi->setMinimum(-1e+09);
-        SpinBox_Ymaxi->setMaximum(1e+09);
-        SpinBox_Ymaxi->setValue(0);
-
-        gridLayout->addWidget(SpinBox_Ymaxi, 1, 3, 1, 1);
-
-
-        gridLayout_3->addWidget(gBBox, 2, 0, 1, 2);
-
-        gBSphere = new QGroupBox(CreateZone);
-        gBSphere->setObjectName(QString::fromUtf8("gBSphere"));
-        sizePolicy.setHeightForWidth(gBSphere->sizePolicy().hasHeightForWidth());
-        gBSphere->setSizePolicy(sizePolicy);
-        gridLayout_2 = new QGridLayout(gBSphere);
-        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-        TLXcentre = new QLabel(gBSphere);
-        TLXcentre->setObjectName(QString::fromUtf8("TLXcentre"));
-        sizePolicy.setHeightForWidth(TLXcentre->sizePolicy().hasHeightForWidth());
-        TLXcentre->setSizePolicy(sizePolicy);
-        TLXcentre->setWordWrap(false);
-
-        gridLayout_2->addWidget(TLXcentre, 0, 0, 1, 1);
-
-        SpinBox_Xcentre = new QDoubleSpinBox(gBSphere);
-        SpinBox_Xcentre->setObjectName(QString::fromUtf8("SpinBox_Xcentre"));
-        SpinBox_Xcentre->setDecimals(5);
-        SpinBox_Xcentre->setMinimum(-1e+09);
-        SpinBox_Xcentre->setMaximum(1e+09);
-        SpinBox_Xcentre->setValue(0);
-
-        gridLayout_2->addWidget(SpinBox_Xcentre, 0, 1, 1, 1);
-
-        TLYcentre = new QLabel(gBSphere);
-        TLYcentre->setObjectName(QString::fromUtf8("TLYcentre"));
-        sizePolicy.setHeightForWidth(TLYcentre->sizePolicy().hasHeightForWidth());
-        TLYcentre->setSizePolicy(sizePolicy);
-        TLYcentre->setWordWrap(false);
-
-        gridLayout_2->addWidget(TLYcentre, 1, 0, 1, 1);
-
-        SpinBox_Ycentre = new QDoubleSpinBox(gBSphere);
-        SpinBox_Ycentre->setObjectName(QString::fromUtf8("SpinBox_Ycentre"));
-        SpinBox_Ycentre->setDecimals(5);
-        SpinBox_Ycentre->setMinimum(-1e+09);
-        SpinBox_Ycentre->setMaximum(1e+09);
-        SpinBox_Ycentre->setValue(0);
+    CreateZone->setObjectName(QString::fromUtf8("CreateZone"));
+    CreateZone->setAutoFillBackground(true);
+    CreateZone->setSizeGripEnabled(true);
+    gridLayout = new QGridLayout(CreateZone);
+    gridLayout->setSpacing(6);
+    gridLayout->setMargin(9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+    GBButtons = new QGroupBox(CreateZone);
+    GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
+    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy.setHorizontalStretch(0);
+    sizePolicy.setVerticalStretch(0);
+    sizePolicy.setHeightForWidth(GBButtons->sizePolicy().hasHeightForWidth());
+    GBButtons->setSizePolicy(sizePolicy);
+    gridLayout1 = new QGridLayout(GBButtons);
+    gridLayout1->setSpacing(6);
+    gridLayout1->setMargin(9);
+    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+    buttonHelp = new QPushButton(GBButtons);
+    buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+
+    gridLayout1->addWidget(buttonHelp, 0, 3, 1, 1);
+
+    buttonCancel = new QPushButton(GBButtons);
+    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
+
+    gridLayout1->addWidget(buttonCancel, 0, 2, 1, 1);
+
+    buttonApply = new QPushButton(GBButtons);
+    buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
+
+    gridLayout1->addWidget(buttonApply, 0, 1, 1, 1);
+
+    buttonOk = new QPushButton(GBButtons);
+    buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
+
+    gridLayout1->addWidget(buttonOk, 0, 0, 1, 1);
+
+
+    gridLayout->addWidget(GBButtons, 6, 0, 1, 2);
+
+    TypeZone = new QGroupBox(CreateZone);
+    TypeZone->setObjectName(QString::fromUtf8("TypeZone"));
+    QSizePolicy sizePolicy1(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy1.setHorizontalStretch(0);
+    sizePolicy1.setVerticalStretch(0);
+    sizePolicy1.setHeightForWidth(TypeZone->sizePolicy().hasHeightForWidth());
+    TypeZone->setSizePolicy(sizePolicy1);
+    TypeZone->setMinimumSize(QSize(340, 0));
+    gridLayout2 = new QGridLayout(TypeZone);
+    gridLayout2->setSpacing(6);
+    gridLayout2->setMargin(9);
+    gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
+    RBSphere = new QRadioButton(TypeZone);
+    RBSphere->setObjectName(QString::fromUtf8("RBSphere"));
+    RBSphere->setIcon(QIcon(QString::fromUtf8("../../resources/zone_spherepoint.png")));
+
+    gridLayout2->addWidget(RBSphere, 0, 3, 1, 1);
+
+    RBPipe = new QRadioButton(TypeZone);
+    RBPipe->setObjectName(QString::fromUtf8("RBPipe"));
+    RBPipe->setIcon(QIcon(QString::fromUtf8("../../resources/pipe.png")));
+
+    gridLayout2->addWidget(RBPipe, 0, 2, 1, 1);
+
+    RBCylinder = new QRadioButton(TypeZone);
+    RBCylinder->setObjectName(QString::fromUtf8("RBCylinder"));
+    RBCylinder->setIcon(QIcon(QString::fromUtf8("../../resources/cylinderpointvector.png")));
+
+    gridLayout2->addWidget(RBCylinder, 0, 1, 1, 1);
+
+    RBBox = new QRadioButton(TypeZone);
+    RBBox->setObjectName(QString::fromUtf8("RBBox"));
+    RBBox->setIcon(QIcon(QString::fromUtf8("../../resources/zone_boxdxyz.png")));
+    RBBox->setCheckable(true);
+    RBBox->setChecked(true);
+
+    gridLayout2->addWidget(RBBox, 0, 0, 1, 1);
+
+
+    gridLayout->addWidget(TypeZone, 1, 0, 1, 2);
+
+    gBCylindre = new QGroupBox(CreateZone);
+    gBCylindre->setObjectName(QString::fromUtf8("gBCylindre"));
+    QSizePolicy sizePolicy2(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy2.setHorizontalStretch(0);
+    sizePolicy2.setVerticalStretch(0);
+    sizePolicy2.setHeightForWidth(gBCylindre->sizePolicy().hasHeightForWidth());
+    gBCylindre->setSizePolicy(sizePolicy2);
+    gBCylindre->setFocusPolicy(Qt::TabFocus);
+    gridLayout3 = new QGridLayout(gBCylindre);
+    gridLayout3->setSpacing(6);
+    gridLayout3->setMargin(9);
+    gridLayout3->setObjectName(QString::fromUtf8("gridLayout3"));
+    SpinBox_Haut = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Haut->setObjectName(QString::fromUtf8("SpinBox_Haut"));
+    SpinBox_Haut->setDecimals(5);
+    SpinBox_Haut->setMaximum(1e+09);
+
+    gridLayout3->addWidget(SpinBox_Haut, 4, 1, 1, 1);
+
+    TLHaut = new QLabel(gBCylindre);
+    TLHaut->setObjectName(QString::fromUtf8("TLHaut"));
+    QSizePolicy sizePolicy3(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy3.setHorizontalStretch(0);
+    sizePolicy3.setVerticalStretch(0);
+    sizePolicy3.setHeightForWidth(TLHaut->sizePolicy().hasHeightForWidth());
+    TLHaut->setSizePolicy(sizePolicy3);
+    TLHaut->setWordWrap(false);
+
+    gridLayout3->addWidget(TLHaut, 4, 0, 1, 1);
+
+    TLRadius = new QLabel(gBCylindre);
+    TLRadius->setObjectName(QString::fromUtf8("TLRadius"));
+    QSizePolicy sizePolicy4(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy4.setHorizontalStretch(0);
+    sizePolicy4.setVerticalStretch(0);
+    sizePolicy4.setHeightForWidth(TLRadius->sizePolicy().hasHeightForWidth());
+    TLRadius->setSizePolicy(sizePolicy4);
+    TLRadius->setWordWrap(false);
+
+    gridLayout3->addWidget(TLRadius, 3, 0, 1, 1);
+
+    SpinBox_Xaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Xaxis->setObjectName(QString::fromUtf8("SpinBox_Xaxis"));
+    SpinBox_Xaxis->setDecimals(5);
+    SpinBox_Xaxis->setMaximum(1e+09);
+    SpinBox_Xaxis->setMinimum(-1e+09);
+    SpinBox_Xaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Xaxis, 0, 3, 1, 1);
+
+    SpinBox_Yaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Yaxis->setObjectName(QString::fromUtf8("SpinBox_Yaxis"));
+    SpinBox_Yaxis->setDecimals(5);
+    SpinBox_Yaxis->setMaximum(1e+09);
+    SpinBox_Yaxis->setMinimum(-1e+09);
+    SpinBox_Yaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Yaxis, 1, 3, 1, 1);
+
+    SpinBox_Zaxis = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Zaxis->setObjectName(QString::fromUtf8("SpinBox_Zaxis"));
+    SpinBox_Zaxis->setDecimals(5);
+    SpinBox_Zaxis->setMaximum(1e+09);
+    SpinBox_Zaxis->setMinimum(-1e+09);
+    SpinBox_Zaxis->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Zaxis, 2, 3, 1, 1);
+
+    TLZaxis = new QLabel(gBCylindre);
+    TLZaxis->setObjectName(QString::fromUtf8("TLZaxis"));
+    QSizePolicy sizePolicy5(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy5.setHorizontalStretch(0);
+    sizePolicy5.setVerticalStretch(0);
+    sizePolicy5.setHeightForWidth(TLZaxis->sizePolicy().hasHeightForWidth());
+    TLZaxis->setSizePolicy(sizePolicy5);
+    TLZaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLZaxis, 2, 2, 1, 1);
+
+    TLYaxis = new QLabel(gBCylindre);
+    TLYaxis->setObjectName(QString::fromUtf8("TLYaxis"));
+    QSizePolicy sizePolicy6(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy6.setHorizontalStretch(0);
+    sizePolicy6.setVerticalStretch(0);
+    sizePolicy6.setHeightForWidth(TLYaxis->sizePolicy().hasHeightForWidth());
+    TLYaxis->setSizePolicy(sizePolicy6);
+    TLYaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLYaxis, 1, 2, 1, 1);
+
+    TLXaxis = new QLabel(gBCylindre);
+    TLXaxis->setObjectName(QString::fromUtf8("TLXaxis"));
+    QSizePolicy sizePolicy7(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy7.setHorizontalStretch(0);
+    sizePolicy7.setVerticalStretch(0);
+    sizePolicy7.setHeightForWidth(TLXaxis->sizePolicy().hasHeightForWidth());
+    TLXaxis->setSizePolicy(sizePolicy7);
+    TLXaxis->setWordWrap(false);
+
+    gridLayout3->addWidget(TLXaxis, 0, 2, 1, 1);
+
+    SpinBox_Ybase = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Ybase->setObjectName(QString::fromUtf8("SpinBox_Ybase"));
+    SpinBox_Ybase->setDecimals(5);
+    SpinBox_Ybase->setMaximum(1e+09);
+    SpinBox_Ybase->setMinimum(-1e+09);
+    SpinBox_Ybase->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Ybase, 1, 1, 1, 1);
+
+    TLYbase = new QLabel(gBCylindre);
+    TLYbase->setObjectName(QString::fromUtf8("TLYbase"));
+    QSizePolicy sizePolicy8(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy8.setHorizontalStretch(0);
+    sizePolicy8.setVerticalStretch(0);
+    sizePolicy8.setHeightForWidth(TLYbase->sizePolicy().hasHeightForWidth());
+    TLYbase->setSizePolicy(sizePolicy8);
+    TLYbase->setWordWrap(false);
+
+    gridLayout3->addWidget(TLYbase, 1, 0, 1, 1);
+
+    TLZbase = new QLabel(gBCylindre);
+    TLZbase->setObjectName(QString::fromUtf8("TLZbase"));
+    QSizePolicy sizePolicy9(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy9.setHorizontalStretch(0);
+    sizePolicy9.setVerticalStretch(0);
+    sizePolicy9.setHeightForWidth(TLZbase->sizePolicy().hasHeightForWidth());
+    TLZbase->setSizePolicy(sizePolicy9);
+    TLZbase->setWordWrap(false);
+
+    gridLayout3->addWidget(TLZbase, 2, 0, 1, 1);
+
+    SpinBox_Zbase = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Zbase->setObjectName(QString::fromUtf8("SpinBox_Zbase"));
+    SpinBox_Zbase->setDecimals(5);
+    SpinBox_Zbase->setMaximum(1e+09);
+    SpinBox_Zbase->setMinimum(-1e+09);
+    SpinBox_Zbase->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Zbase, 2, 1, 1, 1);
+
+    SpinBox_Radius = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Radius->setObjectName(QString::fromUtf8("SpinBox_Radius"));
+    SpinBox_Radius->setDecimals(5);
+    SpinBox_Radius->setMaximum(1e+09);
+
+    gridLayout3->addWidget(SpinBox_Radius, 3, 1, 1, 1);
+
+    TLXbase = new QLabel(gBCylindre);
+    TLXbase->setObjectName(QString::fromUtf8("TLXbase"));
+    QSizePolicy sizePolicy10(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy10.setHorizontalStretch(0);
+    sizePolicy10.setVerticalStretch(0);
+    sizePolicy10.setHeightForWidth(TLXbase->sizePolicy().hasHeightForWidth());
+    TLXbase->setSizePolicy(sizePolicy10);
+    TLXbase->setWordWrap(false);
+
+    gridLayout3->addWidget(TLXbase, 0, 0, 1, 1);
+
+    SpinBox_Xbase = new QDoubleSpinBox(gBCylindre);
+    SpinBox_Xbase->setObjectName(QString::fromUtf8("SpinBox_Xbase"));
+    SpinBox_Xbase->setDecimals(5);
+    SpinBox_Xbase->setMaximum(1e+09);
+    SpinBox_Xbase->setMinimum(-1e+09);
+    SpinBox_Xbase->setValue(0);
+
+    gridLayout3->addWidget(SpinBox_Xbase, 0, 1, 1, 1);
+
+
+    gridLayout->addWidget(gBCylindre, 4, 0, 1, 2);
+
+    gBSphere = new QGroupBox(CreateZone);
+    gBSphere->setObjectName(QString::fromUtf8("gBSphere"));
+    QSizePolicy sizePolicy11(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy11.setHorizontalStretch(0);
+    sizePolicy11.setVerticalStretch(0);
+    sizePolicy11.setHeightForWidth(gBSphere->sizePolicy().hasHeightForWidth());
+    gBSphere->setSizePolicy(sizePolicy11);
+    gridLayout4 = new QGridLayout(gBSphere);
+    gridLayout4->setSpacing(6);
+    gridLayout4->setMargin(9);
+    gridLayout4->setObjectName(QString::fromUtf8("gridLayout4"));
+    TLXcentre = new QLabel(gBSphere);
+    TLXcentre->setObjectName(QString::fromUtf8("TLXcentre"));
+    QSizePolicy sizePolicy12(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy12.setHorizontalStretch(0);
+    sizePolicy12.setVerticalStretch(0);
+    sizePolicy12.setHeightForWidth(TLXcentre->sizePolicy().hasHeightForWidth());
+    TLXcentre->setSizePolicy(sizePolicy12);
+    TLXcentre->setWordWrap(false);
+
+    gridLayout4->addWidget(TLXcentre, 0, 0, 1, 1);
+
+    SpinBox_Xcentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Xcentre->setObjectName(QString::fromUtf8("SpinBox_Xcentre"));
+    SpinBox_Xcentre->setDecimals(5);
+    SpinBox_Xcentre->setMaximum(1e+09);
+    SpinBox_Xcentre->setMinimum(-1e+09);
+    SpinBox_Xcentre->setValue(0);
+
+    gridLayout4->addWidget(SpinBox_Xcentre, 0, 1, 1, 1);
+
+    TLYcentre = new QLabel(gBSphere);
+    TLYcentre->setObjectName(QString::fromUtf8("TLYcentre"));
+    QSizePolicy sizePolicy13(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy13.setHorizontalStretch(0);
+    sizePolicy13.setVerticalStretch(0);
+    sizePolicy13.setHeightForWidth(TLYcentre->sizePolicy().hasHeightForWidth());
+    TLYcentre->setSizePolicy(sizePolicy13);
+    TLYcentre->setWordWrap(false);
+
+    gridLayout4->addWidget(TLYcentre, 1, 0, 1, 1);
+
+    SpinBox_Ycentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Ycentre->setObjectName(QString::fromUtf8("SpinBox_Ycentre"));
+    SpinBox_Ycentre->setDecimals(5);
+    SpinBox_Ycentre->setMaximum(1e+09);
+    SpinBox_Ycentre->setMinimum(-1e+09);
+    SpinBox_Ycentre->setValue(0);
+
+    gridLayout4->addWidget(SpinBox_Ycentre, 1, 1, 1, 1);
+
+    TLRayon = new QLabel(gBSphere);
+    TLRayon->setObjectName(QString::fromUtf8("TLRayon"));
+    QSizePolicy sizePolicy14(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy14.setHorizontalStretch(0);
+    sizePolicy14.setVerticalStretch(0);
+    sizePolicy14.setHeightForWidth(TLRayon->sizePolicy().hasHeightForWidth());
+    TLRayon->setSizePolicy(sizePolicy14);
+    TLRayon->setWordWrap(false);
+
+    gridLayout4->addWidget(TLRayon, 1, 2, 1, 1);
+
+    SpinBox_Rayon = new QDoubleSpinBox(gBSphere);
+    SpinBox_Rayon->setObjectName(QString::fromUtf8("SpinBox_Rayon"));
+    SpinBox_Rayon->setDecimals(5);
+    SpinBox_Rayon->setMaximum(1e+09);
+    SpinBox_Rayon->setMinimum(-1e+09);
+    SpinBox_Rayon->setValue(0);
+
+    gridLayout4->addWidget(SpinBox_Rayon, 1, 3, 1, 1);
+
+    TLZcentre = new QLabel(gBSphere);
+    TLZcentre->setObjectName(QString::fromUtf8("TLZcentre"));
+    QSizePolicy sizePolicy15(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy15.setHorizontalStretch(0);
+    sizePolicy15.setVerticalStretch(0);
+    sizePolicy15.setHeightForWidth(TLZcentre->sizePolicy().hasHeightForWidth());
+    TLZcentre->setSizePolicy(sizePolicy15);
+    TLZcentre->setWordWrap(false);
+
+    gridLayout4->addWidget(TLZcentre, 2, 0, 1, 1);
+
+    SpinBox_Zcentre = new QDoubleSpinBox(gBSphere);
+    SpinBox_Zcentre->setObjectName(QString::fromUtf8("SpinBox_Zcentre"));
+    SpinBox_Zcentre->setDecimals(5);
+    SpinBox_Zcentre->setMaximum(1e+09);
+    SpinBox_Zcentre->setMinimum(-1e+09);
+    SpinBox_Zcentre->setValue(0);
+
+    gridLayout4->addWidget(SpinBox_Zcentre, 2, 1, 1, 1);
+
+
+    gridLayout->addWidget(gBSphere, 3, 0, 1, 2);
+
+    gBBox = new QGroupBox(CreateZone);
+    gBBox->setObjectName(QString::fromUtf8("gBBox"));
+    QSizePolicy sizePolicy16(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy16.setHorizontalStretch(0);
+    sizePolicy16.setVerticalStretch(0);
+    sizePolicy16.setHeightForWidth(gBBox->sizePolicy().hasHeightForWidth());
+    gBBox->setSizePolicy(sizePolicy16);
+    gridLayout5 = new QGridLayout(gBBox);
+    gridLayout5->setSpacing(6);
+    gridLayout5->setMargin(9);
+    gridLayout5->setObjectName(QString::fromUtf8("gridLayout5"));
+    TLXmini = new QLabel(gBBox);
+    TLXmini->setObjectName(QString::fromUtf8("TLXmini"));
+    QSizePolicy sizePolicy17(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy17.setHorizontalStretch(0);
+    sizePolicy17.setVerticalStretch(0);
+    sizePolicy17.setHeightForWidth(TLXmini->sizePolicy().hasHeightForWidth());
+    TLXmini->setSizePolicy(sizePolicy17);
+    TLXmini->setWordWrap(false);
+
+    gridLayout5->addWidget(TLXmini, 0, 0, 1, 1);
+
+    SpinBox_Xmini = new QDoubleSpinBox(gBBox);
+    SpinBox_Xmini->setObjectName(QString::fromUtf8("SpinBox_Xmini"));
+    SpinBox_Xmini->setDecimals(5);
+    SpinBox_Xmini->setMaximum(1e+09);
+    SpinBox_Xmini->setMinimum(-1e+09);
+    SpinBox_Xmini->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Xmini, 0, 1, 1, 1);
+
+    TLYmini = new QLabel(gBBox);
+    TLYmini->setObjectName(QString::fromUtf8("TLYmini"));
+    QSizePolicy sizePolicy18(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy18.setHorizontalStretch(0);
+    sizePolicy18.setVerticalStretch(0);
+    sizePolicy18.setHeightForWidth(TLYmini->sizePolicy().hasHeightForWidth());
+    TLYmini->setSizePolicy(sizePolicy18);
+    TLYmini->setWordWrap(false);
+
+    gridLayout5->addWidget(TLYmini, 1, 0, 1, 1);
+
+    SpinBox_Ymini = new QDoubleSpinBox(gBBox);
+    SpinBox_Ymini->setObjectName(QString::fromUtf8("SpinBox_Ymini"));
+    SpinBox_Ymini->setDecimals(5);
+    SpinBox_Ymini->setMaximum(1e+09);
+    SpinBox_Ymini->setMinimum(-1e+09);
+    SpinBox_Ymini->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Ymini, 1, 1, 1, 1);
+
+    TLZmini = new QLabel(gBBox);
+    TLZmini->setObjectName(QString::fromUtf8("TLZmini"));
+    QSizePolicy sizePolicy19(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy19.setHorizontalStretch(0);
+    sizePolicy19.setVerticalStretch(0);
+    sizePolicy19.setHeightForWidth(TLZmini->sizePolicy().hasHeightForWidth());
+    TLZmini->setSizePolicy(sizePolicy19);
+    TLZmini->setWordWrap(false);
+
+    gridLayout5->addWidget(TLZmini, 2, 0, 1, 1);
+
+    SpinBox_Zmini = new QDoubleSpinBox(gBBox);
+    SpinBox_Zmini->setObjectName(QString::fromUtf8("SpinBox_Zmini"));
+    SpinBox_Zmini->setDecimals(5);
+    SpinBox_Zmini->setMaximum(1e+09);
+    SpinBox_Zmini->setMinimum(-1e+09);
+    SpinBox_Zmini->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Zmini, 2, 1, 1, 1);
+
+    TLXmaxi = new QLabel(gBBox);
+    TLXmaxi->setObjectName(QString::fromUtf8("TLXmaxi"));
+    QSizePolicy sizePolicy20(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy20.setHorizontalStretch(0);
+    sizePolicy20.setVerticalStretch(0);
+    sizePolicy20.setHeightForWidth(TLXmaxi->sizePolicy().hasHeightForWidth());
+    TLXmaxi->setSizePolicy(sizePolicy20);
+    TLXmaxi->setWordWrap(false);
+
+    gridLayout5->addWidget(TLXmaxi, 0, 2, 1, 1);
+
+    TLZmaxi = new QLabel(gBBox);
+    TLZmaxi->setObjectName(QString::fromUtf8("TLZmaxi"));
+    QSizePolicy sizePolicy21(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy21.setHorizontalStretch(0);
+    sizePolicy21.setVerticalStretch(0);
+    sizePolicy21.setHeightForWidth(TLZmaxi->sizePolicy().hasHeightForWidth());
+    TLZmaxi->setSizePolicy(sizePolicy21);
+    TLZmaxi->setWordWrap(false);
+
+    gridLayout5->addWidget(TLZmaxi, 2, 2, 1, 1);
+
+    SpinBox_Zmaxi = new QDoubleSpinBox(gBBox);
+    SpinBox_Zmaxi->setObjectName(QString::fromUtf8("SpinBox_Zmaxi"));
+    SpinBox_Zmaxi->setDecimals(5);
+    SpinBox_Zmaxi->setMaximum(1e+09);
+    SpinBox_Zmaxi->setMinimum(-1e+09);
+    SpinBox_Zmaxi->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Zmaxi, 2, 3, 1, 1);
+
+    TLYmaxi = new QLabel(gBBox);
+    TLYmaxi->setObjectName(QString::fromUtf8("TLYmaxi"));
+    QSizePolicy sizePolicy22(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy22.setHorizontalStretch(0);
+    sizePolicy22.setVerticalStretch(0);
+    sizePolicy22.setHeightForWidth(TLYmaxi->sizePolicy().hasHeightForWidth());
+    TLYmaxi->setSizePolicy(sizePolicy22);
+    TLYmaxi->setWordWrap(false);
+
+    gridLayout5->addWidget(TLYmaxi, 1, 2, 1, 1);
+
+    SpinBox_Xmaxi = new QDoubleSpinBox(gBBox);
+    SpinBox_Xmaxi->setObjectName(QString::fromUtf8("SpinBox_Xmaxi"));
+    SpinBox_Xmaxi->setDecimals(5);
+    SpinBox_Xmaxi->setMaximum(1e+09);
+    SpinBox_Xmaxi->setMinimum(-1e+09);
+    SpinBox_Xmaxi->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Xmaxi, 0, 3, 1, 1);
+
+    SpinBox_Ymaxi = new QDoubleSpinBox(gBBox);
+    SpinBox_Ymaxi->setObjectName(QString::fromUtf8("SpinBox_Ymaxi"));
+    SpinBox_Ymaxi->setDecimals(5);
+    SpinBox_Ymaxi->setMaximum(1e+09);
+    SpinBox_Ymaxi->setMinimum(-1e+09);
+    SpinBox_Ymaxi->setValue(0);
+
+    gridLayout5->addWidget(SpinBox_Ymaxi, 1, 3, 1, 1);
+
+
+    gridLayout->addWidget(gBBox, 2, 0, 1, 2);
+
+    LEZoneName = new QLineEdit(CreateZone);
+    LEZoneName->setObjectName(QString::fromUtf8("LEZoneName"));
+    LEZoneName->setMaxLength(32);
+
+    gridLayout->addWidget(LEZoneName, 0, 1, 1, 1);
+
+    Name = new QLabel(CreateZone);
+    Name->setObjectName(QString::fromUtf8("Name"));
+
+    gridLayout->addWidget(Name, 0, 0, 1, 1);
+
+    gBPipe = new QGroupBox(CreateZone);
+    gBPipe->setObjectName(QString::fromUtf8("gBPipe"));
+    QSizePolicy sizePolicy23(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy23.setHorizontalStretch(0);
+    sizePolicy23.setVerticalStretch(0);
+    sizePolicy23.setHeightForWidth(gBPipe->sizePolicy().hasHeightForWidth());
+    gBPipe->setSizePolicy(sizePolicy23);
+    gridLayout6 = new QGridLayout(gBPipe);
+    gridLayout6->setSpacing(6);
+    gridLayout6->setMargin(9);
+    gridLayout6->setObjectName(QString::fromUtf8("gridLayout6"));
+    TLHaut_p = new QLabel(gBPipe);
+    TLHaut_p->setObjectName(QString::fromUtf8("TLHaut_p"));
+    QSizePolicy sizePolicy24(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy24.setHorizontalStretch(0);
+    sizePolicy24.setVerticalStretch(0);
+    sizePolicy24.setHeightForWidth(TLHaut_p->sizePolicy().hasHeightForWidth());
+    TLHaut_p->setSizePolicy(sizePolicy24);
+    TLHaut_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLHaut_p, 4, 0, 1, 1);
+
+    SpinBox_Xbase_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Xbase_p->setObjectName(QString::fromUtf8("SpinBox_Xbase_p"));
+    SpinBox_Xbase_p->setDecimals(5);
+    SpinBox_Xbase_p->setMaximum(1e+09);
+    SpinBox_Xbase_p->setMinimum(-1e+09);
+    SpinBox_Xbase_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Xbase_p, 0, 1, 1, 1);
+
+    TLXbase_p = new QLabel(gBPipe);
+    TLXbase_p->setObjectName(QString::fromUtf8("TLXbase_p"));
+    QSizePolicy sizePolicy25(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy25.setHorizontalStretch(0);
+    sizePolicy25.setVerticalStretch(0);
+    sizePolicy25.setHeightForWidth(TLXbase_p->sizePolicy().hasHeightForWidth());
+    TLXbase_p->setSizePolicy(sizePolicy25);
+    TLXbase_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLXbase_p, 0, 0, 1, 1);
+
+    SpinBox_Radius_int = new QDoubleSpinBox(gBPipe);
+    SpinBox_Radius_int->setObjectName(QString::fromUtf8("SpinBox_Radius_int"));
+    SpinBox_Radius_int->setDecimals(5);
+    SpinBox_Radius_int->setMaximum(1e+09);
+
+    gridLayout6->addWidget(SpinBox_Radius_int, 3, 1, 1, 1);
+
+    SpinBox_Zbase_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Zbase_p->setObjectName(QString::fromUtf8("SpinBox_Zbase_p"));
+    SpinBox_Zbase_p->setDecimals(5);
+    SpinBox_Zbase_p->setMaximum(1e+09);
+    SpinBox_Zbase_p->setMinimum(-1e+09);
+    SpinBox_Zbase_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Zbase_p, 2, 1, 1, 1);
+
+    TLRadius_int = new QLabel(gBPipe);
+    TLRadius_int->setObjectName(QString::fromUtf8("TLRadius_int"));
+    QSizePolicy sizePolicy26(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy26.setHorizontalStretch(0);
+    sizePolicy26.setVerticalStretch(0);
+    sizePolicy26.setHeightForWidth(TLRadius_int->sizePolicy().hasHeightForWidth());
+    TLRadius_int->setSizePolicy(sizePolicy26);
+    TLRadius_int->setWordWrap(false);
+
+    gridLayout6->addWidget(TLRadius_int, 3, 0, 1, 1);
+
+    TLZbase_p = new QLabel(gBPipe);
+    TLZbase_p->setObjectName(QString::fromUtf8("TLZbase_p"));
+    QSizePolicy sizePolicy27(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy27.setHorizontalStretch(0);
+    sizePolicy27.setVerticalStretch(0);
+    sizePolicy27.setHeightForWidth(TLZbase_p->sizePolicy().hasHeightForWidth());
+    TLZbase_p->setSizePolicy(sizePolicy27);
+    TLZbase_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLZbase_p, 2, 0, 1, 1);
+
+    TLYbase_p = new QLabel(gBPipe);
+    TLYbase_p->setObjectName(QString::fromUtf8("TLYbase_p"));
+    QSizePolicy sizePolicy28(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy28.setHorizontalStretch(0);
+    sizePolicy28.setVerticalStretch(0);
+    sizePolicy28.setHeightForWidth(TLYbase_p->sizePolicy().hasHeightForWidth());
+    TLYbase_p->setSizePolicy(sizePolicy28);
+    TLYbase_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLYbase_p, 1, 0, 1, 1);
+
+    SpinBox_Ybase_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Ybase_p->setObjectName(QString::fromUtf8("SpinBox_Ybase_p"));
+    SpinBox_Ybase_p->setDecimals(5);
+    SpinBox_Ybase_p->setMaximum(1e+09);
+    SpinBox_Ybase_p->setMinimum(-1e+09);
+    SpinBox_Ybase_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Ybase_p, 1, 1, 1, 1);
+
+    TLXaxis_p = new QLabel(gBPipe);
+    TLXaxis_p->setObjectName(QString::fromUtf8("TLXaxis_p"));
+    QSizePolicy sizePolicy29(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy29.setHorizontalStretch(0);
+    sizePolicy29.setVerticalStretch(0);
+    sizePolicy29.setHeightForWidth(TLXaxis_p->sizePolicy().hasHeightForWidth());
+    TLXaxis_p->setSizePolicy(sizePolicy29);
+    TLXaxis_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLXaxis_p, 0, 2, 1, 1);
+
+    TLYaxis_p = new QLabel(gBPipe);
+    TLYaxis_p->setObjectName(QString::fromUtf8("TLYaxis_p"));
+    QSizePolicy sizePolicy30(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy30.setHorizontalStretch(0);
+    sizePolicy30.setVerticalStretch(0);
+    sizePolicy30.setHeightForWidth(TLYaxis_p->sizePolicy().hasHeightForWidth());
+    TLYaxis_p->setSizePolicy(sizePolicy30);
+    TLYaxis_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLYaxis_p, 1, 2, 1, 1);
+
+    TLZaxis_p = new QLabel(gBPipe);
+    TLZaxis_p->setObjectName(QString::fromUtf8("TLZaxis_p"));
+    QSizePolicy sizePolicy31(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy31.setHorizontalStretch(0);
+    sizePolicy31.setVerticalStretch(0);
+    sizePolicy31.setHeightForWidth(TLZaxis_p->sizePolicy().hasHeightForWidth());
+    TLZaxis_p->setSizePolicy(sizePolicy31);
+    TLZaxis_p->setWordWrap(false);
+
+    gridLayout6->addWidget(TLZaxis_p, 2, 2, 1, 1);
+
+    SpinBox_Zaxis_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Zaxis_p->setObjectName(QString::fromUtf8("SpinBox_Zaxis_p"));
+    SpinBox_Zaxis_p->setDecimals(5);
+    SpinBox_Zaxis_p->setMaximum(1e+09);
+    SpinBox_Zaxis_p->setMinimum(-1e+09);
+    SpinBox_Zaxis_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Zaxis_p, 2, 3, 1, 1);
+
+    SpinBox_Yaxis_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Yaxis_p->setObjectName(QString::fromUtf8("SpinBox_Yaxis_p"));
+    SpinBox_Yaxis_p->setDecimals(5);
+    SpinBox_Yaxis_p->setMaximum(1e+09);
+    SpinBox_Yaxis_p->setMinimum(-1e+09);
+    SpinBox_Yaxis_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Yaxis_p, 1, 3, 1, 1);
+
+    SpinBox_Xaxis_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Xaxis_p->setObjectName(QString::fromUtf8("SpinBox_Xaxis_p"));
+    SpinBox_Xaxis_p->setDecimals(5);
+    SpinBox_Xaxis_p->setMaximum(1e+09);
+    SpinBox_Xaxis_p->setMinimum(-1e+09);
+    SpinBox_Xaxis_p->setValue(0);
+
+    gridLayout6->addWidget(SpinBox_Xaxis_p, 0, 3, 1, 1);
+
+    SpinBox_Radius_ext = new QDoubleSpinBox(gBPipe);
+    SpinBox_Radius_ext->setObjectName(QString::fromUtf8("SpinBox_Radius_ext"));
+    SpinBox_Radius_ext->setDecimals(5);
+    SpinBox_Radius_ext->setMaximum(1e+09);
+
+    gridLayout6->addWidget(SpinBox_Radius_ext, 3, 3, 1, 1);
 
-        gridLayout_2->addWidget(SpinBox_Ycentre, 1, 1, 1, 1);
+    TLRadius_ext = new QLabel(gBPipe);
+    TLRadius_ext->setObjectName(QString::fromUtf8("TLRadius_ext"));
+    QSizePolicy sizePolicy32(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
+    sizePolicy32.setHorizontalStretch(0);
+    sizePolicy32.setVerticalStretch(0);
+    sizePolicy32.setHeightForWidth(TLRadius_ext->sizePolicy().hasHeightForWidth());
+    TLRadius_ext->setSizePolicy(sizePolicy32);
+    TLRadius_ext->setWordWrap(false);
 
-        TLRayon = new QLabel(gBSphere);
-        TLRayon->setObjectName(QString::fromUtf8("TLRayon"));
-        sizePolicy.setHeightForWidth(TLRayon->sizePolicy().hasHeightForWidth());
-        TLRayon->setSizePolicy(sizePolicy);
-        TLRayon->setWordWrap(false);
+    gridLayout6->addWidget(TLRadius_ext, 3, 2, 1, 1);
 
-        gridLayout_2->addWidget(TLRayon, 1, 2, 1, 1);
+    SpinBox_Haut_p = new QDoubleSpinBox(gBPipe);
+    SpinBox_Haut_p->setObjectName(QString::fromUtf8("SpinBox_Haut_p"));
+    SpinBox_Haut_p->setDecimals(5);
+    SpinBox_Haut_p->setMaximum(1e+09);
 
-        SpinBox_Rayon = new QDoubleSpinBox(gBSphere);
-        SpinBox_Rayon->setObjectName(QString::fromUtf8("SpinBox_Rayon"));
-        SpinBox_Rayon->setDecimals(5);
-        SpinBox_Rayon->setMinimum(-1e+09);
-        SpinBox_Rayon->setMaximum(1e+09);
-        SpinBox_Rayon->setValue(0);
+    gridLayout6->addWidget(SpinBox_Haut_p, 4, 1, 1, 1);
 
-        gridLayout_2->addWidget(SpinBox_Rayon, 1, 3, 1, 1);
 
-        TLZcentre = new QLabel(gBSphere);
-        TLZcentre->setObjectName(QString::fromUtf8("TLZcentre"));
-        sizePolicy.setHeightForWidth(TLZcentre->sizePolicy().hasHeightForWidth());
-        TLZcentre->setSizePolicy(sizePolicy);
-        TLZcentre->setWordWrap(false);
+    gridLayout->addWidget(gBPipe, 5, 0, 1, 2);
 
-        gridLayout_2->addWidget(TLZcentre, 2, 0, 1, 1);
 
-        SpinBox_Zcentre = new QDoubleSpinBox(gBSphere);
-        SpinBox_Zcentre->setObjectName(QString::fromUtf8("SpinBox_Zcentre"));
-        SpinBox_Zcentre->setDecimals(5);
-        SpinBox_Zcentre->setMinimum(-1e+09);
-        SpinBox_Zcentre->setMaximum(1e+09);
-        SpinBox_Zcentre->setValue(0);
+    retranslateUi(CreateZone);
 
-        gridLayout_2->addWidget(SpinBox_Zcentre, 2, 1, 1, 1);
+    QSize size(551, 880);
+    size = size.expandedTo(CreateZone->minimumSizeHint());
+    CreateZone->resize(size);
 
 
-        gridLayout_3->addWidget(gBSphere, 3, 0, 1, 2);
-
-        GBButtons = new QGroupBox(CreateZone);
-        GBButtons->setObjectName(QString::fromUtf8("GBButtons"));
-        sizePolicy.setHeightForWidth(GBButtons->sizePolicy().hasHeightForWidth());
-        GBButtons->setSizePolicy(sizePolicy);
-        hboxLayout = new QHBoxLayout(GBButtons);
-#ifndef Q_OS_MAC
-        hboxLayout->setSpacing(6);
-#endif
-#ifndef Q_OS_MAC
-        hboxLayout->setMargin(9);
-#endif
-        hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
-        buttonOk = new QPushButton(GBButtons);
-        buttonOk->setObjectName(QString::fromUtf8("buttonOk"));
-
-        hboxLayout->addWidget(buttonOk);
-
-        buttonApply = new QPushButton(GBButtons);
-        buttonApply->setObjectName(QString::fromUtf8("buttonApply"));
-
-        hboxLayout->addWidget(buttonApply);
-
-        buttonCancel = new QPushButton(GBButtons);
-        buttonCancel->setObjectName(QString::fromUtf8("buttonCancel"));
-
-        hboxLayout->addWidget(buttonCancel);
-
-        buttonHelp = new QPushButton(GBButtons);
-        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
-
-        hboxLayout->addWidget(buttonHelp);
-
-
-        gridLayout_3->addWidget(GBButtons, 4, 0, 1, 2);
-
-
-        retranslateUi(CreateZone);
-
-        QMetaObject::connectSlotsByName(CreateZone);
+    QMetaObject::connectSlotsByName(CreateZone);
     } // setupUi
 
     void retranslateUi(QDialog *CreateZone)
     {
-        CreateZone->setWindowTitle(QApplication::translate("CreateZone", "Create Zone", 0, QApplication::UnicodeUTF8));
-        Name->setText(QApplication::translate("CreateZone", "Name", 0, QApplication::UnicodeUTF8));
-        TypeZone->setTitle(QApplication::translate("CreateZone", "Type of zone", 0, QApplication::UnicodeUTF8));
-        RBBox->setText(QString());
-        RBSphere->setText(QString());
-        gBBox->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
-        TLXmini->setText(QApplication::translate("CreateZone", "X mini", 0, QApplication::UnicodeUTF8));
-        TLYmini->setText(QApplication::translate("CreateZone", "Y mini", 0, QApplication::UnicodeUTF8));
-        TLZmini->setText(QApplication::translate("CreateZone", "Z mini", 0, QApplication::UnicodeUTF8));
-        TLXmaxi->setText(QApplication::translate("CreateZone", "X maxi", 0, QApplication::UnicodeUTF8));
-        TLZmaxi->setText(QApplication::translate("CreateZone", "Z maxi", 0, QApplication::UnicodeUTF8));
-        TLYmaxi->setText(QApplication::translate("CreateZone", "Y maxi", 0, QApplication::UnicodeUTF8));
-        gBSphere->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
-        TLXcentre->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
-        TLYcentre->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
-        TLRayon->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
-        TLZcentre->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
-        GBButtons->setTitle(QString());
-        buttonOk->setText(QApplication::translate("CreateZone", "&Ok", 0, QApplication::UnicodeUTF8));
-        buttonApply->setText(QApplication::translate("CreateZone", "&Apply", 0, QApplication::UnicodeUTF8));
-        buttonCancel->setText(QApplication::translate("CreateZone", "&Cancel", 0, QApplication::UnicodeUTF8));
-        buttonHelp->setText(QApplication::translate("CreateZone", "&Help", 0, QApplication::UnicodeUTF8));
-        Q_UNUSED(CreateZone);
+    CreateZone->setWindowTitle(QApplication::translate("CreateZone", "Create a zone", 0, QApplication::UnicodeUTF8));
+    GBButtons->setTitle(QString());
+    buttonHelp->setText(QApplication::translate("CreateZone", "Help", 0, QApplication::UnicodeUTF8));
+    buttonCancel->setText(QApplication::translate("CreateZone", "Cancel", 0, QApplication::UnicodeUTF8));
+    buttonApply->setText(QApplication::translate("CreateZone", "Apply", 0, QApplication::UnicodeUTF8));
+    buttonOk->setText(QApplication::translate("CreateZone", "OK", 0, QApplication::UnicodeUTF8));
+    TypeZone->setTitle(QApplication::translate("CreateZone", "Type of zone", 0, QApplication::UnicodeUTF8));
+    RBSphere->setText(QApplication::translate("CreateZone", "Sphere", 0, QApplication::UnicodeUTF8));
+    RBPipe->setText(QApplication::translate("CreateZone", "Pipe", 0, QApplication::UnicodeUTF8));
+    RBCylinder->setText(QApplication::translate("CreateZone", "Cylinder", 0, QApplication::UnicodeUTF8));
+    RBBox->setText(QApplication::translate("CreateZone", "Box", 0, QApplication::UnicodeUTF8));
+    gBCylindre->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLHaut->setText(QApplication::translate("CreateZone", "Height", 0, QApplication::UnicodeUTF8));
+    TLRadius->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
+    TLZaxis->setText(QApplication::translate("CreateZone", "Z axis", 0, QApplication::UnicodeUTF8));
+    TLYaxis->setText(QApplication::translate("CreateZone", "Y axis", 0, QApplication::UnicodeUTF8));
+    TLXaxis->setText(QApplication::translate("CreateZone", "X axis", 0, QApplication::UnicodeUTF8));
+    TLYbase->setText(QApplication::translate("CreateZone", "Y base", 0, QApplication::UnicodeUTF8));
+    TLZbase->setText(QApplication::translate("CreateZone", "Z base", 0, QApplication::UnicodeUTF8));
+    TLXbase->setText(QApplication::translate("CreateZone", "X base", 0, QApplication::UnicodeUTF8));
+    gBSphere->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLXcentre->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+    TLYcentre->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+    TLRayon->setText(QApplication::translate("CreateZone", "Radius", 0, QApplication::UnicodeUTF8));
+    TLZcentre->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
+    gBBox->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLXmini->setText(QApplication::translate("CreateZone", "X mini", 0, QApplication::UnicodeUTF8));
+    TLYmini->setText(QApplication::translate("CreateZone", "Y mini", 0, QApplication::UnicodeUTF8));
+    TLZmini->setText(QApplication::translate("CreateZone", "Z mini", 0, QApplication::UnicodeUTF8));
+    TLXmaxi->setText(QApplication::translate("CreateZone", "X maxi", 0, QApplication::UnicodeUTF8));
+    TLZmaxi->setText(QApplication::translate("CreateZone", "Z maxi", 0, QApplication::UnicodeUTF8));
+    TLYmaxi->setText(QApplication::translate("CreateZone", "Y maxi", 0, QApplication::UnicodeUTF8));
+    Name->setText(QApplication::translate("CreateZone", "Name", 0, QApplication::UnicodeUTF8));
+    gBPipe->setTitle(QApplication::translate("CreateZone", "Coordinates", 0, QApplication::UnicodeUTF8));
+    TLHaut_p->setText(QApplication::translate("CreateZone", "Height", 0, QApplication::UnicodeUTF8));
+    TLXbase_p->setText(QApplication::translate("CreateZone", "X base", 0, QApplication::UnicodeUTF8));
+    TLRadius_int->setText(QApplication::translate("CreateZone", "Internal radius", 0, QApplication::UnicodeUTF8));
+    TLZbase_p->setText(QApplication::translate("CreateZone", "Z base", 0, QApplication::UnicodeUTF8));
+    TLYbase_p->setText(QApplication::translate("CreateZone", "Y base", 0, QApplication::UnicodeUTF8));
+    TLXaxis_p->setText(QApplication::translate("CreateZone", "X axis", 0, QApplication::UnicodeUTF8));
+    TLYaxis_p->setText(QApplication::translate("CreateZone", "Y axis", 0, QApplication::UnicodeUTF8));
+    TLZaxis_p->setText(QApplication::translate("CreateZone", "Z axis", 0, QApplication::UnicodeUTF8));
+    TLRadius_ext->setText(QApplication::translate("CreateZone", "External radius", 0, QApplication::UnicodeUTF8));
+    Q_UNUSED(CreateZone);
     } // retranslateUi
 
 };
@@ -381,6 +851,4 @@ namespace Ui {
     class CreateZone: public Ui_CreateZone {};
 } // namespace Ui
 
-QT_END_NAMESPACE
-
 #endif // CREATEZONE_H
index 0c98d284bd8cb887554fbf292df4fb80c9809510..aef1b45f8d61b7f60cbbe22f1e6a52d3602ae968 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
+<ui version="4.0" >
  <class>CreateZone</class>
- <widget class="QDialog" name="CreateZone">
-  <property name="geometry">
+ <widget class="QDialog" name="CreateZone" >
+  <property name="geometry" >
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>415</width>
-    <height>472</height>
+    <width>551</width>
+    <height>880</height>
    </rect>
   </property>
-  <property name="windowTitle">
-   <string>Create Zone</string>
+  <property name="windowTitle" >
+   <string>Create a zone</string>
   </property>
-  <property name="autoFillBackground">
-   <bool>false</bool>
+  <property name="autoFillBackground" >
+   <bool>true</bool>
   </property>
-  <property name="sizeGripEnabled">
+  <property name="sizeGripEnabled" >
    <bool>true</bool>
   </property>
-  <layout class="QGridLayout" name="gridLayout_3">
-   <item row="0" column="0">
-    <widget class="QLabel" name="Name">
-     <property name="text">
-      <string>Name</string>
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="6" column="0" colspan="2" >
+    <widget class="QGroupBox" name="GBButtons" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
      </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="QLineEdit" name="LEZoneName">
-     <property name="maxLength">
-      <number>32</number>
+     <property name="title" >
+      <string/>
      </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="3" >
+       <widget class="QPushButton" name="buttonHelp" >
+        <property name="text" >
+         <string>Help</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QPushButton" name="buttonCancel" >
+        <property name="text" >
+         <string>Cancel</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="buttonApply" >
+        <property name="text" >
+         <string>Apply</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QPushButton" name="buttonOk" >
+        <property name="text" >
+         <string>OK</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QGroupBox" name="TypeZone">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <item row="1" column="0" colspan="2" >
+    <widget class="QGroupBox" name="TypeZone" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="minimumSize">
+     <property name="minimumSize" >
       <size>
        <width>340</width>
        <height>0</height>
       </size>
      </property>
-     <property name="title">
+     <property name="title" >
       <string>Type of zone</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QRadioButton" name="RBBox">
-        <property name="text">
-         <string/>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="3" >
+       <widget class="QRadioButton" name="RBSphere" >
+        <property name="text" >
+         <string>Sphere</string>
         </property>
-        <property name="icon">
-         <iconset>
-          <normaloff>../../resources/zone_boxdxyz.png</normaloff>../../resources/zone_boxdxyz.png</iconset>
+        <property name="icon" >
+         <iconset>../../resources/zone_spherepoint.png</iconset>
         </property>
-        <property name="checkable">
-         <bool>true</bool>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QRadioButton" name="RBPipe" >
+        <property name="text" >
+         <string>Pipe</string>
         </property>
-        <property name="checked">
-         <bool>true</bool>
+        <property name="icon" >
+         <iconset>../../resources/pipe.png</iconset>
         </property>
        </widget>
       </item>
-      <item>
-       <widget class="QRadioButton" name="RBSphere">
-        <property name="text">
-         <string/>
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="RBCylinder" >
+        <property name="text" >
+         <string>Cylinder</string>
         </property>
-        <property name="icon">
-         <iconset>
-          <normaloff>../../resources/zone_spherepoint.png</normaloff>../../resources/zone_spherepoint.png</iconset>
+        <property name="icon" >
+         <iconset>../../resources/cylinderpointvector.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="RBBox" >
+        <property name="text" >
+         <string>Box</string>
+        </property>
+        <property name="icon" >
+         <iconset>../../resources/zone_boxdxyz.png</iconset>
+        </property>
+        <property name="checkable" >
+         <bool>true</bool>
+        </property>
+        <property name="checked" >
+         <bool>true</bool>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" colspan="2">
-    <widget class="QGroupBox" name="gBBox">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <item row="4" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBCylindre" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title">
+     <property name="focusPolicy" >
+      <enum>Qt::TabFocus</enum>
+     </property>
+     <property name="title" >
       <string>Coordinates</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QLabel" name="TLXmini">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="4" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Haut" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0" >
+       <widget class="QLabel" name="TLHaut" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>X mini</string>
+        <property name="text" >
+         <string>Height</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Xmini">
-        <property name="decimals">
+      <item row="3" column="0" >
+       <widget class="QLabel" name="TLRadius" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="TLYmini">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="2" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2" >
+       <widget class="QLabel" name="TLZaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Y mini</string>
+        <property name="text" >
+         <string>Z axis</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Ymini">
-        <property name="decimals">
-         <number>5</number>
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLYaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
         </property>
-        <property name="minimum">
-         <double>-999999999.000000000000000</double>
+        <property name="text" >
+         <string>Y axis</string>
         </property>
-        <property name="maximum">
-         <double>999999999.000000000000000</double>
-        </property>
-        <property name="value">
-         <double>0.000000000000000</double>
+        <property name="wordWrap" >
+         <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="TLZmini">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="0" column="2" >
+       <widget class="QLabel" name="TLXaxis" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Z mini</string>
+        <property name="text" >
+         <string>X axis</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Zmini">
-        <property name="decimals">
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ybase" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="maximum">
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="0" column="2">
-       <widget class="QLabel" name="TLXmaxi">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYbase" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>X maxi</string>
+        <property name="text" >
+         <string>Y base</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="2">
-       <widget class="QLabel" name="TLZmaxi">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZbase" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Z maxi</string>
+        <property name="text" >
+         <string>Z base</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="3">
-       <widget class="QDoubleSpinBox" name="SpinBox_Zmaxi">
-        <property name="decimals">
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zbase" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXbase" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X base</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xbase" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="2">
-       <widget class="QLabel" name="TLYmaxi">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+     </layout>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBSphere" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string>Coordinates</string>
+     </property>
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Y maxi</string>
+        <property name="text" >
+         <string>X centre</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="3">
-       <widget class="QDoubleSpinBox" name="SpinBox_Xmaxi">
-        <property name="decimals">
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xcentre" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ycentre" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="3">
-       <widget class="QDoubleSpinBox" name="SpinBox_Ymaxi">
-        <property name="decimals">
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLRayon" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Rayon" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZcentre" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z centre</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zcentre" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QGroupBox" name="gBSphere">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <item row="2" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBBox" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title">
+     <property name="title" >
       <string>Coordinates</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0">
-       <widget class="QLabel" name="TLXcentre">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXmini" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>X centre</string>
+        <property name="text" >
+         <string>X mini</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Xcentre">
-        <property name="decimals">
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xmini" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="maximum">
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="TLYcentre">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYmini" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Y centre</string>
+        <property name="text" >
+         <string>Y mini</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Ycentre">
-        <property name="decimals">
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ymini" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
-         <double>-999999999.000000000000000</double>
-        </property>
-        <property name="maximum">
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="1" column="2">
-       <widget class="QLabel" name="TLRayon">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZmini" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Radius</string>
+        <property name="text" >
+         <string>Z mini</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="1" column="3">
-       <widget class="QDoubleSpinBox" name="SpinBox_Rayon">
-        <property name="decimals">
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zmini" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QLabel" name="TLXmaxi" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X maxi</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2" >
+       <widget class="QLabel" name="TLZmaxi" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z maxi</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zmaxi" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="TLZcentre">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLYmaxi" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="text">
-         <string>Z centre</string>
+        <property name="text" >
+         <string>Y maxi</string>
         </property>
-        <property name="wordWrap">
+        <property name="wordWrap" >
          <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item row="2" column="1">
-       <widget class="QDoubleSpinBox" name="SpinBox_Zcentre">
-        <property name="decimals">
+      <item row="0" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xmaxi" >
+        <property name="decimals" >
          <number>5</number>
         </property>
-        <property name="minimum">
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
          <double>-999999999.000000000000000</double>
         </property>
-        <property name="maximum">
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ymaxi" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
          <double>999999999.000000000000000</double>
         </property>
-        <property name="value">
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
          <double>0.000000000000000</double>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QGroupBox" name="GBButtons">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+   <item row="0" column="1" >
+    <widget class="QLineEdit" name="LEZoneName" >
+     <property name="maxLength" >
+      <number>32</number>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0" >
+    <widget class="QLabel" name="Name" >
+     <property name="text" >
+      <string>Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0" colspan="2" >
+    <widget class="QGroupBox" name="gBPipe" >
+     <property name="sizePolicy" >
+      <sizepolicy>
+       <hsizetype>0</hsizetype>
+       <vsizetype>0</vsizetype>
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title">
-      <string/>
+     <property name="title" >
+      <string>Coordinates</string>
      </property>
-     <layout class="QHBoxLayout">
-      <property name="spacing">
-       <number>6</number>
-      </property>
-      <property name="margin">
+     <layout class="QGridLayout" >
+      <property name="margin" >
        <number>9</number>
       </property>
-      <item>
-       <widget class="QPushButton" name="buttonOk">
-        <property name="text">
-         <string>&amp;Ok</string>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="4" column="0" >
+       <widget class="QLabel" name="TLHaut_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Height</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item>
-       <widget class="QPushButton" name="buttonApply">
-        <property name="text">
-         <string>&amp;Apply</string>
+      <item row="0" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xbase_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
         </property>
        </widget>
       </item>
-      <item>
-       <widget class="QPushButton" name="buttonCancel">
-        <property name="text">
-         <string>&amp;Cancel</string>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TLXbase_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X base</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius_int" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zbase_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0" >
+       <widget class="QLabel" name="TLRadius_int" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Internal radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
         </property>
        </widget>
       </item>
-      <item>
-       <widget class="QPushButton" name="buttonHelp">
-        <property name="text">
-         <string>&amp;Help</string>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TLZbase_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z base</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TLYbase_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y base</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Ybase_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QLabel" name="TLXaxis_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>X axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" >
+       <widget class="QLabel" name="TLYaxis_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Y axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2" >
+       <widget class="QLabel" name="TLZaxis_p" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>Z axis</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Zaxis_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Yaxis_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Xaxis_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>999999999.000000000000000</double>
+        </property>
+        <property name="minimum" >
+         <double>-999999999.000000000000000</double>
+        </property>
+        <property name="value" >
+         <double>0.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Radius_ext" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2" >
+       <widget class="QLabel" name="TLRadius_ext" >
+        <property name="sizePolicy" >
+         <sizepolicy>
+          <hsizetype>0</hsizetype>
+          <vsizetype>0</vsizetype>
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>External radius</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1" >
+       <widget class="QDoubleSpinBox" name="SpinBox_Haut_p" >
+        <property name="decimals" >
+         <number>5</number>
+        </property>
+        <property name="maximum" >
+         <double>1000000000.000000000000000</double>
         </property>
        </widget>
       </item>
index d6c0f9aee1fd30cde5d3e4256987db2a5e6b7f72..4248dd5139923de5565729ad421da9a7b4ed26ea 100644 (file)
@@ -1,8 +1,8 @@
 /********************************************************************************
 ** Form generated from reading ui file 'EditFile.ui'
 **
-** Created: Mon Sep 27 14:45:55 2010
-**      by: Qt User Interface Compiler version 4.5.2
+** Created: Tue Mar 15 10:38:58 2011
+**      by: Qt User Interface Compiler version 4.2.1
 **
 ** WARNING! All changes made in this file will be lost when recompiling ui file!
 ********************************************************************************/
 #include <QtGui/QButtonGroup>
 #include <QtGui/QGridLayout>
 #include <QtGui/QGroupBox>
-#include <QtGui/QHeaderView>
 #include <QtGui/QPushButton>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QTextBrowser>
 #include <QtGui/QWidget>
 
-QT_BEGIN_NAMESPACE
-
 class Ui_EditFile
 {
 public:
-    QGridLayout *gridLayout_2;
-    QTextBrowser *QTBEditFile;
-    QSpacerItem *verticalSpacer;
-    QGroupBox *GroupButtons;
     QGridLayout *gridLayout;
-    QPushButton *buttonQuit;
+    QSpacerItem *spacerItem;
+    QGroupBox *GroupButtons;
+    QGridLayout *gridLayout1;
     QPushButton *buttonPrint;
-    QPushButton *buttonHelp;
-    QSpacerItem *horizontalSpacer;
+    QPushButton *buttonQuit;
+    QSpacerItem *spacerItem1;
+    QTextBrowser *QTBEditFile;
 
     void setupUi(QWidget *EditFile)
     {
-        if (EditFile->objectName().isEmpty())
-            EditFile->setObjectName(QString::fromUtf8("EditFile"));
-        EditFile->resize(548, 901);
-        gridLayout_2 = new QGridLayout(EditFile);
-        gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
-        QTBEditFile = new QTextBrowser(EditFile);
-        QTBEditFile->setObjectName(QString::fromUtf8("QTBEditFile"));
-        QTBEditFile->setMinimumSize(QSize(530, 800));
-        QFont font;
-        font.setFamily(QString::fromUtf8("Courier New"));
-        QTBEditFile->setFont(font);
+    EditFile->setObjectName(QString::fromUtf8("EditFile"));
+    gridLayout = new QGridLayout(EditFile);
+    gridLayout->setSpacing(6);
+    gridLayout->setMargin(9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+    spacerItem = new QSpacerItem(331, 49, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_2->addWidget(QTBEditFile, 0, 0, 1, 2);
+    gridLayout->addItem(spacerItem, 2, 1, 1, 1);
 
-        verticalSpacer = new QSpacerItem(20, 14, QSizePolicy::Minimum, QSizePolicy::Expanding);
+    GroupButtons = new QGroupBox(EditFile);
+    GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
+    gridLayout1 = new QGridLayout(GroupButtons);
+    gridLayout1->setSpacing(6);
+    gridLayout1->setMargin(9);
+    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
+    buttonPrint = new QPushButton(GroupButtons);
+    buttonPrint->setObjectName(QString::fromUtf8("buttonPrint"));
 
-        gridLayout_2->addItem(verticalSpacer, 1, 0, 1, 1);
+    gridLayout1->addWidget(buttonPrint, 0, 1, 1, 1);
 
-        GroupButtons = new QGroupBox(EditFile);
-        GroupButtons->setObjectName(QString::fromUtf8("GroupButtons"));
-        gridLayout = new QGridLayout(GroupButtons);
-        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-        buttonQuit = new QPushButton(GroupButtons);
-        buttonQuit->setObjectName(QString::fromUtf8("buttonQuit"));
-        buttonQuit->setAutoDefault(true);
-        buttonQuit->setDefault(true);
-        buttonQuit->setFlat(true);
+    buttonQuit = new QPushButton(GroupButtons);
+    buttonQuit->setObjectName(QString::fromUtf8("buttonQuit"));
+    buttonQuit->setAutoDefault(true);
+    buttonQuit->setDefault(true);
+    buttonQuit->setFlat(true);
 
-        gridLayout->addWidget(buttonQuit, 0, 0, 1, 1);
+    gridLayout1->addWidget(buttonQuit, 0, 0, 1, 1);
 
-        buttonPrint = new QPushButton(GroupButtons);
-        buttonPrint->setObjectName(QString::fromUtf8("buttonPrint"));
 
-        gridLayout->addWidget(buttonPrint, 0, 1, 1, 1);
+    gridLayout->addWidget(GroupButtons, 2, 0, 1, 1);
 
-        buttonHelp = new QPushButton(GroupButtons);
-        buttonHelp->setObjectName(QString::fromUtf8("buttonHelp"));
+    spacerItem1 = new QSpacerItem(20, 14, QSizePolicy::Minimum, QSizePolicy::Expanding);
 
-        gridLayout->addWidget(buttonHelp, 0, 2, 1, 1);
+    gridLayout->addItem(spacerItem1, 1, 0, 1, 2);
 
+    QTBEditFile = new QTextBrowser(EditFile);
+    QTBEditFile->setObjectName(QString::fromUtf8("QTBEditFile"));
+    QTBEditFile->setMinimumSize(QSize(530, 800));
+    QFont font;
+    font.setFamily(QString::fromUtf8("Courier New"));
+    QTBEditFile->setFont(font);
 
-        gridLayout_2->addWidget(GroupButtons, 2, 0, 1, 1);
+    gridLayout->addWidget(QTBEditFile, 0, 0, 1, 2);
 
-        horizontalSpacer = new QSpacerItem(249, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_2->addItem(horizontalSpacer, 2, 1, 1, 1);
+    retranslateUi(EditFile);
 
+    QSize size(675, 901);
+    size = size.expandedTo(EditFile->minimumSizeHint());
+    EditFile->resize(size);
 
-        retranslateUi(EditFile);
 
-        QMetaObject::connectSlotsByName(EditFile);
+    QMetaObject::connectSlotsByName(EditFile);
     } // setupUi
 
     void retranslateUi(QWidget *EditFile)
     {
-        EditFile->setWindowTitle(QApplication::translate("EditFile", "Edit File", 0, QApplication::UnicodeUTF8));
-        GroupButtons->setTitle(QString());
-        buttonQuit->setText(QApplication::translate("EditFile", "&Quit", 0, QApplication::UnicodeUTF8));
-        buttonPrint->setText(QApplication::translate("EditFile", "&Print", 0, QApplication::UnicodeUTF8));
-        buttonHelp->setText(QApplication::translate("EditFile", "&Help", 0, QApplication::UnicodeUTF8));
-        Q_UNUSED(EditFile);
+    EditFile->setWindowTitle(QApplication::translate("EditFile", "Edit a file", 0, QApplication::UnicodeUTF8));
+    GroupButtons->setTitle(QString());
+    buttonPrint->setText(QApplication::translate("EditFile", "Print", 0, QApplication::UnicodeUTF8));
+    buttonQuit->setText(QApplication::translate("EditFile", "Quit", 0, QApplication::UnicodeUTF8));
+    Q_UNUSED(EditFile);
     } // retranslateUi
 
 };
@@ -108,6 +105,4 @@ namespace Ui {
     class EditFile: public Ui_EditFile {};
 } // namespace Ui
 
-QT_END_NAMESPACE
-
 #endif // EDITFILE_H
index cccd2d769d1577b56eb6b4cf840c7e30e97b4bc4..266c3d35f39a06ea24a1d9f43f6e280144b20e68 100644 (file)
@@ -5,38 +5,29 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>548</width>
+    <width>675</width>
     <height>901</height>
    </rect>
   </property>
   <property name="windowTitle" >
-   <string>Edit File</string>
+   <string>Edit a file</string>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2" >
-   <item row="0" column="0" colspan="2" >
-    <widget class="QTextBrowser" name="QTBEditFile" >
-     <property name="minimumSize" >
-      <size>
-       <width>530</width>
-       <height>800</height>
-      </size>
-     </property>
-     <property name="font" >
-      <font>
-       <family>Courier New</family>
-      </font>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0" >
-    <spacer name="verticalSpacer" >
+  <layout class="QGridLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item row="2" column="1" >
+    <spacer>
      <property name="orientation" >
-      <enum>Qt::Vertical</enum>
+      <enum>Qt::Horizontal</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
-       <width>20</width>
-       <height>14</height>
+       <width>331</width>
+       <height>49</height>
       </size>
      </property>
     </spacer>
      <property name="title" >
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout" >
+     <layout class="QGridLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="buttonPrint" >
+        <property name="text" >
+         <string>Print</string>
+        </property>
+       </widget>
+      </item>
       <item row="0" column="0" >
        <widget class="QPushButton" name="buttonQuit" >
         <property name="text" >
-         <string>&amp;Quit</string>
+         <string>Quit</string>
         </property>
         <property name="autoDefault" >
          <bool>true</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="buttonPrint" >
-        <property name="text" >
-         <string>&amp;Print</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="buttonHelp" >
-        <property name="text" >
-         <string>&amp;Help</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
-   <item row="2" column="1" >
-    <spacer name="horizontalSpacer" >
+   <item row="1" column="0" colspan="2" >
+    <spacer>
      <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" stdset="0" >
+     <property name="sizeHint" >
       <size>
-       <width>249</width>
-       <height>20</height>
+       <width>20</width>
+       <height>14</height>
       </size>
      </property>
     </spacer>
    </item>
+   <item row="0" column="0" colspan="2" >
+    <widget class="QTextBrowser" name="QTBEditFile" >
+     <property name="minimumSize" >
+      <size>
+       <width>530</width>
+       <height>800</height>
+      </size>
+     </property>
+     <property name="font" >
+      <font>
+       <family>Courier New</family>
+      </font>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <resources/>
index cd7a585b0a230a78660013856ce805c20770f883..aa243a99089aa49f560b1f7e714b8534041a2e09 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 //  File   : HOMARDGUI.cxx
 //  Author : Paul RASCLE, EDF
 //  Module : HOMARD
@@ -45,6 +64,7 @@ using namespace std;
 #include "MonEditIteration.h"
 #include "MonEditHypothesis.h"
 #include "MonEditZone.h"
+#include "MonEditBoundaryAn.h"
 #include "MonEditBoundaryDi.h"
 #include "HomardQtCommun.h"
 
@@ -82,7 +102,7 @@ HOMARDGUI::~HOMARDGUI()
 //=======================================================================
 HOMARD::HOMARD_Gen_var HOMARDGUI::InitHOMARDGen(SalomeApp_Application* app)
 {
-  Engines::Component_var comp = app->lcc()->FindOrLoad_Component( "FactoryServer","HOMARD" );
+  Engines::EngineComponent_var comp = app->lcc()->FindOrLoad_Component( "FactoryServer","HOMARD" );
   HOMARD::HOMARD_Gen_var clr = HOMARD::HOMARD_Gen::_narrow(comp);
   ASSERT(!CORBA::is_nil(clr));
   return clr;
@@ -106,6 +126,7 @@ void HOMARDGUI::initialize( CAM_Application* app )
 //================================================
 void HOMARDGUI::createHOMARDAction( const int id, const QString& po_id, const QString& icon_id, const int key, const bool toggle  )
 {
+//   MESSAGE("HOMARDGUI::createHOMARDAction");
   QIcon icon;
   QWidget* parent = application()->desktop();
   SUIT_ResourceMgr* resMgr = application()->resourceMgr();
@@ -113,13 +134,13 @@ void HOMARDGUI::createHOMARDAction( const int id, const QString& po_id, const QS
   if ( icon_id.length() )
      pix = resMgr->loadPixmap( "HOMARD", tr( icon_id .toLatin1().data()) );
   else
-     pix = resMgr->loadPixmap( "HOMARD", tr( QString( "ICO_%1" ).arg( po_id ).toLatin1().data() ), false );
+     pix = resMgr->loadPixmap( "HOMARD", tr( QString( "ICO_%1" ).arg( po_id ).toLatin1().data()), false );
   if ( !pix.isNull() )
       icon = QIcon( pix );
 
-  QString tooltip    = tr( QString( "TOP_%1" ).arg( po_id ).toLatin1().data() ),
-          menu       = tr( QString( "MEN_%1" ).arg( po_id ).toLatin1().data() ),
-          status_bar = tr( QString( "STB_%1" ).arg( po_id ).toLatin1().data() );
+  QString tooltip    = tr(QString( "HOM_TOP_%1" ).arg( po_id ).toLatin1().data()),
+          menu       = tr(QString( "HOM_MEN_%1" ).arg( po_id ).toLatin1().data()),
+          status_bar = tr(QString( "HOM_STB_%1" ).arg( po_id ).toLatin1().data());
 
   createAction( id, tooltip, icon, menu, status_bar, key, parent, toggle, this, SLOT( OnGUIEvent() )  );
 }
@@ -161,6 +182,7 @@ void HOMARDGUI::createPreferences(){
 //                Verifier l'avant dernier nombre passe en parametre
 //================================================
 void HOMARDGUI::createMenus(){
+  MESSAGE("HOMARDGUI::createMenus")
   int HOMARD_Id  = createMenu( tr( "HOMARD" ),  -1,  5, 10 );
   createMenu( 1101, HOMARD_Id, -1 ); //Create_Case
   createMenu( 1102, HOMARD_Id, -1 ); //Create_Iteration
@@ -226,8 +248,9 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
   {
     case 1101: // Creation d un Cas
     {
+      MESSAGE("etape 1101")
       MESSAGE("command " << theCommandID << " activated");
-      MonCreateCase *aDlg = new MonCreateCase( parent, TRUE, 
+      MonCreateCase *aDlg = new MonCreateCase( parent, TRUE,
                             HOMARD::HOMARD_Gen::_duplicate(homardGen) ) ;
       aDlg->show();
       break;
@@ -238,7 +261,7 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
       MESSAGE("command " << theCommandID << " activated");
       QString IterParentName=HOMARD_QT_COMMUN::SelectionArbreEtude(QString("IterationHomard"), 0);
       MESSAGE("IterParentName " << IterParentName.toStdString().c_str() << " choisi dans arbre");
-      MonCreateIteration *IterDlg = new MonCreateIteration( parent, true, 
+      MonCreateIteration *IterDlg = new MonCreateIteration( parent, true,
                                      HOMARD::HOMARD_Gen::_duplicate(homardGen), IterParentName ) ;
       IterDlg->show();
       break;
@@ -255,9 +278,8 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
       }
       catch( SALOME::SALOME_Exception& S_ex )
       {
-        QMessageBox::information( 0, "Error",
-                    QString(CORBA::string_dup(S_ex.details.text)),
-                    QMessageBox::Ok + QMessageBox::Default );
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QString(CORBA::string_dup(S_ex.details.text)) );
         getApp()->updateObjectBrowser();
         return false;
       }
@@ -312,11 +334,20 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
     {
       MESSAGE("command " << theCommandID << " activated avec objet " << _ObjectName.toStdString().c_str() );
       _PTR(SObject) obj = chercheMonObjet();
-      if ((obj) and (HOMARD_UTILS::isBoundaryDi(obj)))
+      if ((obj))
       {
-          MESSAGE(".. Lancement de MonEditBoundaryDi" );
-          MonEditBoundaryDi *aDlg = new MonEditBoundaryDi(0, TRUE, HOMARD::HOMARD_Gen::_duplicate(homardGen), QString(""), _ObjectName ) ;
-          aDlg->show();
+          if (HOMARD_UTILS::isBoundaryDi(obj))
+          {
+              MESSAGE(".. Lancement de MonEditBoundaryDi" );
+              MonEditBoundaryDi *aDlg = new MonEditBoundaryDi(0, TRUE, HOMARD::HOMARD_Gen::_duplicate(homardGen), QString(""), _ObjectName ) ;
+              aDlg->show();
+          }
+          if (HOMARD_UTILS::isBoundaryAn(obj))
+          {
+              MESSAGE(".. Lancement de MonEditBoundaryAn" );
+              MonEditBoundaryAn *aDlg = new MonEditBoundaryAn(0, TRUE, HOMARD::HOMARD_Gen::_duplicate(homardGen), QString(""), _ObjectName ) ;
+              aDlg->show();
+          }
       }
     }
 
@@ -388,13 +419,13 @@ void HOMARDGUI::windows( QMap<int, int>& theMap ) const
 void HOMARDGUI::setOrb()
 //=============================================================================
 {
-  try 
+  try
   {
      ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
      ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
      _orb = init( 0 , 0 );
-  } 
-  catch (...) 
+  }
+  catch (...)
   {
      INFOS("internal error : orb not found");
      _orb = 0;
@@ -410,7 +441,7 @@ _PTR(SObject) HOMARDGUI::chercheMonObjet()
     _PTR(SObject) obj;
     SALOME_ListIO lst;
     getApp()->selectionMgr()->selectedObjects( lst );
-    if (  lst.Extent() == 1 ) 
+    if (  lst.Extent() == 1 )
     {
        Handle(SALOME_InteractiveObject) io = lst.First();
        SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( application()->activeStudy() );
@@ -426,7 +457,7 @@ _PTR(SObject) HOMARDGUI::chercheMonObjet()
 void HOMARDGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& title )
 //=============================================================================
 {
-  MESSAGE("Debut de contextMenuPopup");
+  MESSAGE("Debut de HOMARDGUI::contextMenuPopup");
   _PTR(SObject) obj = chercheMonObjet();
   if ( obj )
   {
@@ -434,39 +465,44 @@ void HOMARDGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& t
     _ObjectName = title;
     SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
 //
-    if ( HOMARD_UTILS::isBoundaryDi(obj) )
+    if ( HOMARD_UTILS::isBoundaryAn(obj) )
+    {
+      QPixmap pix = resMgr->loadPixmap( "HOMARD", "whatis.png" );
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_BOUNDARY").toLatin1().data()), this,SLOT(EditBoDi()));
+    }
+    else if ( HOMARD_UTILS::isBoundaryDi(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "whatis.png" );
-      menu->addAction(QIcon(pix), "Edit boundary", this,SLOT(EditBoDi()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_BOUNDARY").toLatin1().data()), this,SLOT(EditBoDi()));
     }
     else if ( HOMARD_UTILS::isZone(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "whatis.png" );
-      menu->addAction(QIcon(pix), "Edit zone", this,SLOT(EditZone()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_ZONE").toLatin1().data()), this,SLOT(EditZone()));
     }
     else if ( HOMARD_UTILS::isHypo(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "whatis.png" );
-      menu->addAction(QIcon(pix), "Edit hypothesis", this,SLOT(EditHypo()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_HYPO").toLatin1().data()), this,SLOT(EditHypo()));
     }
     else if ( HOMARD_UTILS::isIter(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "iter_next.png" );
-      menu->addAction(QIcon(pix), "Next iteration", this,SLOT(NextIter()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_NEW_ITERATION").toLatin1().data()), this,SLOT(NextIter()));
       QPixmap pix1 = resMgr->loadPixmap( "HOMARD", "whatis.png" );
-      menu->addAction(QIcon(pix1), "Edit iteration", this,SLOT(EditIter()));
+      menu->addAction(QIcon(pix1), tr(QString("HOM_MEN_EDIT_ITERATION").toLatin1().data()), this,SLOT(EditIter()));
       QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "mesh_compute.png" );
-      menu->addAction(QIcon(pix2), "Compute", this,SLOT(LanceCalcul()));
+      menu->addAction(QIcon(pix2), tr(QString("HOM_MEN_COMPUTE").toLatin1().data()), this,SLOT(LanceCalcul()));
     }
     else if ( HOMARD_UTILS::isCase(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "whatis.png" );
-      menu->addAction(QIcon(pix), "Edit case", this,SLOT(EditCase()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_CASE").toLatin1().data()), this,SLOT(EditCase()));
     }
     else if ( HOMARD_UTILS::isFileMess(obj) or HOMARD_UTILS::isFileSummary(obj) )
     {
       QPixmap pix = resMgr->loadPixmap( "HOMARD", "texte.png" );
-      menu->addAction(QIcon(pix), "Show file", this,SLOT(EditAsciiFile()));
+      menu->addAction(QIcon(pix), tr(QString("HOM_MEN_EDIT_MESS_FILE").toLatin1().data()), this,SLOT(EditAsciiFile()));
     }
   }
 }
@@ -486,9 +522,9 @@ void HOMARDGUI::EditCase()
   this->OnGUIEvent(1120);
 }
 
-void HOMARDGUI::EditIter() 
+void HOMARDGUI::EditIter()
 {
-  this->OnGUIEvent(1121); 
+  this->OnGUIEvent(1121);
 }
 
 void HOMARDGUI::EditHypo()
index 9fe03d614c4a265dafd11e5ff2f7b191886bbef4..6db12449d7d9074ff05acad1fdb8257177293ef9 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 //  HOMARDGUI : HOMARD component GUI implemetation 
 //
 
index 2db82b832b4367c272dc0fb5538e83930474eb52..91e4721048ecc52caffce95e60f5ca4d44b351ba 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 
 #include "HOMARDGUI_Utils.h"
 
@@ -36,8 +55,8 @@ SALOME_ListIO HOMARD_UTILS::mySelected;
 {
     return theStudy->studyDS();
 }
-    
-    
+
+
 //================================================================
 // Function : GetActiveStudy
 // Returne un pointeur sur l'etude active
@@ -50,7 +69,7 @@ SUIT_Study* HOMARD_UTILS::GetActiveStudy()
     else
       return NULL;
 }
-    
+
 //================================================================
 // Function : GetActiveStudyDocument
 // Returne un pointeur sur l'etude active
@@ -64,7 +83,7 @@ _PTR(Study) HOMARD_UTILS::GetActiveStudyDocument()
     else
       return _PTR(Study)();
 }
-    
+
 //================================================================
 // Function : updateObjBrowser
 // Purpose  : met a jour l arbre d 'etude pour Homard
@@ -74,14 +93,14 @@ void HOMARD_UTILS::updateObjBrowser()
     SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
     if (app) {
       //  Le nom identifiant doit etre la valeur du parametre
-      // name de la section HOMARD du fichier SalomeApp.xml 
+      // name de la section HOMARD du fichier SalomeApp.xml
       CAM_Module* module = app->module("Homard" );
       SalomeApp_Module* appMod = dynamic_cast<SalomeApp_Module*>( module );
       if ( appMod ) {
         app->updateObjectBrowser();
         appMod->updateObjBrowser( true );
       }
-      else 
+      else
         MESSAGE( "---   HOMARD::updateObjBrowser: appMod = NULL");
     }
 }
@@ -97,13 +116,13 @@ const SALOME_ListIO& HOMARD_UTILS::selectedIO()
       if( aSelectionMgr )
       {
              aSelectionMgr->selectedObjects( mySelected );
-              for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next()) 
+              for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next())
                 SCRUTE(it.Value()->getEntry());
       };
       return mySelected;
-              
+
 }
-    
+
 //================================================================
 // Function : IObjectCount
 // Return the number of selected objects
@@ -120,7 +139,7 @@ int HOMARD_UTILS::IObjectCount()
       }
       return 0;
 }
-    
+
 //================================================================
 // Function : firstIObject
 // Purpose  :  Return the first selected object in the selected object list
@@ -191,6 +210,13 @@ bool HOMARD_UTILS::isObject(_PTR(SObject) MonObj, QString TypeObject, int option
   return bOK ;
 }
 //================================================================
+// Retourne vrai si l objet est une frontiere analytique
+//================================================================
+bool HOMARD_UTILS::isBoundaryAn(_PTR(SObject) MonObj)
+{
+   return isObject( MonObj, QString("BoundaryAnHomard"), -1 ) ;
+}
+//================================================================
 // Retourne vrai si l objet est une frontiere discrete
 //================================================================
 bool HOMARD_UTILS::isBoundaryDi(_PTR(SObject) MonObj)
@@ -239,125 +265,6 @@ bool HOMARD_UTILS::isFileSummary(_PTR(SObject) MonObj)
 {
    return isObject( MonObj, QString("Summary"), 0 ) ;
 }
-//================================================================
-// Function : ChercheFileDansSelection
-// Retourne Le nom du fichier associe
-//================================================================
-QString HOMARD_UTILS::ChercheFileDansSelection()
-{
-   MESSAGE("ChercheFileDansSelection");
-   int nbSel = HOMARD_UTILS::IObjectCount() ;
-   if (nbSel > 1 or nbSel == 0) return QString::null;
-
-   Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
-   ASSERT(aIO);
-   if (!( aIO->hasEntry())) return QString::null; 
-
-   _PTR(Study) myStudy = HOMARD_UTILS::GetActiveStudyDocument();
-   _PTR(SObject) aSObj ( myStudy->FindObjectID( aIO->getEntry() ) );
-   if (!aSObj) return QString::null;
-
-   _PTR(GenericAttribute) anAttr;
-   if (!aSObj->FindAttribute(anAttr, "AttributeExternalFileDef")) return QString::null;
-   _PTR(AttributeExternalFileDef) aFileName (anAttr);
-   std::string aFile = aFileName->Value();
-   SCRUTE(aFile);
-   return QString(aFile.c_str());
-}
-
-//============================================================
-// Function ChercheDansDir
-// Cherche tous les fichiers dans la directory qui correspondent 
-// a la fois a la base et au numero d iteration, numero d iteration +1
-// exple info.00.bilan
-// ou qual.tetr.00.dat
-//================================================================================
-QStringList HOMARD_UTILS::ChercheDansDir(QString direct, QString base, int numIter)
-//================================================================================
-{
-    QStringList liste;
-
-
-    QString strNum = QString("");
-    if (numIter != -1) strNum = HOMARD_UTILS::Transforme(numIter);
-    QString strNum1 = QString("");
-    if (numIter != -1) strNum1 = HOMARD_UTILS::Transforme(numIter+1);
-
-    struct dirent **namelist;
-    int n = scandir(direct.toLatin1(), &namelist, 0, alphasort);
-    while(n--) 
-    {
-       QString fich =QString( namelist[n]->d_name);
-       if (fich.contains(base) > 0) 
-       {
-        if (numIter != -1)
-        {
-          if ((fich.contains(strNum)>0) or (fich.contains(strNum1)>0))
-             liste.append(fich);
-         }
-        else
-        {
-          liste.append(fich);
-         }
-       }
-    }
-    return liste;
-}
-
-QString HOMARD_UTILS::Transforme(int num)
-{
-    std::ostringstream nb ;
-    nb << std::setw(2) << std::setfill('0') << num ;
-    QString retour= QString(nb.str().c_str());
-    return retour;
-
-}
-
-//=============================================================================
-void HOMARD_UTILS::AddNewRoot(int Tag, QString Racine)
-//=============================================================================
-{
-     _PTR(Study) myStudy = HOMARD_UTILS::GetActiveStudyDocument();
-     ASSERT(myStudy);
-     _PTR(StudyBuilder) myBuilder( myStudy->NewBuilder() );
-     ASSERT(myBuilder);
-     _PTR(SComponent)  aFather=myStudy->FindComponent("HOMARD");
-     ASSERT(aFather);
-    
-     _PTR(SObject) InfoRoot = myBuilder->NewObjectToTag (aFather, Tag);
-     _PTR(GenericAttribute) anAttr;
-    anAttr = myBuilder->FindOrCreateAttribute(InfoRoot, "AttributeName");
-    _PTR(AttributeName) aName (anAttr);
-    aName->SetValue(Racine.toStdString());
-}
-//=============================================================================
-void HOMARD_UTILS::RangeSousTag(int Tag,QString FileName, int TagFichier, QString Comment,QString FileDir)
-//=============================================================================
-{
-    _PTR(SObject) Root;
-     _PTR(Study) myStudy = HOMARD_UTILS::GetActiveStudyDocument();
-     ASSERT(myStudy);
-     _PTR(StudyBuilder) myBuilder( myStudy->NewBuilder() );
-     ASSERT(myBuilder);
-     _PTR(SComponent)  aFather=myStudy->FindComponent("HOMARD");
-     ASSERT(aFather);
-     bool found = aFather->FindSubObject(Tag,Root);
-     ASSERT(found);
-
-     _PTR(SObject) MonInfo = myBuilder->NewObjectToTag (Root, TagFichier);
-     ASSERT(MonInfo);
-     _PTR(GenericAttribute) anAttr;
-     anAttr = myBuilder->FindOrCreateAttribute(MonInfo, "AttributeName");
-    _PTR(AttributeName) aName (anAttr);
-     aName->SetValue(FileName.toStdString());
-     QString FileComplet = FileDir +QString("/") +FileName;
-     anAttr = myBuilder->FindOrCreateAttribute(MonInfo, "AttributeExternalFileDef");
-    _PTR(AttributeExternalFileDef) aFile (anAttr);
-     aFile->SetValue((FileComplet).toStdString());
-     anAttr = myBuilder->FindOrCreateAttribute(MonInfo, "AttributeComment");
-    _PTR(AttributeComment) aComment (anAttr);
-     aComment->SetValue(Comment.toStdString());
-}
 
 //=========================================================================================================
 void HOMARD_UTILS::PushOnHelp(QString monFichierAide)
index 54fe680627da304380f5aa4452348def24123bb1..f202cadb49a1f65c4ab21bea5000c4819202b010 100644 (file)
@@ -1,21 +1,21 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2012  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 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.
+// 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
+// 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
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
 
 #ifndef HOMARD_H_UTILS
 #define HOMARD_H_UTILS
@@ -51,19 +51,19 @@ class SalomeApp_Module;
 class LightApp_SelectionMgr;
 
 namespace HOMARD_UTILS {
-  
+
   _PTR(Study)
   GetCStudy(const SalomeApp_Study* theStudy);
   SUIT_Study* GetActiveStudy();
   _PTR(Study) GetActiveStudyDocument();
 
   void updateObjBrowser();
-  
+
   const SALOME_ListIO& selectedIO();    // Function returns a list of SALOME_InteractiveObject's from
                                         // selection manager in GUI
 
   int   IObjectCount() ;                // Function returns the number of selected objects
-  
+
   Handle(SALOME_InteractiveObject) firstIObject() ;
                                         // Function returns the first selected object in the list
                                         // of selected objects
@@ -73,6 +73,7 @@ namespace HOMARD_UTILS {
                                        // of selected objects
 
   bool isXmgrace(_PTR(SObject)  MonObj);
+  bool isBoundaryAn(_PTR(SObject)  MonObj);
   bool isBoundaryDi(_PTR(SObject)  MonObj);
   bool isZone(_PTR(SObject)  MonObj);
   bool isHypo(_PTR(SObject)  MonObj);
@@ -82,15 +83,8 @@ namespace HOMARD_UTILS {
   bool isFileSummary(_PTR(SObject)  MonObj);
   bool isObject(_PTR(SObject)  MonObj, QString TypeObject, int option );
 
-  QString ChercheFileDansSelection();
-  QStringList ChercheDansDir (QString direct, QString base, int numIter);
-  void RangeSousTag          (int Tag,QString FileName, int TagFichier, QString Comment,QString FileDir);
-
   void PushOnHelp(QString monFichierAide);
 
-  QString Transforme(int num);
-
-  void AddNewRoot(int Tag, QString Racine);
   extern SALOME_ListIO mySelected;
 }
 
diff --git a/src/HOMARDGUI/HOMARD_icons.po b/src/HOMARDGUI/HOMARD_icons.po
deleted file mode 100644 (file)
index b386757..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
diff --git a/src/HOMARDGUI/HOMARD_msg_en.po b/src/HOMARDGUI/HOMARD_msg_en.po
deleted file mode 100644 (file)
index eea471a..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. translating
-# from French to English, "Foo::Bar" would be translated to "Pub",
-# not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2003-11-19 03:10:19 PM CET\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::BUT_OK"
-msgstr "OK"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::INF_HOMARD_BANNER"
-msgstr "HOMARD Information"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::INF_HOMARD_MENU"
-msgstr "This is just a test"
-
-#: HOMARDGUI.cxx:57
-msgid "HOMARDGUI::QUE_HOMARD_LABEL"
-msgstr "Name Import"
-
-#: HOMARDGUI.cxx:57
-msgid "HOMARDGUI::QUE_HOMARD_NAME"
-msgstr "Please, Enter your name"
-
-msgid "PREF_GROUP_GENERAL"
-msgstr "General"
-
-msgid "PREF_TAB_SETTINGS"
-msgstr "Settings"
-
-msgid "PREF_TEST"
-msgstr "Pascale"
-
-
-#-------------------------------------------------------------------------
-# MEN
-#-------------------------------------------------------------------------
-
-msgid "MEN_HOMARD"
-msgstr "HOMARD"
-
-msgid "ROOT_INFO"
-msgstr "Informations"
-
-#-----------   Menu   bar   ----------#
-#------ MEN -----#
-msgid "MEN_EDIT"
-msgstr "Edition d un fichier de commande Homard par Eficas"
-
-msgid "MEN_INFO"
-msgstr "Information Maillage (interactif)"
-
-msgid "MEN_ADAPT_GESTION"
-msgstr "Adaptation : gestion d une iteration"
-
-msgid "MEN_ADAPT_CREATION"
-msgstr "Adaptation : creation du cas"
-
-msgid "MEN_UNIFORME"
-msgstr "Raffiment Uniforme"
-
-msgid "MEN_POURLESNULS"
-msgstr "Homard Pour Les Nuls"
-
-msgid "SSM_AVANCE"
-msgstr "Utilisation Avancee"
-
-#-----------   Menu   bar   ----------#
-#------ MEN -----#
-msgid "MEN_EDIT"
-msgstr "Edition d un fichier de commande Homard par Eficas"
-
-msgid "MEN_INFO"
-msgstr "Information Maillage (interactif)"
-
-msgid "MEN_ADAPT_GESTION"
-msgstr "Adaptation : gestion d une iteration"
-
-msgid "MEN_ADAPT_CREATION"
-msgstr "Adaptation : creation du cas"
-
-
-#------ STB -----#
-msgid "STB_EDIT"
-msgstr "Lance Eficas pour editer le fichier de commande Homard"
-
-msgid "STB_INFO"
-msgstr "Information Homard (interactif)"
-
-msgid "STB_ADAPT_GESTION"
-msgstr "Adaptation Homard"
-
-msgid "STB_ADAPT_CREATION"
-msgstr "Creation d un cas Homard"
-
-
-#-------Popup Menu ----------------#
-msgid "MEN_FILE_EDIT"
-msgstr "Edition"
-msgid "TOP_FILE_EDIT"
-msgstr "Edition"
-msgid "MEN_FILE_EDIT"
-msgstr "Edition"
index bcc2452ba2ff97e506b63c68078d09c8aced6361..ab5b65389bb95abf2f3ed9e13d87ee01f548087e 100644 (file)
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<!--
-  Copyright (C) 2007-2008  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
-
--->
-<TS version="1.1" >
-    <context>
-        <name>@default</name>
-        <message>
-            <source>MEN_HOMARD</source>
-            <translation>HOMARD</translation>
-        </message>
-        <message>
-            <source>MEN_NEW_CASE</source>
-            <translation>New case</translation>
-        </message>
-        <message>
-            <source>MEN_NEW_ITERATION</source>
-            <translation>Next iteration</translation>
-        </message>
-        <message>
-            <source>MEN_COMPUTE</source>
-            <translation>Compute</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_CASE</source>
-            <translation>Edit case</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_ITERATION</source>
-            <translation>Edit iteration</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_HYPO</source>
-            <translation>Edit hypothesis</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_ZONE</source>
-            <translation>Edit zone</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_BOUNDARY</source>
-            <translation>Edit boundary</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_MESS_FILE</source>
-            <translation>Show file</translation>
-        </message>
-    </context>
+<TS version="2.0" language="en_GB">
+<context>
+    <name>@default</name>
+    <message>
+        <source>HOM_MEN_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_NEW_CASE</source>
+        <translation>New case</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_NEW_ITERATION</source>
+        <translation>Next iteration</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_COMPUTE</source>
+        <translation>Compute</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_CASE</source>
+        <translation>Edit the case</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_ITERATION</source>
+        <translation>Edit the iteration</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_HYPO</source>
+        <translation>Edit the hypothesis</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_ZONE</source>
+        <translation>Edit the zone</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_BOUNDARY</source>
+        <translation>Edit the boundary</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_MESS_FILE</source>
+        <translation>Show the file</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_NEW_CASE</source>
+        <translation>New case</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_NEW_ITERATION</source>
+        <translation>Next iteration</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_COMPUTE</source>
+        <translation>Compute</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_CASE</source>
+        <translation>Edit the case</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_ITERATION</source>
+        <translation>Edit the iteration</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_HYPO</source>
+        <translation>Edit the hypothesis</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_ZONE</source>
+        <translation>Edit the zone</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_BOUNDARY</source>
+        <translation>Edit the boundary</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_MESS_FILE</source>
+        <translation>Show the file</translation>
+    </message>
+    <message>
+        <source>HOM_STB_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_STB_NEW_CASE</source>
+        <translation>New case</translation>
+    </message>
+    <message>
+        <source>HOM_STB_NEW_ITERATION</source>
+        <translation>Next iteration</translation>
+    </message>
+    <message>
+        <source>HOM_STB_COMPUTE</source>
+        <translation>Compute</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_CASE</source>
+        <translation>Edit the case</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_ITERATION</source>
+        <translation>Edit the iteration</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_HYPO</source>
+        <translation>Edit the hypothesis</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_ZONE</source>
+        <translation>Edit the zone</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_BOUNDARY</source>
+        <translation>Edit the boundary</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_MESS_FILE</source>
+        <translation>Show the file</translation>
+    </message>
+    <message>
+        <source>HOM_WARNING</source>
+        <translation>Warning</translation>
+    </message>
+    <message>
+        <source>HOM_ERROR</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <source>HOM_INACTIVE_BUTTON</source>
+        <translation>Inactive button</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_1</source>
+        <translation>Select an object.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_2</source>
+        <translation>Select only one object.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_3</source>
+        <translation>Select an object with type %1.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_FILE_1</source>
+        <translation>Select a file.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_FILE_2</source>
+        <translation>Select only one file.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_1</source>
+        <translation>This MED file cannot be read.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_2</source>
+        <translation>No mesh in this MED file.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_3</source>
+        <translation>More than one mesh in this MED file.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_4</source>
+        <translation>The mesh in this MED file cannot be read.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_5</source>
+        <translation>No field in this MED file.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_6</source>
+        <translation>The field(s) in this MED file cannot be read.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_STUDY</source>
+        <translation>Select a study object with associated MED file \n or select a MED file.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_NAME</source>
+        <translation>The case must be named.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_1</source>
+        <translation>A directory for the case must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_2</source>
+        <translation>This directory is already used.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_3</source>
+        <translation>A valid directory for the case must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_MESH</source>
+        <translation>The file of the initial mesh must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_GROUP</source>
+        <translation>The group &quot;%1&quot; cannot be given for more than 1 boundary.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of a case</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_NAME</source>
+        <translation>The iteration must be named.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT</source>
+        <translation>The previous iteration must be given.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_MESH</source>
+        <translation>Give a name for the final mesh.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_HYPO</source>
+        <translation>An hypothesis must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_FIELD_FILE</source>
+        <translation>With this hypothesis, a file for the field must be given.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT_0</source>
+        <translation>Mesh</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT_1</source>
+        <translation>First iteration of the case</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of an iteration</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NAME</source>
+        <translation>The hypothesis must be named.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_FIELD_FILE</source>
+        <translation>A file for the field must be given.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_1</source>
+        <translation>A zone must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_2</source>
+        <translation>At least, one zone must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_3</source>
+        <translation>Either refinement or coarsening, but not both.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_L2</source>
+        <translation>L2 norm</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_INF</source>
+        <translation>Infinite norm</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_ABS</source>
+        <translation>Absolute</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_REL</source>
+        <translation>Relative</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_COMP</source>
+        <translation>At least, one component must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of an hypothesis</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_NAME</source>
+        <translation>The zone must be named.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_LIMIT</source>
+        <translation>%1 maxi must be greater than %1 mini.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_RAYON</source>
+        <translation>The external radius must be greater than the internal radius.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of a zone</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_NAME</source>
+        <translation>The boundary must be named.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_MESH</source>
+        <translation>The file for the mesh of the boundary must be selected.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_CASE</source>
+        <translation>The meshfile of the case is unknown.</translation>
+    </message>
+    <message>
+        <source>HOM_AXE</source>
+        <translation>The axis must be a non 0 vector.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_A_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of an analytical boundary</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_D_EDIT_WINDOW_TITLE</source>
+        <translation>Edition of a discrete boundary</translation>
+    </message>
+    <message>
+        <source>HOM_GROU_EDIT_WINDOW_TITLE</source>
+        <translation>Selected groups</translation>
+    </message>
+</context>
 </TS>
diff --git a/src/HOMARDGUI/HOMARD_msg_fr.po b/src/HOMARDGUI/HOMARD_msg_fr.po
deleted file mode 100644 (file)
index 9023c6a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This is a Qt message file in .po format.  Each msgid starts with
-# a scope.  This scope should *NOT* be translated - eg. translating
-# from French to English, "Foo::Bar" would be translated to "Pub",
-# not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2003-11-19 03:10:25 PM CET\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::BUT_OK"
-msgstr "OK"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::INF_HOMARD_BANNER"
-msgstr "Information HOMARD"
-
-#: HOMARDGUI.cxx:76
-msgid "HOMARDGUI::INF_HOMARD_MENU"
-msgstr "Ceci est un simple test"
-
-#: HOMARDGUI.cxx:57
-msgid "HOMARDGUI::QUE_HOMARD_LABEL"
-msgstr "Import Prénom"
-
-#: HOMARDGUI.cxx:57
-msgid "HOMARDGUI::QUE_HOMARD_NAME"
-msgstr "Entrez votre prénom, s'il vous plait"
index 9a1a4271224af50860104ff35dbd162e73eab628..5863f16ab71461cfb447c8b32bfc50b114fb5b1b 100644 (file)
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<!--
-  Copyright (C) 2007-2008  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
-
--->
-<TS version="1.1" >
-    <context>
-        <name>@default</name>
-        <message>
-            <source>MEN_HOMARD</source>
-            <translation>HOMARD</translation>
-        </message>
-        <message>
-            <source>MEN_NEW_CASE</source>
-            <translation>New case</translation>
-        </message>
-        <message>
-            <source>MEN_NEW_ITERATION</source>
-            <translation>New iteration</translation>
-        </message>
-        <message>
-            <source>MEN_COMPUTE</source>
-            <translation>Compute</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_CASE</source>
-            <translation>Edit case</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_ITERATION</source>
-            <translation>Edit iteration</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_HYPO</source>
-            <translation>Edit hypothesis</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_ZONE</source>
-            <translation>Edit zone</translation>
-        </message>
-        <message>
-            <source>MEN_EDIT_BOUNDARY</source>
-            <translation>Edit boundary</translation>
-        </message>
-    </context>
+<TS version="2.0" language="fr_FR">
+<context>
+    <name>@default</name>
+    <message>
+        <source>HOM_MEN_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_NEW_CASE</source>
+        <translation>Nouveau cas</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_NEW_ITERATION</source>
+        <translation>Nouvelle itération</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_COMPUTE</source>
+        <translation>Calculer</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_CASE</source>
+        <translation>Editer le cas</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_ITERATION</source>
+        <translation>Editer l&apos;itération</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_HYPO</source>
+        <translation>Editer l&apos;hypothèse</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_ZONE</source>
+        <translation>Editer la zone</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_BOUNDARY</source>
+        <translation>Editer la frontière</translation>
+    </message>
+    <message>
+        <source>HOM_MEN_EDIT_MESS_FILE</source>
+        <translation>Afficher le fichier</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_NEW_CASE</source>
+        <translation>Nouveau cas</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_NEW_ITERATION</source>
+        <translation>Nouvelle itération</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_COMPUTE</source>
+        <translation>Calculer</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_CASE</source>
+        <translation>Editer le cas</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_ITERATION</source>
+        <translation>Editer l&apos;itération</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_HYPO</source>
+        <translation>Editer l&apos;hypothèse</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_ZONE</source>
+        <translation>Editer la zone</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_BOUNDARY</source>
+        <translation>Editer la frontière</translation>
+    </message>
+    <message>
+        <source>HOM_TOP_EDIT_MESS_FILE</source>
+        <translation>Afficher le fichier</translation>
+    </message>
+    <message>
+        <source>HOM_STB_HOMARD</source>
+        <translation>HOMARD</translation>
+    </message>
+    <message>
+        <source>HOM_STB_NEW_CASE</source>
+        <translation>Nouveau cas</translation>
+    </message>
+    <message>
+        <source>HOM_STB_NEW_ITERATION</source>
+        <translation>Nouvelle itération</translation>
+    </message>
+    <message>
+        <source>HOM_STB_COMPUTE</source>
+        <translation>Calculer</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_CASE</source>
+        <translation>Editer le cas</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_ITERATION</source>
+        <translation>Editer l&apos;itération</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_HYPO</source>
+        <translation>Editer l&apos;hypothèse</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_ZONE</source>
+        <translation>Editer la zone</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_BOUNDARY</source>
+        <translation>Editer la frontière</translation>
+    </message>
+    <message>
+        <source>HOM_STB_EDIT_MESS_FILE</source>
+        <translation>Afficher le fichier</translation>
+    </message>
+    <message>
+        <source>HOM_WARNING</source>
+        <translation>Avertissement</translation>
+    </message>
+    <message>
+        <source>HOM_ERROR</source>
+        <translation>Erreur</translation>
+    </message>
+    <message>
+        <source>HOM_INACTIVE_BUTTON</source>
+        <translation>Bouton inactif</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>Appliquer et fermer</translation>
+    </message>
+    <message>
+        <source>Apply</source>
+        <translation>Appliquer</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Aide</translation>
+    </message>
+    <message>
+        <source>New</source>
+        <translation>Nouveau</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Editer</translation>
+    </message>
+    <message>
+        <source>Quit</source>
+        <translation>Quitter</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <source>Directory</source>
+        <translation>Répertoire</translation>
+    </message>
+    <message>
+        <source>Mesh</source>
+        <translation>Maillage</translation>
+    </message>
+    <message>
+        <source>Selection</source>
+        <translation>Sélection</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Aucun</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Tout</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_1</source>
+        <translation>Sélectionner un objet.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_2</source>
+        <translation>Sélectionner un seul objet.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_OBJECT_3</source>
+        <translation>Sélectionner un objet de type %1.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_FILE_1</source>
+        <translation>Sélectionner un fichier.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_FILE_2</source>
+        <translation>Sélectionner un seul fichier.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_1</source>
+        <translation>Ce fichier MED est illisible.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_2</source>
+        <translation>Ce fichier MED ne contient aucun maillage.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_3</source>
+        <translation>Ce fichier MED contient plus d&apos;un maillage.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_4</source>
+        <translation>Impossible de lire le maillage de ce fichier MED.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_5</source>
+        <translation>Ce fichier MED ne contient aucun champ.</translation>
+    </message>
+    <message>
+        <source>HOM_MED_FILE_6</source>
+        <translation>Impossible de lire le(s) champ(s) de ce fichier MED.</translation>
+    </message>
+    <message>
+        <source>HOM_SELECT_STUDY</source>
+        <translation>Sélectionner une étude avec un fichier MED associé\n ou sélectionner un fichier MED.</translation>
+    </message>
+    <message>
+        <source>Create a case</source>
+        <translation>Création d&apos;un cas</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_NAME</source>
+        <translation>Il faut donner un nom au cas.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_1</source>
+        <translation>Il faut choisir un répertoire de travail pour le cas.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_2</source>
+        <translation>Ce répertoire est déjà utilisé.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_DIRECTORY_3</source>
+        <translation>Un répertoire valide doit être choisi.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_MESH</source>
+        <translation>Il faut choisir le maillage initial.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_GROUP</source>
+        <translation>Le groupe &quot;%1&quot; ne peut pas être attribué à plus d&apos;une frontière.</translation>
+    </message>
+    <message>
+        <source>HOM_CASE_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;un cas</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_NAME</source>
+        <translation>Il faut donner un nom à l&apos;itération.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT</source>
+        <translation>Il faut désigner l&apos;itération précédente.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_MESH</source>
+        <translation>Donner le nom du maillage final.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_HYPO</source>
+        <translation>Choisir une hypothèse.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_FIELD_FILE</source>
+        <translation>Avec cette hypothèse, il faut fournir le fichier du champ.</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT_0</source>
+        <translation>Maillage</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_STARTING_POINT_1</source>
+        <translation>Itération initiale du cas</translation>
+    </message>
+    <message>
+        <source>HOM_ITER_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;une itération</translation>
+    </message>
+    <message>
+        <source>Discrete boundary</source>
+        <translation>Frontière discrète</translation>
+    </message>
+    <message>
+        <source>Analytical boundary</source>
+        <translation>Frontière analytique</translation>
+    </message>
+    <message>
+        <source>Conformity type</source>
+        <translation>Type de conformité</translation>
+    </message>
+    <message>
+        <source>Conformal</source>
+        <translation>Conforme</translation>
+    </message>
+    <message>
+        <source>Non conformal</source>
+        <translation>Non conforme</translation>
+    </message>
+    <message>
+        <source>Non conformal option</source>
+        <translation>Option de non conformité</translation>
+    </message>
+    <message>
+        <source>Free</source>
+        <translation>Libre</translation>
+    </message>
+    <message>
+        <source>1 hanging node per mesh</source>
+        <translation>1 noeud pendant par maille</translation>
+    </message>
+    <message>
+        <source>1 node per edge</source>
+        <translation>1 noeud pendant par arête</translation>
+    </message>
+    <message>
+        <source>Advanced options</source>
+        <translation>Options avancées</translation>
+    </message>
+    <message>
+        <source>Authorized pyramids</source>
+        <translation>Pyramides autorisées</translation>
+    </message>
+    <message>
+        <source>Minimal diameter</source>
+        <translation>Diamètre minimal</translation>
+    </message>
+    <message>
+        <source>Initialization of adaptation</source>
+        <translation>Initialisation de l&apos;adaptation</translation>
+    </message>
+    <message>
+        <source>Maximal level</source>
+        <translation>Niveau maximal</translation>
+    </message>
+    <message>
+        <source>Create an iteration</source>
+        <translation>Création d&apos;une itération</translation>
+    </message>
+    <message>
+        <source>Iteration Name</source>
+        <translation>Nom de l&apos;itération</translation>
+    </message>
+    <message>
+        <source>Previous iteration</source>
+        <translation>Itération précédente</translation>
+    </message>
+    <message>
+        <source>Mesh n</source>
+        <translation>Maillage n</translation>
+    </message>
+    <message>
+        <source>Mesh n+1</source>
+        <translation>Maillage n+1</translation>
+    </message>
+    <message>
+        <source>Field information</source>
+        <translation>Information sur les champs</translation>
+    </message>
+    <message>
+        <source>Field file</source>
+        <translation>Fichier des champs</translation>
+    </message>
+    <message>
+        <source>No time step</source>
+        <translation>Sans pas de temps</translation>
+    </message>
+    <message>
+        <source>Last time step</source>
+        <translation>Dernier pas de temps</translation>
+    </message>
+    <message>
+        <source>Chosen time step</source>
+        <translation>Pas de temps choisi</translation>
+    </message>
+    <message>
+        <source>Time step</source>
+        <translation>Pas de temps</translation>
+    </message>
+    <message>
+        <source>Rank</source>
+        <translation>Numéro d&apos;ordre</translation>
+    </message>
+    <message>
+        <source>Hypothesis</source>
+        <translation>Hypothèse</translation>
+    </message>
+    <message>
+        <source>Create an hypothesis</source>
+        <translation>Création d&apos;une hypothèse</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NAME</source>
+        <translation>Il faut donner un nom à l&apos;hypothèse.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_FIELD_FILE</source>
+        <translation>Il faut fournir le fichier du champ.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_1</source>
+        <translation>Choisir une zone.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_2</source>
+        <translation>Il faut choisir au moins une zone.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_ZONE_3</source>
+        <translation>Raffinement ou déraffinement, mais pas les deux.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_L2</source>
+        <translation>Norme L2</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_INF</source>
+        <translation>Norme infinie</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_ABS</source>
+        <translation>Absolu</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_NORM_REL</source>
+        <translation>Relatif</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_COMP</source>
+        <translation>Il faut choisir au moins une composante.</translation>
+    </message>
+    <message>
+        <source>HOM_HYPO_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;une hypothèse</translation>
+    </message>
+    <message>
+        <source>Type of adaptation</source>
+        <translation>Type d&apos;adaptation</translation>
+    </message>
+    <message>
+        <source>Uniform</source>
+        <translation>Uniforme</translation>
+    </message>
+    <message>
+        <source>Driven by a field</source>
+        <translation>Pilotage par un champ</translation>
+    </message>
+    <message>
+        <source>With geometrical zones</source>
+        <translation>Selon des zones géométriques</translation>
+    </message>
+    <message>
+        <source>Uniform adaptation</source>
+        <translation>Adaptation uniforme</translation>
+    </message>
+    <message>
+        <source>Coarsening</source>
+        <translation>Déraffinement</translation>
+    </message>
+    <message>
+        <source>Refinement</source>
+        <translation>Raffinement</translation>
+    </message>
+    <message>
+        <source>Nothing</source>
+        <translation>Rien</translation>
+    </message>
+    <message>
+        <source>File of the fields</source>
+        <translation>Fichier des champs</translation>
+    </message>
+    <message>
+        <source>Governing field for the adaptation</source>
+        <translation>Champ pilotant l&apos;adaptation</translation>
+    </message>
+    <message>
+        <source>Field name</source>
+        <translation>Nom du champ</translation>
+    </message>
+    <message>
+        <source>Jump between elements</source>
+        <translation>Saut entre éléments</translation>
+    </message>
+    <message>
+        <source>Component</source>
+        <translation>Composante</translation>
+    </message>
+    <message>
+        <source>Refinement threshold</source>
+        <translation>Seuil de raffinement</translation>
+    </message>
+    <message>
+        <source>Coarsening threshold</source>
+        <translation>Seuil de déraffinement</translation>
+    </message>
+    <message>
+        <source>Percentage of meshes</source>
+        <translation>Pourcentage de mailles</translation>
+    </message>
+    <message>
+        <source>No refinement</source>
+        <translation>Sans raffinement</translation>
+    </message>
+    <message>
+        <source>No coarsening</source>
+        <translation>Sans déraffinement</translation>
+    </message>
+    <message>
+        <source>Zone management</source>
+        <translation>Gestion des zones</translation>
+    </message>
+    <message>
+        <source>Zone name</source>
+        <translation>Nom de la zone</translation>
+    </message>
+    <message>
+        <source>Field Interpolation</source>
+        <translation>Interpolation des champs</translation>
+    </message>
+    <message>
+        <source>Chosen</source>
+        <translation>Choisi</translation>
+    </message>
+    <message>
+        <source>Create a zone</source>
+        <translation>Création d&apos;une zone</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_NAME</source>
+        <translation>Il faut donner un nom à la zone.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_LIMIT</source>
+        <translation>%1 maxi doit être plus grand que %1 mini.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_RAYON</source>
+        <translation>Le rayon externe doit être supérieur au rayon interne.</translation>
+    </message>
+    <message>
+        <source>HOM_ZONE_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;une zone</translation>
+    </message>
+    <message>
+        <source>Type of zone</source>
+        <translation>Type de la zone</translation>
+    </message>
+    <message>
+        <source>Box</source>
+        <translation>Boîte</translation>
+    </message>
+    <message>
+        <source>Sphere</source>
+        <translation>Sphère</translation>
+    </message>
+    <message>
+        <source>Cylinder</source>
+        <translation>Cylindre</translation>
+    </message>
+    <message>
+        <source>Disk</source>
+        <translation>Disque</translation>
+    </message>
+    <message>
+        <source>Disk with hole</source>
+        <translation>Disque avec trou</translation>
+    </message>
+    <message>
+        <source>Pipe</source>
+        <translation>Tuyau</translation>
+    </message>
+    <message>
+        <source>Coordinates</source>
+        <translation>Coordonnées</translation>
+    </message>
+    <message>
+        <source>Create an analytical boundary</source>
+        <translation>Création d&apos;une frontière analytique</translation>
+    </message>
+    <message>
+        <source>Create a discrete boundary</source>
+        <translation>Création d&apos;une frontière discrète</translation>
+    </message>
+    <message>
+        <source>Type of boundary</source>
+        <translation>Type de la frontière</translation>
+    </message>
+    <message>
+        <source>Radius</source>
+        <translation>Rayon</translation>
+    </message>
+    <message>
+        <source>External radius</source>
+        <translation>Rayon externe</translation>
+    </message>
+    <message>
+        <source>Internal radius</source>
+        <translation>Rayon interne</translation>
+    </message>
+    <message>
+        <source>Height</source>
+        <translation>Hauteur</translation>
+    </message>
+    <message>
+        <source>X axis</source>
+        <translation>X axe</translation>
+    </message>
+    <message>
+        <source>Y axis</source>
+        <translation>Y axe</translation>
+    </message>
+    <message>
+        <source>Z axis</source>
+        <translation>Z axe</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_NAME</source>
+        <translation>Il faut donner un nom à la frontière.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_MESH</source>
+        <translation>Il faut choisir le maillage qui contient la frontière.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_CASE</source>
+        <translation>Le fichier du maillage du cas est inconnu.</translation>
+    </message>
+    <message>
+        <source>HOM_AXE</source>
+        <translation>L&apos;axe doit être un vecteur non nul.</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_A_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;une frontière analytique</translation>
+    </message>
+    <message>
+        <source>HOM_BOUN_D_EDIT_WINDOW_TITLE</source>
+        <translation>Edition d&apos;une frontière discrète</translation>
+    </message>
+    <message>
+        <source>HOM_GROU_EDIT_WINDOW_TITLE</source>
+        <translation>Groupes choisis</translation>
+    </message>
+    <message>
+        <source>Filtering with groups</source>
+        <translation>Filtrage par les groupes</translation>
+    </message>
+    <message>
+        <source>Selection of groups</source>
+        <translation>Choix des groupes</translation>
+    </message>
+    <message>
+        <source>Selected groups</source>
+        <translation>Groupes choisis</translation>
+    </message>
+    <message>
+        <source>Group</source>
+        <translation>Groupe</translation>
+    </message>
+    <message>
+        <source>Edit a file</source>
+        <translation>Affichage d&apos;un fichier</translation>
+    </message>
+    <message>
+        <source>Print</source>
+        <translation>Imprimer</translation>
+    </message>
+</context>
 </TS>
diff --git a/src/HOMARDGUI/HomardConfigFile.cxx b/src/HOMARDGUI/HomardConfigFile.cxx
deleted file mode 100644 (file)
index 834472d..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-//
-//  File   : HomardConfigFile.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : HOMARD
-//  cree un fichier de configuration HOMARD
-    
-using namespace std;
-
-#include "HomardConfigFile.hxx"
-#include "utilities.h"
-#include <iostream>
-#include <fstream>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-
-
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-HomardConfigFile::HomardConfigFile():
-                       _nomFichier(string("HOMARD.Configuration")),
-                        _prefix(string(""))
- {
-
-        string t1[] = {string("CCMaiN__"), string("CCNoMN__"), string("CCSolN__"), string("CCFronti"), 
-                       string("HOMaiN__"), string("RenumN__"), string("ListeStd"), string("PPBasFic"),
-                      string("CCAssoci"), string("NumeIter"), string("CCMaiNP1"), string("CCNoMNP1"),
-                      string("TypeElem"), string("TypeRaff"), string("TypeDera"), string("HOMaiN__"),
-                      string("HOMaiNP1"), string("CCNoChaI"), string("CCCoChaI"), string("CCNumOrI"),
-                      string("CCNumPTI"), string("SeuilBPE"), string("SeuilHPE"), string("CCIndica")};
-        std::list<motcle> l1(t1,t1+24);
-        _motscle_ss_valeur=l1;
-
-        string t2[] = {string("Aucun0__"), string("Nb_Enti2"), string("Interpe3"), string("Qualite5"),
-                       string("Nb_Enti7"), string("Connex11"), string("Taille13") };
-        std::list<motcle> l2(t2,t2+7);
-        _motscle_oui_non=l2;
-
-        string t3[] = {string("ModeHOMA"), string("EcriFiHO")};
-        std::list<motcle> l3(t3,t3+2);
-        _motscle_autre=l3;
-
-       _dictValeur[string("Nb_Enti2")]=string("oui") ;
-
-        _dictValeuroui[string("Aucun0__")]=0;
-        _dictValeuroui[string("Nb_Enti2")]=2;
-        _dictValeuroui[string("Interpe3")]=3;
-        _dictValeuroui[string("Qualite5")]=5;
-        _dictValeuroui[string("Nb_Enti7")]=7;
-        _dictValeuroui[string("Connex11")]=11;
-        _dictValeuroui[string("Taille13")]=13;
-
- }
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-HomardConfigFile::~HomardConfigFile()
-{
-}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-void HomardConfigFile::setBilan(bool etat)
-{
-       _bBilan = etat;
-}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-bool HomardConfigFile::initVal(const string motclef ,const string valeur)
-{
-       //SCRUTE(motclef);
-       //SCRUTE(valeur);
-        bool ok = false;
-        if ( cherche_dans_liste(_motscle_ss_valeur, motclef))
-        {
-          _dictValeur[motclef]=valeur;
-           ok = true;
-        }
-       else
-        {
-           if ( cherche_dans_liste(_motscle_oui_non,motclef))
-          {    
-               if (valeur =="oui" || valeur == "non")
-               {
-                  _dictValeur[motclef]=valeur;
-                   ok = true;
-               }
-           }
-           else
-              if ( cherche_dans_liste(_motscle_autre,motclef))
-             // Il faudrait avoir un mecanisme de verification de la valeur //
-             // passee, non mis en place actuellement avec des strings ?    //
-             { 
-                  _dictValeur[motclef]=valeur;
-                   ok = true;
-             } 
-        }
-        return ok;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-bool HomardConfigFile::cherche_dans_liste(std::list<motcle> & liste,  const motcle motclef )
-{
-     bool ok = false;
-     std::list<motcle>::iterator it =liste.begin();
-     while ( it != liste.end())
-     {
-       if ( *it == motclef)
-        {
-           ok = true;
-           break;
-        }
-        it ++;
-     }
-     return ok;
-}
-    
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-string HomardConfigFile::getMyDir()
-{
-       return _myDir;
-}
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-bool HomardConfigFile::createFile()
-{
-    bool ok = true;
-
-    const char *a = "/tmp/ed.XXXXXX";
-    char * cible = new char[15];
-    strcpy(cible,a) ;
-    mkdtemp(cible);
-   
-    _myDir = string(cible);
-    string myfile=_myDir+string("/HOMARD.Configuration");
-
-    try
-    {
-       
-        ofstream ficHomard( myfile.c_str()) ;
-        int typeBilan = 1;
-
-        std::map<motcle,valeur>::iterator it = _dictValeur.begin();
-        for (; it != _dictValeur.end(); it++)
-        {
-           motcle motclef=(*it).first;
-           valeur valmot =(*it).second;
-           if ( cherche_dans_liste(_motscle_oui_non,motclef))
-           {
-               if (valmot== "oui")
-                {
-                 typeBilan=typeBilan*_dictValeuroui[motclef]; 
-                 }
-           }
-           else
-            ficHomard << motclef << " " << valmot << std::endl ; 
-        }
-               
-        if (_bBilan  == true)
-        {
-          ficHomard << "TypeBila "<< typeBilan << std::endl ;
-        }
-        ficHomard.close();
-    }
-    catch (...)
-    {
-       ok = false;
-    }
-  return ok;
-   
-}
diff --git a/src/HOMARDGUI/HomardConfigFile.hxx b/src/HOMARDGUI/HomardConfigFile.hxx
deleted file mode 100644 (file)
index 0c3de37..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-//  File   : HomardConfigFile.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-
-
-#ifndef _HOMARD_CONFIG_FILE
-#define _HOMARD_CONFIG_FILE
-
-#include <string>
-#include <map>
-#include <list>
-
-using namespace std;
-
-class HomardConfigFile
-{
-       typedef string motcle;
-       typedef string valeur;
-
-public  :
-       HomardConfigFile();
-       ~HomardConfigFile();
-         bool initVal(const string motclef ,const string valeur);
-         bool createFile();
-         void setBilan(bool etat);
-         string getMyDir();
-
-protected :
-
-       std::list<motcle> _motscle_ss_valeur;
-       std::list<motcle> _motscle_oui_non ;
-       std::list<motcle> _motscle_autre;
-
-       std::map <motcle,valeur> _dictValeur;
-       std::map <motcle,int>    _dictValeuroui;
-
-        string _nomFichier;
-        string _prefix;
-        bool   _bBilan;
-        string _myDir;
-
-        bool cherche_dans_liste(std::list<motcle> & liste , const motcle motclef);
-} ;
-#endif 
diff --git a/src/HOMARDGUI/HomardDlg.h b/src/HOMARDGUI/HomardDlg.h
deleted file mode 100644 (file)
index c4a1134..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/********************************************************************************
-** Form generated from reading ui file 'HomardDlg.ui'
-**
-** Created: Fri Jan 16 19:12:09 2009
-**      by: Qt User Interface Compiler version 4.4.3
-**
-** WARNING! All changes made in this file will be lost when recompiling ui file!
-********************************************************************************/
-
-#ifndef HOMARDDLG_H
-#define HOMARDDLG_H
-
-#include <QtCore/QVariant>
-#include <QtGui/QAction>
-#include <QtGui/QApplication>
-#include <QtGui/QButtonGroup>
-#include <QtGui/QCheckBox>
-#include <QtGui/QComboBox>
-#include <QtGui/QGridLayout>
-#include <QtGui/QGroupBox>
-#include <QtGui/QLabel>
-#include <QtGui/QLineEdit>
-#include <QtGui/QPushButton>
-#include <QtGui/QSpacerItem>
-#include <QtGui/QWidget>
-
-QT_BEGIN_NAMESPACE
-
-class Ui_HomardDlg
-{
-public:
-    QGroupBox *groupBox;
-    QLabel *label;
-    QLabel *label_2;
-    QComboBox *ListeMeshName;
-    QPushButton *PushFichier;
-    QLineEdit *NomFichier;
-    QGroupBox *groupBox_3;
-    QWidget *widget;
-    QGridLayout *gridLayout;
-    QCheckBox *NbEntites;
-    QSpacerItem *verticalSpacer;
-    QCheckBox *Volumes;
-    QSpacerItem *horizontalSpacer;
-    QCheckBox *Inter;
-    QCheckBox *Qualite;
-    QCheckBox *Connexite;
-    QGroupBox *groupBox_2;
-    QCheckBox *Histo;
-    QCheckBox *Bilan;
-    QGroupBox *groupBox_4;
-    QPushButton *lancement;
-    QPushButton *terminer;
-
-    void setupUi(QWidget *HomardDlg)
-    {
-    if (HomardDlg->objectName().isEmpty())
-        HomardDlg->setObjectName(QString::fromUtf8("HomardDlg"));
-    HomardDlg->resize(632, 372);
-    groupBox = new QGroupBox(HomardDlg);
-    groupBox->setObjectName(QString::fromUtf8("groupBox"));
-    groupBox->setGeometry(QRect(10, 0, 614, 131));
-    label = new QLabel(groupBox);
-    label->setObjectName(QString::fromUtf8("label"));
-    label->setGeometry(QRect(20, 20, 57, 17));
-    label_2 = new QLabel(groupBox);
-    label_2->setObjectName(QString::fromUtf8("label_2"));
-    label_2->setGeometry(QRect(20, 90, 57, 17));
-    ListeMeshName = new QComboBox(groupBox);
-    ListeMeshName->setObjectName(QString::fromUtf8("ListeMeshName"));
-    ListeMeshName->setGeometry(QRect(100, 70, 501, 41));
-    PushFichier = new QPushButton(groupBox);
-    PushFichier->setObjectName(QString::fromUtf8("PushFichier"));
-    PushFichier->setGeometry(QRect(100, 20, 51, 31));
-    NomFichier = new QLineEdit(groupBox);
-    NomFichier->setObjectName(QString::fromUtf8("NomFichier"));
-    NomFichier->setGeometry(QRect(170, 10, 431, 51));
-    groupBox_3 = new QGroupBox(HomardDlg);
-    groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
-    groupBox_3->setGeometry(QRect(10, 140, 614, 78));
-    widget = new QWidget(groupBox_3);
-    widget->setObjectName(QString::fromUtf8("widget"));
-    widget->setGeometry(QRect(21, 10, 445, 92));
-    gridLayout = new QGridLayout(widget);
-    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
-    gridLayout->setContentsMargins(0, 0, 0, 0);
-    NbEntites = new QCheckBox(widget);
-    NbEntites->setObjectName(QString::fromUtf8("NbEntites"));
-    NbEntites->setChecked(true);
-
-    gridLayout->addWidget(NbEntites, 0, 0, 3, 2);
-
-    verticalSpacer = new QSpacerItem(20, 58, QSizePolicy::Minimum, QSizePolicy::Expanding);
-
-    gridLayout->addItem(verticalSpacer, 0, 2, 4, 1);
-
-    Volumes = new QCheckBox(widget);
-    Volumes->setObjectName(QString::fromUtf8("Volumes"));
-    Volumes->setChecked(true);
-
-    gridLayout->addWidget(Volumes, 0, 3, 2, 1);
-
-    horizontalSpacer = new QSpacerItem(198, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-    gridLayout->addItem(horizontalSpacer, 1, 1, 2, 1);
-
-    Inter = new QCheckBox(widget);
-    Inter->setObjectName(QString::fromUtf8("Inter"));
-    Inter->setChecked(false);
-
-    gridLayout->addWidget(Inter, 2, 3, 2, 1);
-
-    Qualite = new QCheckBox(widget);
-    Qualite->setObjectName(QString::fromUtf8("Qualite"));
-    Qualite->setChecked(true);
-
-    gridLayout->addWidget(Qualite, 3, 0, 1, 2);
-
-    Connexite = new QCheckBox(widget);
-    Connexite->setObjectName(QString::fromUtf8("Connexite"));
-    Connexite->setChecked(true);
-
-    gridLayout->addWidget(Connexite, 4, 0, 1, 2);
-
-    groupBox_2 = new QGroupBox(HomardDlg);
-    groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
-    groupBox_2->setGeometry(QRect(10, 220, 614, 78));
-    Histo = new QCheckBox(groupBox_2);
-    Histo->setObjectName(QString::fromUtf8("Histo"));
-    Histo->setGeometry(QRect(330, 30, 171, 22));
-    Histo->setChecked(true);
-    Bilan = new QCheckBox(groupBox_2);
-    Bilan->setObjectName(QString::fromUtf8("Bilan"));
-    Bilan->setGeometry(QRect(10, 30, 171, 22));
-    Bilan->setChecked(true);
-    groupBox_4 = new QGroupBox(HomardDlg);
-    groupBox_4->setObjectName(QString::fromUtf8("groupBox_4"));
-    groupBox_4->setGeometry(QRect(10, 310, 614, 51));
-    lancement = new QPushButton(groupBox_4);
-    lancement->setObjectName(QString::fromUtf8("lancement"));
-    lancement->setGeometry(QRect(430, 10, 83, 31));
-    terminer = new QPushButton(groupBox_4);
-    terminer->setObjectName(QString::fromUtf8("terminer"));
-    terminer->setGeometry(QRect(520, 10, 83, 31));
-
-    retranslateUi(HomardDlg);
-
-    QMetaObject::connectSlotsByName(HomardDlg);
-    } // setupUi
-
-    void retranslateUi(QWidget *HomardDlg)
-    {
-    HomardDlg->setWindowTitle(QApplication::translate("HomardDlg", "Homard : Analyse de maillage", 0, QApplication::UnicodeUTF8));
-    groupBox->setTitle(QString());
-    label->setText(QApplication::translate("HomardDlg", "MED File", 0, QApplication::UnicodeUTF8));
-    label_2->setText(QApplication::translate("HomardDlg", "Mesh", 0, QApplication::UnicodeUTF8));
-    PushFichier->setText(QApplication::translate("HomardDlg", "Icon", 0, QApplication::UnicodeUTF8));
-    groupBox_3->setTitle(QApplication::translate("HomardDlg", "Options", 0, QApplication::UnicodeUTF8));
-    NbEntites->setText(QApplication::translate("HomardDlg", "Nombre d'entit\303\251s", 0, QApplication::UnicodeUTF8));
-    Volumes->setText(QApplication::translate("HomardDlg", "Volumes/Surfaces/Longueurs", 0, QApplication::UnicodeUTF8));
-    Inter->setText(QApplication::translate("HomardDlg", "Interp\303\251n\303\251tration", 0, QApplication::UnicodeUTF8));
-    Qualite->setText(QApplication::translate("HomardDlg", "Qualit\303\251", 0, QApplication::UnicodeUTF8));
-    Connexite->setText(QApplication::translate("HomardDlg", "Connexit\303\251", 0, QApplication::UnicodeUTF8));
-    groupBox_2->setTitle(QApplication::translate("HomardDlg", "Conservation des r\303\251sultats", 0, QApplication::UnicodeUTF8));
-    Histo->setText(QApplication::translate("HomardDlg", "Histogramme Qualit\303\251", 0, QApplication::UnicodeUTF8));
-    Bilan->setText(QApplication::translate("HomardDlg", "Bilan", 0, QApplication::UnicodeUTF8));
-    groupBox_4->setTitle(QString());
-    lancement->setText(QApplication::translate("HomardDlg", "Ok", 0, QApplication::UnicodeUTF8));
-    terminer->setText(QApplication::translate("HomardDlg", "Cancel", 0, QApplication::UnicodeUTF8));
-    Q_UNUSED(HomardDlg);
-    } // retranslateUi
-
-};
-
-namespace Ui {
-    class HomardDlg: public Ui_HomardDlg {};
-} // namespace Ui
-
-QT_END_NAMESPACE
-
-#endif // HOMARDDLG_H
index 08ae65d532b47cc612178e9a45eabfcfce4f58ab..1858afed932773fe21c2637e82914ef1303c2ff3 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HomardQtCommun.h"
 #include "HOMARDGUI_Utils.h"
 
@@ -15,7 +34,7 @@
 #include "SalomeApp_Tools.h"
 
 using namespace std;
-extern "C" 
+extern "C"
 {
 #include <med.h>
 }
@@ -30,141 +49,145 @@ QString HOMARD_QT_COMMUN::SelectionArbreEtude(QString commentaire, int grave )
 // Si grave = 0, ce n'est pas grave de ne rien trouver et pas de message
 // Si grave = 1, ce n'est pas grave de ne rien trouver mais on emet un message
 {
-   int nbSel = HOMARD_UTILS::IObjectCount() ;
-   if ( nbSel == 0 )
-   {
-      if ( grave == 1 )
-      {
-        QMessageBox::information( 0, "Bad selection",
-                                  QString("Select an object."),
-        QMessageBox::Ok + QMessageBox::Default );
-      }
-      return QString("");
-    }
-   if ( nbSel > 1 )
-   {
-      QMessageBox::information( 0, "Bad selection",
-                                QString("Select one object only."),
-      QMessageBox::Ok + QMessageBox::Default );
-      return QString("");
+  int nbSel = HOMARD_UTILS::IObjectCount() ;
+  if ( nbSel == 0 )
+  {
+    if ( grave == 1 )
+    {
+      QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
+                                QObject::tr("HOM_SELECT_OBJECT_1") );
     }
-
-    Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
-    if ( aIO->hasEntry() )
+    return QString("");
+  }
+  if ( nbSel > 1 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_SELECT_OBJECT_2") );
+    return QString("");
+  }
+//
+  Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
+  if ( aIO->hasEntry() )
+  {
+    _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
+    _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
+    _PTR(GenericAttribute) anAttr;
+    if (aSO->FindAttribute(anAttr, "AttributeComment") )
     {
-      _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
-      _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
-      _PTR(GenericAttribute) anAttr;
-      if (aSO->FindAttribute(anAttr, "AttributeComment") )
+      _PTR(AttributeComment) attributComment = anAttr;
+      QString aComment= QString(attributComment->Value().data());
+      int iteration = aComment.lastIndexOf(commentaire);
+      if ( iteration !=0  )
+      {
+        QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                  QObject::tr("HOM_SELECT_OBJECT_3").arg(commentaire) );
+        return QString("");
+      }
+      if (aSO->FindAttribute(anAttr, "AttributeName") )
       {
-           _PTR(AttributeComment) attributComment = anAttr;
-           QString aComment= QString(attributComment->Value().data());
-           int iteration = aComment.lastIndexOf(commentaire);
-           if ( iteration !=0  )
-           {
-                  QString message=QString("Select an object : ");
-                  message += commentaire;
-                  QMessageBox::information( 0, "Bad selection", message,
-                  QMessageBox::Ok + QMessageBox::Default );
-                  return QString("");
-           }
-           if (aSO->FindAttribute(anAttr, "AttributeName") )
-           {
-                _PTR(AttributeName) attributName = anAttr;
-                 QString aName= QString(attributName->Value().data());
-                 return aName;
-           }
+        _PTR(AttributeName) attributName = anAttr;
+        QString aName= QString(attributName->Value().data());
+        return aName;
       }
     }
-    return QString("");
+  }
+//
+  return QString("");
 }
 
 // =======================================================================
 QString HOMARD_QT_COMMUN::SelectionCasEtude()
 // =======================================================================
 {
-   QString aName    = QString("");
-   int nbSel = HOMARD_UTILS::IObjectCount() ;
-   if ((nbSel > 1) or ( nbSel == 0 )) 
-   {
-      QMessageBox::information( 0, "Bad selection",
-                                QString("Select one object only"),
-                               QMessageBox::Ok + QMessageBox::Default );
-      return QString("");
+  QString aName    = QString("");
+  int nbSel = HOMARD_UTILS::IObjectCount() ;
+  if ( nbSel == 0 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_SELECT_OBJECT_1") );
+    return QString("");
+  }
+  if ( nbSel > 1 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_SELECT_OBJECT_2") );
+    return QString("");
+  }
+  Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
+  if ( aIO->hasEntry() )
+  {
+       _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
+       _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
+        _PTR(SObject) aSObjCas = aSO->GetFather();
+       _PTR(GenericAttribute) anAttr;
+       if (aSObjCas->FindAttribute(anAttr, "AttributeName") )
+        {
+            _PTR(AttributeName) attributName = anAttr;
+            aName= QString(attributName->Value().data());
+        }
+        return aName;
     }
-    Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
-    if ( aIO->hasEntry() )
-    {
-        _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
-        _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
-         _PTR(SObject) aSObjCas = aSO->GetFather();
-        _PTR(GenericAttribute) anAttr;
-         if (aSObjCas->FindAttribute(anAttr, "AttributeName") )
-          {
-             _PTR(AttributeName) attributName = anAttr;
-             aName= QString(attributName->Value().data());
-          }
-          return aName;
-      }
-      return QString("");
+    return QString("");
 }
 
 // =======================================================================
 QString HOMARD_QT_COMMUN::PushNomFichier(bool avertir)
 // =======================================================================
-// Gestion les boutons qui permettent  de 
+// Gestion les boutons qui permettent  de
 // 1) retourne le nom d'un fichier par une fenetre de dialogue si aucun
 //    objet est selectionne dans l arbre d etude
-// 2) retourne le nom du fichier asocie a l objet 
+// 2) retourne le nom du fichier asocie a l objet
 //    selectionne dans l arbre d etude
 {
-   MESSAGE("HOMARD_QT_COMMUN::PushNomFichier");
-   QString aFile=QString::null;
-   int nbSel = HOMARD_UTILS::IObjectCount() ;
-   if ( nbSel == 0 )
-   {
-      aFile = QFileDialog::getOpenFileName(0,QString("File Selection"),QString("") ,QString("Med files (*.med);;all (*) ") );
-   }
-   if (nbSel > 1)
-   {
-      QMessageBox::information( 0, "Bad selection",
-                                QString("Select one file only"),
-                               QMessageBox::Ok + QMessageBox::Default );
-   }
-   if (nbSel == 1)
-   {
-      Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
-      if ( aIO->hasEntry() )
-      {
-        _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
-        _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
-        _PTR(GenericAttribute) anAttr;
-        _PTR(AttributeFileType) aFileType;
-        _PTR(AttributeExternalFileDef) aFileName;
-        if (aSO) {
-           if (aSO->FindAttribute(anAttr, "AttributeFileType") ) {
-              aFileType=anAttr;
-              QString fileType=QString(aFileType->Value().data());
-              if ( fileType==QString("FICHIERMED")) {
-                  if (aSO->FindAttribute(anAttr,"AttributeExternalFileDef")) {
-                      aFileName=anAttr;
-                     aFile= QString(aFileName->Value().data()); } } } } }
-       
-      if ( aFile==QString::null )
-      {
-         if (avertir ) { 
-         QMessageBox::information( 0, "Bad selection",
-                QString(" Select a study object with associated MED file \n or a MED file"),
-               QMessageBox::Ok + QMessageBox::Default );
+  MESSAGE("HOMARD_QT_COMMUN::PushNomFichier");
+  QString aFile=QString::null;
+  int nbSel = HOMARD_UTILS::IObjectCount() ;
+  if ( nbSel == 0 )
+  {
+    aFile = QFileDialog::getOpenFileName(0,QString("File Selection"),QString("") ,QString("Med files (*.med);;all (*) ") );
+  }
+  if (nbSel > 1)
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_SELECT_FILE_2") );
+  }
+  if (nbSel == 1)
+  {
+    Handle(SALOME_InteractiveObject) aIO = HOMARD_UTILS::firstIObject();
+    if ( aIO->hasEntry() )
+    {
+      _PTR(Study) aStudy = HOMARD_UTILS::GetActiveStudyDocument();
+      _PTR(SObject) aSO ( aStudy->FindObjectID( aIO->getEntry() ) );
+      _PTR(GenericAttribute) anAttr;
+      _PTR(AttributeFileType) aFileType;
+      _PTR(AttributeExternalFileDef) aFileName;
+      if (aSO) {
+        if (aSO->FindAttribute(anAttr, "AttributeFileType") ) {
+          aFileType=anAttr;
+          QString fileType=QString(aFileType->Value().data());
+          if ( fileType==QString("FICHIERMED")) {
+            if (aSO->FindAttribute(anAttr,"AttributeExternalFileDef")) {
+            aFileName=anAttr;
+            aFile= QString(aFileName->Value().data()); }
           }
-         aFile = QFileDialog::getOpenFileName();
-         if (!aFile.isEmpty())
-         {
-            aFile=aFile;
-         }
+        }
       }
-   }
-   return aFile;
+    }
+
+    if ( aFile==QString::null )
+    {
+      if ( avertir ) {
+        QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
+                                QObject::tr("HOM_SELECT_STUDY") );
+      }
+      aFile = QFileDialog::getOpenFileName();
+      if (!aFile.isEmpty())
+      {
+        aFile=aFile;
+      }
+    }
+  }
+  return aFile;
 
 }
 
@@ -174,55 +197,76 @@ int HOMARD_QT_COMMUN::OuvrirFichier(QString aFile)
 // =======================================================================
 // renvoie le medId associe au fichier Med apres ouverture
 {
-   int MedIdt = MEDouvrir(const_cast<char *>(aFile.toStdString().c_str()),MED_LECTURE);
-   if (MedIdt <0)
-   {
-      QMessageBox::information( 0, "Bad selection",
-      QString("MED File is unreadable"),
-      QMessageBox::Ok + QMessageBox::Default );
-   }
-   return MedIdt;
+  med_int medIdt = MEDfileOpen(aFile.toStdString().c_str(),MED_ACC_RDONLY);
+  if (medIdt <0)
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_MED_FILE_1") );
+  }
+  return (int) medIdt;
 }
 
 // ======================================================
 QString HOMARD_QT_COMMUN::LireNomMaillage(QString aFile)
 // ========================================================
 {
-    
-    int MedIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-    int numberOfMeshes = MEDnMaa(MedIdt) ;
-    if (numberOfMeshes != 1 )
-    {
-      QMessageBox::information( 0, "Bad selection",
-      QString("MED File contains more than one mesh"),
-      QMessageBox::Ok + QMessageBox::Default );
-    }
-
-    QString nomMaillage= HOMARD_QT_COMMUN::LireNomMaillage(MedIdt,1);
-    MEDfermer(MedIdt);
-    return nomMaillage;
+  med_int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+  med_int numberOfMeshes = MEDnMesh(medIdt) ;
+  if (numberOfMeshes == 0 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_MED_FILE_2") );
+  }
+  if (numberOfMeshes > 1 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_MED_FILE_3") );
+  }
+
+  QString nomMaillage= HOMARD_QT_COMMUN::LireNomMaillage(medIdt,1);
+  MEDfileClose(medIdt);
+  return nomMaillage;
 }
 // =======================================================================
-QString HOMARD_QT_COMMUN::LireNomMaillage(int MedIdt ,int MeshId)
+QString HOMARD_QT_COMMUN::LireNomMaillage(int medIdt ,int meshId)
 // =======================================================================
 {
-     QString NomMaillage=QString::null;
-     char maa[MED_TAILLE_NOM+1];
-     char desc[MED_TAILLE_DESC+1];
-     med_int mdim;
-     med_maillage type;
-
-     if ( MEDmaaInfo(MedIdt,MeshId,maa,&mdim,&type,desc) < 0 )
-     {
-          QMessageBox::information( 0, "Bad selection",
-          QString("Error : Mesh is unreadable"),
-          QMessageBox::Ok + QMessageBox::Default );
-     }
-     else
-     {
-        NomMaillage=QString(maa);  
-     }
-     return NomMaillage;
+  QString NomMaillage=QString::null;
+  char meshname[MED_NAME_SIZE+1];
+  med_int spacedim,meshdim;
+  med_mesh_type meshtype;
+  char descriptionription[MED_COMMENT_SIZE+1];
+  char dtunit[MED_SNAME_SIZE+1];
+  med_sorting_type sortingtype;
+  med_int nstep;
+  med_axis_type axistype;
+  int naxis = MEDmeshnAxis(medIdt,1);
+  char *axisname=new char[naxis*MED_SNAME_SIZE+1];
+  char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
+  med_err aRet = MEDmeshInfo(medIdt,
+                          meshId,
+                          meshname,
+                          &spacedim,
+                          &meshdim,
+                          &meshtype,
+                          descriptionription,
+                          dtunit,
+                          &sortingtype,
+                          &nstep,
+                          &axistype,
+                          axisname,
+                          axisunit);
+
+  if ( aRet < 0 )
+  {
+  QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                            QObject::tr("HOM_MED_FILE_4") );
+  }
+  else
+  {
+    NomMaillage=QString(meshname);
+  }
+  return NomMaillage;
 }
 
 
@@ -232,182 +276,121 @@ std::list<QString> HOMARD_QT_COMMUN::GetListeChamps(QString aFile)
 {
 // Il faut voir si plusieurs maillages
 
-   MESSAGE("HOMARD_QT_COMMUN::GetListeChamps");
-   std::list<QString> ListeChamp;
-
-   char *comp, *unit;
-   char nomcha  [MED_TAILLE_NOM+1];
-   med_type_champ typcha;
-   med_int ncomp;
-
-   SCRUTE(aFile.toStdString());
-   int MedIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-   if ( MedIdt < 0 ) { return ListeChamp; }
-   
-   // Le fichier Med est lisible
-   // Lecture du maillage
-
-   // Lecture du nombre de champs
-   med_int ncha = MEDnChamp(MedIdt, 0) ;
-   if (ncha < 1 )
-   {
-          QMessageBox::information( 0, "Bad selection",
-                     QString(" Error : Fields are unreadable"),
-                     QMessageBox::Ok + QMessageBox::Default );
-         MEDfermer(MedIdt);
-         return ListeChamp;
-   }
-
-   for (int i=0; i< ncha; i++)
-   {
-       if ((ncomp = MEDnChamp(MedIdt,i+1)) < 0)  
-       {
-            QMessageBox::information( 0, "Bad selection",
-                     QString("Error : field's componants are unreadable"),
-                     QMessageBox::Ok + QMessageBox::Default );
-            MEDfermer(MedIdt);
-           return ListeChamp;
-        }
+  MESSAGE("HOMARD_QT_COMMUN::GetListeChamps");
+  std::list<QString> ListeChamp;
+
+  char *comp, *unit;
+  char nomcha  [MED_NAME_SIZE+1];
+  char meshname[MED_NAME_SIZE+1];
+  med_field_type typcha;
+  med_int ncomp;
+  med_bool local;
+  med_int nbofcstp;
+
+  SCRUTE(aFile.toStdString());
+  med_int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+  if ( medIdt < 0 ) { return ListeChamp; }
+
+  // Le fichier Med est lisible
+  // Lecture du maillage
+
+  // Lecture du nombre de champs
+  med_int ncha = MEDnField(medIdt) ;
+  if (ncha < 1 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                            QObject::tr("HOM_MED_FILE_5") );
+    MEDfileClose(medIdt);
+    return ListeChamp;
+  }
+
+  for (int i=0; i< ncha; i++)
+  {
+    /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
+    ncomp = MEDfieldnComponent(medIdt,i+1);
+    comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+    unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+    char dtunit[MED_SNAME_SIZE+1];
+    if ( MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) < 0 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_MED_FILE_6") );
+      MEDfileClose(medIdt);
+      return ListeChamp;
+    }
 
-   /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
-        comp = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
-        unit = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
-        if ( MEDchampInfo(MedIdt,i+1,nomcha,&typcha,comp,unit,ncomp) < 0 ) 
-        {
-             QMessageBox::information( 0, "Bad selection",
-                      QString(" Error : Fields are unreadable"),
-                      QMessageBox::Ok + QMessageBox::Default );
-           MEDfermer(MedIdt);
-            return ListeChamp;
-         }
-
-      ListeChamp.push_back(QString(nomcha));
-      free(comp);
-      free(unit);
-   }
-   MEDfermer(MedIdt);
-   return ListeChamp;
+    ListeChamp.push_back(QString(nomcha));
+    free(comp);
+    free(unit);
+  }
+  MEDfileClose(medIdt);
+  return ListeChamp;
 }
 
 // ======================================================================================
 std::list<QString> HOMARD_QT_COMMUN::GetListeComposants(QString aFile, QString aChamp)
 // ======================================================================================
 {
-   MESSAGE ( "GetListeComposants pour le fichier " << aFile.toStdString().c_str());
-   MESSAGE ( "GetListeComposants pour le champ " << aChamp.toStdString().c_str());
-
-   std::list<QString> ListeComposants;
-
-   char *comp, *unit;
-   char nomcha  [MED_TAILLE_NOM+1];
-   med_type_champ typcha;
-   med_int ncomp;
-
-   int MedIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
-   if ( MedIdt < 0 ) { return ListeComposants; }
-   
-
-   // Lecture du nombre de champs
-   med_int ncha = MEDnChamp(MedIdt, 0) ;
-   if (ncha < 1 )
-   {
-          QMessageBox::information( 0, "Bad selection",
-                      QString(" Error : Fields are unreadable"),
-                      QMessageBox::Ok + QMessageBox::Default );
-         MEDfermer(MedIdt);
-         return ListeComposants;
-   }
-
-   for (int i=0; i< ncha; i++)
-   {
-     if ((ncomp = MEDnChamp(MedIdt,i+1)) < 0)  
-     {
-          QMessageBox::information( 0, "Bad selection",
-                     QString("Error : field's componants are unreadable"),
-                     QMessageBox::Ok + QMessageBox::Default );
-         MEDfermer(MedIdt);
-         return ListeComposants;
-      }
-
-   /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
-      comp = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
-      unit = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
-
-      if ( MEDchampInfo(MedIdt,i+1,nomcha,&typcha,comp,unit,ncomp) < 0 ) 
-      {
-          QMessageBox::information( 0, "Bad selection",
-                      QString(" Error : Fields are unreadable"),
-                      QMessageBox::Ok + QMessageBox::Default );
-          MEDfermer(MedIdt);
-           return ListeComposants;
-       }
-       if ( QString(nomcha) != aChamp ) {
-         free(comp);
-          free (unit);
-          continue;}
-
-       for (int j = 0; j <ncomp; j++) 
-       { 
-             char cible[MED_TAILLE_PNOM +1];
-             strncpy(cible,comp+j*MED_TAILLE_PNOM,MED_TAILLE_PNOM );
-             cible[MED_TAILLE_PNOM ]='\0';
-             ListeComposants.push_back(QString(cible));
-       }
-       break;
-   }
-   free(comp);
-   free(unit);
-   MEDfermer(MedIdt);
-   return ListeComposants;
-}
-
-// =======================================================================
-void HOMARD_QT_COMMUN::Recopie(QString aDir, QString aFichier)
-// =======================================================================
-{
-   if (chdir(aDir.toLatin1()) != 0)
-   {
-       if (mkdir(aDir.toLatin1(), S_IRWXU|S_IRGRP|S_IXGRP) != 0)
-        {
-          QMessageBox::information( 0, "ERROR",
-                    QString("Unable to create directory."),
-                    QMessageBox::Ok + QMessageBox::Default );
-                    return;
-          //ASSERT("Pb a la creation de la directory" == 0);
-        }
-       if (chdir(aDir.toLatin1()) != 0)
-        {
-          QMessageBox::information( 0, "ERROR",
-                    QString("Unable to access directory."),
-                    QMessageBox::Ok + QMessageBox::Default );
-                    return;
-          //ASSERT("Pb pour acceder la directory" == 0);
-        }
-   }
-   QString copie = QString("cp ")+aFichier+QString(" ")+aDir;
-   system(copie.toLatin1());
-}
+  MESSAGE ( "GetListeComposants pour le fichier " << aFile.toStdString().c_str());
+  MESSAGE ( "GetListeComposants pour le champ " << aChamp.toStdString().c_str());
+
+  std::list<QString> ListeComposants;
+
+  char *comp, *unit;
+  char nomcha  [MED_NAME_SIZE+1];
+  char meshname[MED_NAME_SIZE+1];
+  med_field_type typcha;
+  med_int ncomp;
+  med_bool local;
+  med_int nbofcstp;
+
+  int medIdt = HOMARD_QT_COMMUN::OuvrirFichier(aFile);
+  if ( medIdt < 0 ) { return ListeComposants; }
+
+
+  // Lecture du nombre de champs
+  med_int ncha = MEDnField(medIdt) ;
+  if (ncha < 1 )
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                            QObject::tr("HOM_MED_FILE_5") );
+    MEDfileClose(medIdt);
+    return ListeComposants;
+  }
+
+  for (int i=0; i< ncha; i++)
+  {
+    /* Lecture du type du champ, des noms des composantes et du nom de l'unite*/
+    ncomp = MEDfieldnComponent(medIdt,i+1);
+    comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+    unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
+    char dtunit[MED_SNAME_SIZE+1];
+
+    if ( MEDfieldInfo(medIdt,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&nbofcstp) < 0 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_MED_FILE_6") );
+      MEDfileClose(medIdt);
+      return ListeComposants;
+    }
+    
+    if ( QString(nomcha) != aChamp ) {
+      free(comp);
+      free(unit);
+      continue;
+    }
 
-// =======================================================================
-void HOMARD_QT_COMMUN::Creetmp()
-// =======================================================================
-{
-   QString aDir=QString("/tmp/Homard/");
-   if (chdir(aDir.toLatin1()) != 0)
-   {
-       if (mkdir(aDir.toLatin1(), S_IRWXU|S_IRGRP|S_IXGRP) != 0)
-        {
-          QMessageBox::information( 0, "ERROR",
-                    QString("Unable to create directory /tmp/Homard."),
-                    QMessageBox::Ok + QMessageBox::Default );
-                    return;
-         }
-       if (chdir(aDir.toLatin1()) != 0)
-        {
-          QMessageBox::information( 0, "ERROR",
-                    QString("Unable to access directory /tmp/Homard."),
-                    QMessageBox::Ok + QMessageBox::Default );
-                    return;
-         }
-   }
+    for (int j = 0; j <ncomp; j++)
+    {
+      char cible[MED_SNAME_SIZE +1];
+      strncpy(cible,comp+j*MED_SNAME_SIZE,MED_SNAME_SIZE );
+      cible[MED_SNAME_SIZE ]='\0';
+      ListeComposants.push_back(QString(cible));
+    }
+    break;
+  }
+  free(comp);
+  free(unit);
+  MEDfileClose(medIdt);
+  return ListeComposants;
 }
index a7538b99c69eeffb0250ecc09b2c94b8078489b5..f5fe6d3bc15f843f9c3e1479841b8da1283ef1bc 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef HOMARDQTCOMMUN_H
 #define HOMARDQTCOMMUN_H
 
 #include <qstring.h>
 #include <vector>
 #include <set>
-extern "C"
-{
-#include <med.h>
-}
 
 class QComboBox;
 
@@ -32,9 +47,6 @@ namespace HOMARD_QT_COMMUN
     std::list<QString> GetListeChamps(QString aFile);
     std::list<QString> GetListeComposants(QString aFile, QString aChamp);
 
-    void    Recopie(QString aDir, QString aFichier);
-    void    Creetmp();
-
     QString SelectionArbreEtude(QString commentaire, int grave );
     QString SelectionCasEtude();
 
index 940c38ef56c54df8a93c50e162f927b3979556e9..a1b64618093ec62be7681d1b89770f68e7a3684a 100644 (file)
@@ -1,33 +1,32 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# -* Makefile *- 
-# Author : 
+# Author :
 # Modified by : Alexander BORODIN (OCN) - autotools usage
 #
-# header files 
+# header files
 
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 salomeinclude_HEADERS =       \
+       MonCreateBoundaryAn.h \
+       CreateBoundaryAn.h    \
+       MonEditBoundaryAn.h   \
        MonCreateBoundaryDi.h \
        CreateBoundaryDi.h    \
        MonEditBoundaryDi.h   \
@@ -41,13 +40,13 @@ salomeinclude_HEADERS =       \
        CreateHypothesis.h    \
        MonEditHypothesis.h   \
        MonCreateListGroup.h  \
+       CreateListGroup.h     \
        MonEditListGroup.h    \
        MonCreateIteration.h  \
        CreateIteration.h     \
        MonEditIteration.h    \
        HOMARDGUI.h           \
        HOMARDGUI_Utils.h     \
-       HomardDlg.h           \
        EditFile.h            \
        MonEditFile.h         \
        HomardQtCommun.h
@@ -59,7 +58,8 @@ lib_LTLIBRARIES = libHOMARD.la
 dist_libHOMARD_la_SOURCES =     \
        HOMARDGUI.cxx           \
        HOMARDGUI_Utils.cxx     \
-       HomardConfigFile.cxx    \
+       MonCreateBoundaryAn.cxx \
+       MonEditBoundaryAn.cxx \
        MonCreateBoundaryDi.cxx \
        MonEditBoundaryDi.cxx \
        MonCreateCase.cxx       \
@@ -78,6 +78,8 @@ dist_libHOMARD_la_SOURCES =     \
 # MOC pre-processing
 MOC_FILES =                         \
        HOMARDGUI_moc.cxx           \
+       MonCreateBoundaryAn_moc.cxx \
+       MonEditBoundaryAn_moc.cxx   \
        MonCreateBoundaryDi_moc.cxx \
        MonEditBoundaryDi_moc.cxx   \
        MonCreateCase_moc.cxx       \
@@ -98,8 +100,9 @@ libHOMARD_la_CPPFLAGS =          \
        $(QT_INCLUDES)           \
        $(CAS_CPPFLAGS)          \
        $(PYTHON_INCLUDES)       \
-       $(MED2_INCLUDES)         \
+       $(MED3_INCLUDES)         \
        $(HDF5_INCLUDES)         \
+       $(BOOST_CPPFLAGS)        \
        $(CORBA_CXXFLAGS)        \
        $(CORBA_INCLUDES)        \
        $(KERNEL_CXXFLAGS)       \
@@ -107,15 +110,16 @@ libHOMARD_la_CPPFLAGS =          \
        -I$(srcdir)/../HOMARD    \
        -I$(srcdir)/../HOMARD_I  \
        -I$(top_builddir)/idl    \
+       -I$(top_builddir)        \
        -I$(VISU_ROOT_DIR)/include/salome  \
        -I$(MED_ROOT_DIR)/include/salome   \
-       -I$(top_builddir)/salome_adm/unix
+       -I$(top_builddir)/adm_local/unix
 
 libHOMARD_la_LDFLAGS  =                 \
        ../../idl/libSalomeIDLHOMARD.la \
        ../HOMARD_I/libHOMARDEngine.la  \
        $(KERNEL_LDFLAGS)               \
-       $(MED2_LIBS)                    \
+       $(MED3_LIBS)                    \
         -lSalomeLifeCycleCORBA          \
        $(GUI_LDFLAGS)                  \
        -lSalomeApp                     \
@@ -123,6 +127,17 @@ libHOMARD_la_LDFLAGS  =                 \
 
 # resources files
 nodist_salomeres_DATA =  \
-       HOMARD_msg_en.qm
-#      HOMARD_msg_fr.qm 
-#      HOMARD_icons.qm
+       HOMARD_msg_en.qm \
+       HOMARD_msg_fr.qm
+
+UI_FILES = \
+CreateBoundaryAn.ui \
+CreateBoundaryDi.ui \
+CreateCase.ui \
+CreateHypothesis.ui \
+CreateIteration.ui \
+CreateListGroup.ui \
+CreateZone.ui \
+EditFile.ui
+
+EXTRA_DIST += $(UI_FILES)
diff --git a/src/HOMARDGUI/MonCreateBoundaryAn.cxx b/src/HOMARDGUI/MonCreateBoundaryAn.cxx
new file mode 100644 (file)
index 0000000..925e697
--- /dev/null
@@ -0,0 +1,351 @@
+// Copyright (C) 2011-2012  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
+//
+
+using namespace std;
+
+#include "MonCreateBoundaryAn.h"
+#include "MonCreateCase.h"
+
+#include <QFileDialog>
+#include <QMessageBox>
+
+#include "SalomeApp_Tools.h"
+#include "HOMARDGUI_Utils.h"
+#include "HomardQtCommun.h"
+#include <utilities.h>
+
+#include <SUIT_Desktop.h>
+#include <SUIT_MessageBox.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
+#include <SUIT_ViewManager.h>
+
+// ------------------------------------------------------------------------------------------------------------------------
+MonCreateBoundaryAn::MonCreateBoundaryAn(MonCreateCase* parent, bool modal,
+                             HOMARD::HOMARD_Gen_var myHomardGen,
+                             QString caseName) :
+// ------------------------------------------------------------------------------------------------------------------------------
+/* Constructs a MonCreateBoundaryAn
+   appele pour une vraie creation
+   initialise un cylindre et non une sphere
+*/
+    QDialog(0), Ui_CreateBoundaryAn(),
+    _parent(parent),
+    _aBoundaryAnName (""),
+    _aCaseName(caseName),
+    _BoundaryType(1),
+    _BoundaryAnXcentre(0), _BoundaryAnYcentre(0), _BoundaryAnZcentre(0), _BoundaryAnRayon(0),
+    _BoundaryAnXaxis(0), _BoundaryAnYaxis(0), _BoundaryAnZaxis(0),
+    _Xcentre(0), _Ycentre(0), _Zcentre(0), _Rayon(0),
+    _Xmin(0), _Xmax(0), _Xincr(0), _Ymin(0), _Ymax(0), _Yincr(0), _Zmin(0), _Zmax(0), _Zincr(0), _DMax(0),
+    Chgt (false)
+    {
+      MESSAGE("Constructeur") ;
+      _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
+      setupUi(this);
+      setModal(modal);
+
+    //  Gestion des icones
+      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+      QPixmap pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
+      QIcon IS=QIcon(pix);
+      RBSphere->setIcon(IS);
+      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "cylinderpointvector.png" );
+      QIcon IS2=QIcon(pix2);
+      RBCylindre->setIcon(IS2);
+
+      InitConnect( );
+
+      SetNewBoundaryAnName() ;
+      InitValBoundaryAn();          // Cherche les valeurs de la boite englobante le maillage
+      InitMinMax();                 // Initialise les bornes des boutons
+      SetCylinder();                // Propose un cylindre en premier choix
+    }
+// --------------------------------------------------------------------------------------------------------------
+MonCreateBoundaryAn::MonCreateBoundaryAn(MonCreateCase* parent,
+                             HOMARD::HOMARD_Gen_var myHomardGen,
+                             QString caseName):
+// --------------------------------------------------------------------------------------------------------------
+// Constructeur appele par MonEditBoundaryAn
+//
+    QDialog(0), Ui_CreateBoundaryAn(),
+     _myHomardGen(myHomardGen),
+    _parent(parent),
+    _aBoundaryAnName (""),
+    _aCaseName(caseName),
+    _BoundaryType(1),
+    _BoundaryAnXcentre(0), _BoundaryAnYcentre(0), _BoundaryAnZcentre(0), _BoundaryAnRayon(0),
+    _BoundaryAnXaxis(0), _BoundaryAnYaxis(0), _BoundaryAnZaxis(0),
+    // Pour affichage lors de l edition d une BoundaryAn sans nom de Cas
+    _Xcentre(0), _Ycentre(0), _Zcentre(0), _Rayon(0),
+    _Xmin(1), _Xmax(1), _Xincr(1), _Ymin(1), _Ymax(1), _Yincr(1), _Zmin(1), _Zmax(1), _Zincr(1), _DMax(1),
+    Chgt (false)
+    {
+  //  MESSAGE("Debut de  MonCreateBoundaryAn")
+      setupUi(this);
+      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+      QPixmap pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
+      QIcon IS=QIcon(pix);
+      RBSphere->setIcon(IS);
+      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "cylinderpointvector.png" );
+      QIcon IS2=QIcon(pix2);
+      RBCylindre->setIcon(IS2);
+      setModal(true);
+      InitConnect();
+    }
+
+// ------------------------------------------------------------------------
+MonCreateBoundaryAn::~MonCreateBoundaryAn()
+// ------------------------------------------------------------------------
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::InitConnect()
+// ------------------------------------------------------------------------
+{
+    connect( RBCylindre,   SIGNAL(clicked()) , this, SLOT(SetCylinder()) ) ;
+    connect( RBSphere,     SIGNAL(clicked()) , this, SLOT(SetSphere()) ) ;
+    connect( buttonOk,     SIGNAL( pressed() ), this, SLOT( PushOnOK() ) );
+    connect( buttonApply,  SIGNAL( pressed() ), this, SLOT( PushOnApply() ) );
+    connect( buttonCancel, SIGNAL( pressed() ), this, SLOT( close() ) );
+    connect( buttonHelp,   SIGNAL( pressed() ), this, SLOT( PushOnHelp() ) );
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::InitValBoundaryAn()
+// ------------------------------------------------------------------------
+{
+//
+//  1. Les coordonnees extremes du maillage
+//
+    if (_aCaseName == QString("")) { return; }
+
+    HOMARD::HOMARD_Cas_var aCas = _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
+    HOMARD::extrema_var  MesExtremes = aCas->GetBoundingBox();
+    int num = MesExtremes->length() ;
+    ASSERT(num == 10);
+    _Xmin=MesExtremes[0]; _Xmax=MesExtremes[1]; _Xincr=MesExtremes[2];
+    _Ymin=MesExtremes[3]; _Ymax=MesExtremes[4]; _Yincr=MesExtremes[5];
+    _Zmin=MesExtremes[6]; _Zmax=MesExtremes[7]; _Zincr=MesExtremes[8];
+    _DMax=MesExtremes[9];
+     MESSAGE ("_Xmin : " << _Xmin << " _Xmax : " << _Xmax << " _Xincr : " << _Xincr ) ;
+     MESSAGE ("_Ymin : " << _Ymin << " _Ymax : " << _Ymax << " _Yincr : " << _Yincr ) ;
+     MESSAGE ("_Zmin : " << _Zmin << " _Zmax : " << _Zmax << " _Zincr : " << _Zincr) ;
+     MESSAGE ("_DMax : " << _DMax);
+
+//  2. Caracteristiques des frontieres
+// en X
+    _Xcentre=(_Xmin + _Xmax)/2.;
+// en Y
+    _Ycentre=(_Ymin + _Ymax)/2.;
+// en Z
+    _Zcentre=(_Zmin + _Zmax)/2.;
+// Rayon
+    _Rayon= _DMax/4.;
+}
+
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::InitMinMax()
+// ------------------------------------------------------------------------
+{
+// en X
+  SpinBox_Xaxis->setSingleStep(0.1);
+  SpinBox_Xcentre->setSingleStep(_Xincr);
+//en Y
+  SpinBox_Yaxis->setSingleStep(0.1);
+  SpinBox_Ycentre->setSingleStep(_Yincr);
+//en Z
+  SpinBox_Zaxis->setSingleStep(0.1);
+  SpinBox_Zcentre->setSingleStep(_Zincr);
+// Rayon
+  SpinBox_Radius->setSingleStep(_Rayon/10.);
+  SpinBox_Radius->setMinimum(0.);
+  SpinBox_Rayon->setSingleStep(_Rayon/10.);
+  SpinBox_Rayon->setMinimum(0.);
+}
+// ------------------------------------------------------------------------
+bool MonCreateBoundaryAn::PushOnApply()
+// ------------------------------------------------------------------------
+// Appele lorsque l'un des boutons Ok ou Apply est presse
+//
+{
+  std::cerr << LEBoundaryName->text().trimmed().toStdString() << std::endl;
+  if (LEBoundaryName->text().trimmed()=="")
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_BOUN_NAME") );
+    return false;
+  }
+
+  switch (_BoundaryType)
+  {
+      case 1 : // il s agit d un cylindre
+      {
+        if ((_BoundaryAnXcentre != SpinBox_Xcent->value())  or
+            (_BoundaryAnYcentre != SpinBox_Ycent->value())  or
+            (_BoundaryAnZcentre != SpinBox_Zcent->value())  or
+            (_BoundaryAnRayon   != SpinBox_Radius->value()) or
+            (_BoundaryAnXaxis   != SpinBox_Xaxis->value()) or
+            (_BoundaryAnYaxis   != SpinBox_Yaxis->value()) or
+            (_BoundaryAnZaxis   != SpinBox_Zaxis->value()) )
+        {
+          Chgt = true;
+          _BoundaryAnXaxis= SpinBox_Xaxis->value();
+          _BoundaryAnYaxis= SpinBox_Yaxis->value();
+          _BoundaryAnZaxis= SpinBox_Zaxis->value();
+          _BoundaryAnXcentre=SpinBox_Xcent->value();
+          _BoundaryAnYcentre=SpinBox_Ycent->value();
+          _BoundaryAnZcentre=SpinBox_Zcent->value();
+          _BoundaryAnRayon=SpinBox_Radius->value();
+          double daux = _BoundaryAnXaxis*_BoundaryAnXaxis + _BoundaryAnYaxis*_BoundaryAnYaxis + _BoundaryAnZaxis*_BoundaryAnZaxis ;
+          if ( daux < 0.0000001 )
+          {
+            QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                      QObject::tr("HOM_AXE") );
+            return false;
+          }
+        }
+        break;
+      }
+
+      case 2 : // il s agit d une sphere
+      {
+        if ((_BoundaryAnXcentre != SpinBox_Xcentre->value()) or
+            (_BoundaryAnYcentre != SpinBox_Ycentre->value()) or
+            (_BoundaryAnZcentre != SpinBox_Zcentre->value()) or
+            (_BoundaryAnRayon   != SpinBox_Rayon->value())  )
+        {
+           Chgt = true;
+          _BoundaryAnXcentre=SpinBox_Xcentre->value();
+          _BoundaryAnYcentre=SpinBox_Ycentre->value();
+          _BoundaryAnZcentre=SpinBox_Zcentre->value();
+          _BoundaryAnRayon=SpinBox_Rayon->value();
+        }
+        break;
+      }
+  }
+
+  bool bOK = CreateOrUpdateBoundaryAn();
+  return bOK;
+
+}
+// ---------------------------------------------------
+bool MonCreateBoundaryAn:: CreateOrUpdateBoundaryAn()
+//----------------------------------------------------
+//  Creation de l'objet boundary
+{
+  if (_aBoundaryAnName != LEBoundaryName->text().trimmed())
+  {
+    _aBoundaryAnName = LEBoundaryName->text().trimmed();
+    switch (_BoundaryType)
+    {
+      case 1 : // il s agit d un cylindre
+      {
+        aBoundaryAn = _myHomardGen->CreateBoundaryCylinder(CORBA::string_dup(_aBoundaryAnName.toStdString().c_str()), \
+        _BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis, _BoundaryAnRayon );
+        break;
+      }
+      case 2 : // il s agit d une sphere
+      {
+        aBoundaryAn = _myHomardGen->CreateBoundarySphere(CORBA::string_dup(_aBoundaryAnName.toStdString().c_str()), \
+        _BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnRayon);
+        break;
+      }
+    }
+    _parent->addBoundaryAn(_aBoundaryAnName);
+  }
+// Mise en place des attributs
+  aBoundaryAn->SetLimit(_Xincr, _Yincr, _Zincr);
+
+  HOMARD_UTILS::updateObjBrowser();
+  return true;
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::PushOnOK()
+// ------------------------------------------------------------------------
+{
+     if (PushOnApply()) this->close();
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::PushOnHelp()
+// ------------------------------------------------------------------------
+{
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html#un-cylindre") ) ;
+}
+
+// -----------------------------------
+void MonCreateBoundaryAn::SetNewBoundaryAnName()
+// -----------------------------------
+{
+// Recherche d'un nom par defaut qui n'existe pas encore
+
+  HOMARD::listeBoundarys_var  MyBoundaryAns = _myHomardGen->GetAllBoundarys();
+  int num = 0; QString aBoundaryAnName="";
+  while (aBoundaryAnName=="" )
+  {
+    aBoundaryAnName.setNum(num+1) ;
+    aBoundaryAnName.insert(0, QString("Boun_")) ;
+    for ( int i=0; i<MyBoundaryAns->length(); i++)
+    {
+      if ( aBoundaryAnName ==  QString(MyBoundaryAns[i]))
+      {
+          num=num+1;
+          aBoundaryAnName="";
+          break;
+      }
+   }
+  }
+  LEBoundaryName->clear() ;
+  LEBoundaryName->insert(aBoundaryAnName);
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::SetCylinder()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetCylinder")
+  gBCylindre->setVisible(1);
+  gBSphere->setVisible(0);
+  adjustSize();
+  _BoundaryType=1;
+  SpinBox_Xcent->setValue(_Xcentre);
+  SpinBox_Xaxis->setValue(0.);
+  SpinBox_Ycent->setValue(_Ycentre);
+  SpinBox_Yaxis->setValue(0.);
+  SpinBox_Zcent->setValue(_Zcentre);
+  SpinBox_Zaxis->setValue(1.);
+  SpinBox_Radius->setValue(_Rayon);
+//   MESSAGE("Fin de SetCylinder")
+}
+// ------------------------------------------------------------------------
+void MonCreateBoundaryAn::SetSphere()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetSphere")
+  gBCylindre->setVisible(0);
+  gBSphere->setVisible(1);
+  adjustSize();
+  _BoundaryType=2;
+  SpinBox_Xcentre->setValue(_Xcentre);
+  SpinBox_Ycentre->setValue(_Ycentre);
+  SpinBox_Zcentre->setValue(_Zcentre);
+  SpinBox_Rayon->setValue(_Rayon);
+//   MESSAGE("Fin de SetSphere")
+}
+
+
diff --git a/src/HOMARDGUI/MonCreateBoundaryAn.h b/src/HOMARDGUI/MonCreateBoundaryAn.h
new file mode 100644 (file)
index 0000000..7c0c22b
--- /dev/null
@@ -0,0 +1,82 @@
+// Copyright (C) 2011-2012  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
+//
+
+#ifndef MON_CREATEBOUNDARYAN_H
+#define MON_CREATEBOUNDARYAN_H
+
+
+#include <SALOMEconfig.h>
+#include <SalomeApp_Module.h>
+
+#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
+#include CORBA_CLIENT_HEADER(HOMARD_Gen)
+#include CORBA_CLIENT_HEADER(HOMARD_Boundary)
+
+#include <CreateBoundaryAn.h>
+#include <QDialog>
+
+class MonCreateCase;
+class MonCreateBoundaryAn : public QDialog, public Ui_CreateBoundaryAn
+{
+    Q_OBJECT
+
+public:
+    MonCreateBoundaryAn( MonCreateCase* parent, bool modal,
+                   HOMARD::HOMARD_Gen_var myHomardGen,
+                   QString caseName);
+    virtual ~MonCreateBoundaryAn();
+
+protected :
+    MonCreateBoundaryAn( MonCreateCase* parent,
+                   HOMARD::HOMARD_Gen_var myHomardGen,
+                   QString caseName);
+
+    MonCreateCase * _parent;
+
+    QString _aBoundaryAnName;
+    QString _aCaseName;
+
+    int _BoundaryType;
+    double _BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnRayon;
+    double _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis;
+    double _Xmin, _Xmax, _Xincr, _Ymin, _Ymax, _Yincr, _Zmin, _Zmax, _Zincr, _DMax ;
+    double _Xcentre, _Ycentre, _Zcentre, _Rayon ;
+
+
+    bool Chgt;
+
+    HOMARD::HOMARD_Boundary_var aBoundaryAn ;
+    HOMARD::HOMARD_Gen_var _myHomardGen;
+
+    virtual void InitConnect();
+    virtual void InitValBoundaryAn();
+    virtual void InitMinMax();
+    virtual void SetNewBoundaryAnName();
+    virtual bool CreateOrUpdateBoundaryAn();
+
+public slots:
+    virtual void SetCylinder();
+    virtual void SetSphere();
+    virtual void PushOnOK();
+    virtual bool PushOnApply();
+    virtual void PushOnHelp();
+
+};
+
+#endif // MON_CREATEBOUNDARYAN_H
index db1edcd2dbfc344c66b2bf2b9aedc3a7f220fabe..fde36eff27e66e3f61f38bf7227af409f36c30c3 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateBoundaryDi.h"
@@ -60,9 +79,8 @@ bool MonCreateBoundaryDi::PushOnApply()
 
   QString aBoundaryName=LEBoundaryName->text().trimmed();
   if (aBoundaryName=="") {
-    QMessageBox::information( 0, "Error",
-                              "The boundary must be named.",
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_BOUN_NAME") );
     return false;
   }
 
@@ -70,9 +88,8 @@ bool MonCreateBoundaryDi::PushOnApply()
   QString aMeshFile=LEFileName->text().trimmed();
   if (aMeshFile ==QString(""))
   {
-    QMessageBox::information( 0, "Error",
-              QString("The mesh of the boundary must be selected."),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_BOUN_MESH") );
     return false;
   }
 
@@ -80,34 +97,30 @@ bool MonCreateBoundaryDi::PushOnApply()
   QString aMeshName = HOMARD_QT_COMMUN::LireNomMaillage(aMeshFile);
   if (aMeshName == "" )
   {
-    QMessageBox::information( 0, "Error",
-              QString("no mesh in mesh file"),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_MED_FILE_2") );
     return false;
   }
 
 // Creation de l'objet CORBA si ce n'est pas deja fait sous le meme nom
   if ( _aBoundaryName != aBoundaryName )
   {
-   try 
+   try
    {
      _aBoundaryName=aBoundaryName;
-     _aBoundary=_myHomardGen->CreateBoundary(CORBA::string_dup(_aBoundaryName.toStdString().c_str()),0);
+     _aBoundary=_myHomardGen->CreateBoundaryDi(CORBA::string_dup(_aBoundaryName.toStdString().c_str()), aMeshName.toStdString().c_str(), aMeshFile.toStdString().c_str());
      _parent->addBoundaryDi(_aBoundaryName);
      _aBoundary->SetCaseCreation(_aCaseName.toStdString().c_str());
    }
    catch( SALOME::SALOME_Exception& S_ex )
    {
-      QMessageBox::information( 0, "Error",
-                  QString(CORBA::string_dup(S_ex.details.text)),
-                  QMessageBox::Ok + QMessageBox::Default );
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
       return false;
    }
   }
 
-// Mise en place des attributs
-  _aBoundary->SetMeshFile(aMeshFile.toStdString().c_str());
-  _aBoundary->SetMeshName(aMeshName.toStdString().c_str());
+// Les groupes
   AssocieLesGroupes();
 
   HOMARD_UTILS::updateObjBrowser();
@@ -126,7 +139,7 @@ void MonCreateBoundaryDi::PushOnOK()
 void MonCreateBoundaryDi::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"));
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html#frontiere-discrete"));
 }
 // ------------------------------------------------------------------------
 void MonCreateBoundaryDi::AssocieLesGroupes()
@@ -183,16 +196,15 @@ void MonCreateBoundaryDi::setGroups (QStringList listGroup)
 void MonCreateBoundaryDi::SetFiltrage()
 // // ------------------------------------------------------------------------
 {
-   if (!CBGroupe->isChecked()) return;
-   if (_aCaseName.toStdString().c_str() == QString()) {
-        QMessageBox::information( 0, "Error",
-                              "Case MeshFile unknowned.",
-                              QMessageBox::Ok + QMessageBox::Default );
-        return;
-   }
+  if (!CBGroupe->isChecked()) return;
+  if (_aCaseName.toStdString().c_str() == QString()) {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_BOUN_CASE") );
+    return;
+  }
 
-   MonCreateListGroup *aDlg = new MonCreateListGroup(NULL,this,  TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),
-                              _aCaseName, _listeGroupesBoundary) ;
+  MonCreateListGroup *aDlg = new MonCreateListGroup(NULL,this,  TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),
+                            _aCaseName, _listeGroupesBoundary) ;
   aDlg->show();
 }
 
index 9b37ac4aa1e0ed8e92049568ceac699c11d4b934..dc4b0b43ccbe506c0e173d5591899a249282903e 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATEBOUNDARYDI_H
 #define MON_CREATEBOUNDARYDI_H
 
index f84c53fb098f57e657df658ea9f65d2dabf5369e..2aaa85a1b473795ae7845737e8532387ad80281b 100644 (file)
@@ -1,6 +1,27 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateCase.h"
+#include "MonCreateBoundaryAn.h"
+#include "MonEditBoundaryAn.h"
 #include "MonCreateBoundaryDi.h"
 #include "MonEditBoundaryDi.h"
 
@@ -21,9 +42,11 @@ MonCreateCase::MonCreateCase(QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var
  * Sets attributes to default values
  */
     :
-    Ui_CreateCase(), 
-    _aCaseName(""),_aDirName(""), _ConfType(1)
-    {
+    Ui_CreateCase(),
+    _aCaseName(""),_aDirName(""),
+    _ConfType(1),
+    _Pyram(0)
+{
       _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
       setupUi(this);
       setModal(modal);
@@ -34,9 +57,9 @@ MonCreateCase::MonCreateCase(QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var
       GBBoundaryD->setVisible(0);
       GBTypeNoConf->setVisible(0);
       adjustSize();
-      GetBoundarys();
-
-    }
+      GBAdvancedOptions->setVisible(0);
+      CBPyramid->setChecked(false);
+}
 
 // ------------------------------------------------------------------------
 MonCreateCase::~MonCreateCase()
@@ -60,7 +83,13 @@ void MonCreateCase::InitConnect()
     connect( CBBoundaryD,      SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryD()));
     connect( PBBoundaryDiNew,  SIGNAL(pressed()), this, SLOT(PushBoundaryDiNew()));
     connect( PBBoundaryDiEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryDiEdit()) );
+    connect( PBBoundaryDiHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryDiHelp()) );
     connect( CBBoundaryA,      SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryA()));
+    connect( PBBoundaryAnNew,  SIGNAL(pressed()), this, SLOT(PushBoundaryAnNew()));
+    connect( PBBoundaryAnEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryAnEdit()) );
+    connect( PBBoundaryAnHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryAnHelp()) );
+
+    connect( CBAdvanced,     SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
 
     connect( buttonOk,       SIGNAL(pressed()), this, SLOT(PushOnOK()));
     connect( buttonApply,    SIGNAL(pressed()), this, SLOT(PushOnApply()));
@@ -69,19 +98,39 @@ void MonCreateCase::InitConnect()
     connect( LECaseName,     SIGNAL(textChanged(QString)), this, SLOT(CaseNameChanged()));
 }
 // ------------------------------------------------------------------------
-void MonCreateCase::GetBoundarys()
+void MonCreateCase::InitBoundarys()
 // ------------------------------------------------------------------------
+// Initialisation des menus avec les frontieres deja enregistrees
 {
-     HOMARD::HOMARD_Boundary_var myBoundary ;
-     HOMARD::listeBoundarys_var  mesBoundarys = _myHomardGen->GetAllBoundarys();
-     for (int i=0; i<mesBoundarys->length(); i++)
-     {
-         myBoundary = _myHomardGen->GetBoundary(mesBoundarys[i]);
-         int type_obj = myBoundary->GetBoundaryType() ;
-         if ( type_obj==0 ) { CBBoundaryDi->addItem(QString(mesBoundarys[i])); }
-     }
+  MESSAGE("InitBoundarys");
+// Pour les frontieres analytiques : la colonne des groupes
+  HOMARD::ListGroupType_var _listeGroupesCas = aCase->GetGroups();
+  QTableWidgetItem *__colItem = new QTableWidgetItem();
+  __colItem->setText(QApplication::translate("CreateCase", "", 0, QApplication::UnicodeUTF8));
+  TWBoundary->setHorizontalHeaderItem(0, __colItem);
+  for ( int i = 0; i < _listeGroupesCas->length(); i++ )
+  {
+    TWBoundary->insertRow(i);
+    TWBoundary->setItem( i, 0, new QTableWidgetItem(QString((_listeGroupesCas)[i]).trimmed()));
+    TWBoundary->item( i, 0 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+  }
+// Pour les frontieres discretes : la liste a saisir
+// Pour les frontieres analytiques : les colonnes de chaque frontiere
+  HOMARD::HOMARD_Boundary_var myBoundary ;
+  HOMARD::listeBoundarys_var  mesBoundarys = _myHomardGen->GetAllBoundarys();
+//   MESSAGE("Nombre de frontieres enregistrees : "<<mesBoundarys->length());
+  for (int i=0; i<mesBoundarys->length(); i++)
+  {
+    myBoundary = _myHomardGen->GetBoundary(mesBoundarys[i]);
+    int type_obj = myBoundary->GetBoundaryType() ;
+    if ( type_obj==0 ) { CBBoundaryDi->addItem(QString(mesBoundarys[i])); }
+    else               { addBoundaryAn(QString(mesBoundarys[i])); }
+  }
+// Ajustement
+  TWBoundary->resizeColumnsToContents();
+  TWBoundary->resizeRowsToContents();
+  TWBoundary->clearSelection();
 }
-
 // -------------------------------
 bool MonCreateCase::PushOnApply()
 // --------------------------------
@@ -90,53 +139,78 @@ bool MonCreateCase::PushOnApply()
   QString aCaseName=LECaseName->text().trimmed();
   if ( aCaseName == "" )
   {
-    QMessageBox::information( 0, "Error",
-            QString("The case must be named"),
-            QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_CASE_NAME") );
     return false;
   }
 
   QString aDirName=LEDirName->text().trimmed();
   if (aDirName == QString(""))
   {
-    QMessageBox::information( 0, "Error",
-              QString("A directory for the case must be selected."),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_CASE_DIRECTORY_1") );
     return false;
   }
   if ((aDirName != _aDirName) and (_myHomardGen->VerifieDir( aDirName.toStdString().c_str()) == false))
   {
-    QMessageBox::information( 0, "Error",
-              QString("This directory is already used"),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_CASE_DIRECTORY_2") );
     return false;
   }
   if (chdir(aDirName.toStdString().c_str()) != 0)
   {
-    QMessageBox::information( 0, "Error",
-              QString("A valid directory for the case must be selected."),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_CASE_DIRECTORY_3") );
     return false;
   }
 
   QString aFileName=LEFileName->text().trimmed();
   if (aFileName ==QString(""))
   {
-    QMessageBox::information( 0, "Error",
-              QString("The initial mesh must be selected."),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_CASE_MESH") );
     return false;
   }
 
   QString aMeshName = HOMARD_QT_COMMUN::LireNomMaillage(aFileName);
   if (aMeshName == "" )
   {
-    QMessageBox::information( 0, "Error",
-              QString("no mesh in mesh file"),
-              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_MED_FILE_2") );
     return false;
   }
 
+  if (CBBoundaryA->isChecked())
+  {
+    QStringList ListeGroup ;
+    QString NomGroup ;
+    int nbcol = TWBoundary->columnCount();
+    int nbrow = TWBoundary->rowCount();
+    for ( int col=1; col< nbcol; col++)
+    {
+      for ( int row=0; row< nbrow; row++)
+      {
+        if ( TWBoundary->item( row, col )->checkState() ==  Qt::Checked )
+        {
+//        Nom du groupe
+          NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
+//           MESSAGE("NomGroup "<<NomGroup.toStdString().c_str());
+          for ( int nugr = 0 ; nugr<ListeGroup.size(); nugr++)
+          {
+//             MESSAGE("....... "<<ListeGroup[nugr].toStdString().c_str());
+            if ( NomGroup == ListeGroup[nugr] )
+            {
+              QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                        QObject::tr("HOM_CASE_GROUP").arg(NomGroup) );
+              return false;
+            }
+          }
+          ListeGroup.insert(0, NomGroup );
+        }
+      }
+    }
+  }
+
   if (aCaseName != _aCaseName )
   {
     _aCaseName = aCaseName;
@@ -147,11 +221,10 @@ bool MonCreateCase::PushOnApply()
             CORBA::string_dup(aMeshName.toStdString().c_str()),  \
             CORBA::string_dup(aFileName.toStdString().c_str()) );
     }
-    catch( SALOME::SALOME_Exception& S_ex ) 
+    catch( SALOME::SALOME_Exception& S_ex )
     {
-     QMessageBox::information( 0, "Error",
-            QString(CORBA::string_dup(S_ex.details.text)),
-            QMessageBox::Ok + QMessageBox::Default );
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
       try
       {
           aCase = _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
@@ -167,21 +240,53 @@ bool MonCreateCase::PushOnApply()
     }
     LEFileName->setReadOnly(true);
     PushFichier->hide();
+    InitBoundarys();
   }
 
   aCase->SetDirName(aDirName.toStdString().c_str());
   _aDirName=aDirName;
   aCase->SetConfType(_ConfType);
 
+// Enregistrement de la frontiere discrete
   if (CBBoundaryD->isChecked())
   {
     QString monBoundaryDiName=CBBoundaryDi->currentText();
     if (monBoundaryDiName != "" )
     {
-      aCase->AddBoundaryGroup(monBoundaryDiName.toStdString().c_str(), " ");
+      aCase->AddBoundaryGroup(monBoundaryDiName.toStdString().c_str(), "");
+    }
+  }
+
+// Enregistrement des liens (groupe,frontiere analytique)
+  if (CBBoundaryA->isChecked())
+  {
+    QString NomGroup ;
+    int nbcol = TWBoundary->columnCount();
+    int nbrow = TWBoundary->rowCount();
+    for ( int col=1; col< nbcol; col++)
+    {
+      for ( int row=0; row< nbrow; row++)
+      {
+        if ( TWBoundary->item( row, col )->checkState() ==  Qt::Checked )
+        {
+//        Nom du groupe
+          NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
+//        Nom de la frontiere
+          QTableWidgetItem *__colItem = new QTableWidgetItem();
+          __colItem = TWBoundary->horizontalHeaderItem(col);
+          aCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(), NomGroup.toStdString().c_str());
+        }
+      }
     }
   }
 
+// Options avancees
+  if (CBAdvanced->isChecked())
+  {
+// Autorisation des pyramides
+    if (CBPyramid->isChecked()) { _Pyram = 1 ; }
+  }
+
   HOMARD_UTILS::updateObjBrowser();
   return true;
 }
@@ -233,8 +338,10 @@ void MonCreateCase::SetDirName()
 void MonCreateCase::SetFileName()
 // ------------------------------------------------------------------------
 {
+  QString fileName0 = LEFileName->text().trimmed();
   QString fileName = HOMARD_QT_COMMUN::PushNomFichier();
-  if (!(fileName.isEmpty())) LEFileName->setText(fileName);
+  if (fileName.isEmpty()) fileName = fileName0 ;
+  LEFileName->setText(fileName);
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::SetConforme()
@@ -275,10 +382,16 @@ void MonCreateCase::SetQuelconque()
 void MonCreateCase::SetBoundaryD()
 // ------------------------------------------------------------------------
 {
+  MESSAGE("Debut de SetBoundaryD ");
   if (CBBoundaryD->isChecked())
-  { GBBoundaryD->setVisible(1); }
-  else
-  { GBBoundaryD->setVisible(0); }
+  {
+    bool bOK = PushOnApply();
+    if (bOK) { GBBoundaryD->setVisible(1); }
+    else     { GBBoundaryD->setVisible(0);
+               CBBoundaryD->setChecked(0);
+               CBBoundaryD->setCheckState(Qt::Unchecked); }
+  }
+  else { GBBoundaryD->setVisible(0); }
   adjustSize();
 }
 // ------------------------------------------------------------------------
@@ -292,7 +405,7 @@ void MonCreateCase::addBoundaryDi(QString newBoundary)
 void MonCreateCase::PushBoundaryDiNew()
 // ------------------------------------------------------------------------
 {
-   MonCreateBoundaryDi *BoundaryDlg = new MonCreateBoundaryDi(this, true, 
+   MonCreateBoundaryDi *BoundaryDlg = new MonCreateBoundaryDi(this, true,
                 HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName, "") ;
    BoundaryDlg->show();
 }
@@ -301,17 +414,93 @@ void MonCreateCase::PushBoundaryDiEdit()
 // ------------------------------------------------------------------------
 {
   if (CBBoundaryDi->currentText() == QString(""))  return;
-  MonEditBoundaryDi *BoundaryDlg = new MonEditBoundaryDi(this, true, 
+  MonEditBoundaryDi *BoundaryDlg = new MonEditBoundaryDi(this, true,
        HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName, CBBoundaryDi->currentText() ) ;
   BoundaryDlg->show();
 }
 // ------------------------------------------------------------------------
+void MonCreateCase::PushBoundaryDiHelp()
+// ------------------------------------------------------------------------
+{
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html#frontiere-discrete") ) ;
+}
+// ------------------------------------------------------------------------
 void MonCreateCase::SetBoundaryA()
 // ------------------------------------------------------------------------
 {
-  if    (CBBoundaryA->isChecked()) { GBBoundaryA->setVisible(1); }
+  MESSAGE("Debut de SetBoundaryA ");
+  if (CBBoundaryA->isChecked())
+  {
+    bool bOK = PushOnApply();
+    if (bOK) { GBBoundaryA->setVisible(1); }
+    else     { GBBoundaryA->setVisible(0);
+               CBBoundaryA->setChecked(0);
+               CBBoundaryA->setCheckState(Qt::Unchecked); }
+  }
   else { GBBoundaryA->setVisible(0); }
   adjustSize();
+//
+//   MESSAGE("Fin de SetBoundaryA ");
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::addBoundaryAn(QString newBoundary)
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de addBoundaryAn ");
+// Ajout d'une nouvelle colonne
+  int nbcol = TWBoundary->columnCount();
+//   MESSAGE("nbcol " <<  nbcol);
+  nbcol += 1 ;
+  TWBoundary->setColumnCount ( nbcol ) ;
+  QTableWidgetItem *__colItem = new QTableWidgetItem();
+  __colItem->setText(QApplication::translate("CreateCase", newBoundary.toStdString().c_str(), 0, QApplication::UnicodeUTF8));
+  TWBoundary->setHorizontalHeaderItem(nbcol-1, __colItem);
+/*  TWBoundary->horizontalHeaderItem(nbcol-1)->setFlags( Qt::ItemIsSelectable|Qt::ItemIsEnabled );*/
+// Chaque case est a cocher
+  int nbrow = TWBoundary->rowCount();
+//   MESSAGE("nbrow " <<  nbrow);
+  for ( int i = 0; i < nbrow; i++ )
+  {
+    TWBoundary->setItem( i, nbcol-1, new QTableWidgetItem( QString ("") ) );
+    TWBoundary->item( i, nbcol-1 )->setFlags( 0 );
+    TWBoundary->item( i, nbcol-1 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
+    TWBoundary->item( i, nbcol-1 )->setCheckState( Qt::Unchecked );
+  }
+  TWBoundary->resizeColumnToContents(nbcol-1);
+//   TWBoundary->resizeRowsToContents();
+//   MESSAGE("Fin de addBoundaryAn ");
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::PushBoundaryAnNew()
+// ------------------------------------------------------------------------
+{
+   MonCreateBoundaryAn *BoundaryDlg = new MonCreateBoundaryAn(this, true,
+                HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName) ;
+   BoundaryDlg->show();
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::PushBoundaryAnEdit()
+// ------------------------------------------------------------------------
+{
+  QString nom="";
+  int nbcol = TWBoundary->columnCount();
+  for ( int i = 1; i < nbcol; i++ )
+  {
+    QTableWidgetItem *__colItem = new QTableWidgetItem();
+    __colItem = TWBoundary->horizontalHeaderItem(i);
+    nom = QString(__colItem->text()) ;
+    MESSAGE("nom "<<nom.toStdString().c_str());
+    if (nom != QString(""))
+    { MonEditBoundaryAn *BoundaryDlg = new MonEditBoundaryAn(this, true,
+        HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName, nom ) ;
+      BoundaryDlg->show(); }
+  }
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::PushBoundaryAnHelp()
+// ------------------------------------------------------------------------
+{
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html#frontiere-analytique") ) ;
 }
 // ------------------------------------------------------------------------
 void MonCreateCase::CaseNameChanged()
@@ -323,3 +512,16 @@ void MonCreateCase::CaseNameChanged()
        PushFichier->show();
     }
 }
+// ------------------------------------------------------------------------
+void MonCreateCase::SetAdvanced()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAdvanced ");
+  if (CBAdvanced->isChecked()) { GBAdvancedOptions->setVisible(1); }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    CBPyramid->setChecked(false);
+    _Pyram = 0 ;
+ }
+  adjustSize();
+}
index 1cf0e4dc0697efc225a90203e45f58d52029aa06..34c66065e759c20c0e05aa14a12dad04dc6e142e 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATECASE_H
 #define MON_CREATECASE_H
 
@@ -19,6 +38,7 @@ public:
     MonCreateCase( QWidget* parent, bool modal, HOMARD::HOMARD_Gen_var myHomardGen);
     ~MonCreateCase();
 
+    void addBoundaryAn(QString newBoundary);
     void addBoundaryDi(QString newBoundary);
 
 protected :
@@ -27,12 +47,13 @@ protected :
 
     int _ConfType;
 
+    int _Pyram;
 
     HOMARD::HOMARD_Cas_var aCase ;
     HOMARD::HOMARD_Gen_var _myHomardGen;
 
     virtual void InitConnect();
-    virtual void GetBoundarys();
+    virtual void InitBoundarys();
     virtual void SetNewCaseName();
 
 public slots:
@@ -48,7 +69,13 @@ public slots:
     virtual void SetBoundaryD();
     virtual void PushBoundaryDiNew();
     virtual void PushBoundaryDiEdit();
+    virtual void PushBoundaryDiHelp();
     virtual void SetBoundaryA();
+    virtual void PushBoundaryAnNew();
+    virtual void PushBoundaryAnEdit();
+    virtual void PushBoundaryAnHelp();
+
+    virtual void SetAdvanced();
 
     virtual void PushOnOK();
     virtual bool PushOnApply();
index 60bd6c85a6b79aed9e041b395af7da4cec1ae238..bffc7df57f0ef14e48c2870c816b83f9e04295cc 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateHypothesis.h"
@@ -24,12 +43,15 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
     :
     QDialog(0), Ui_CreateHypothesis(),
     _parent(parent), _aHypothesisName(aHypothesisName),
-    _aCaseName(caseName), _aFieldFile(aFieldFile), 
+    _aCaseName(caseName), _aFieldFile(aFieldFile),
     _aFieldName(""),
     _aTypeAdap(-2), _aTypeRaff(1), _aTypeDera(0),
     _TypeThR(3), _ThreshR(0),
     _TypeThC(0), _ThreshC(0),
-    _UsCmpI(0), _TypeFieldInterp(0)
+    _UsField(0), _UsCmpI(0), _TypeFieldInterp(0),
+    _NivMax(-1),
+    _DiamMin(-1.),
+    _AdapInit(0)
 {
       MESSAGE("Constructeur") ;
       _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
@@ -38,14 +60,16 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       InitConnect();
 
       SetNewHypothesisName();
-      if (_aFieldFile != QString("")) {
-          RBChamp->setChecked(1);
-          SetChamp();
-      } else {
-          RBUniforme->setChecked(1);
-          SetUniforme();
+      if (_aFieldFile != QString(""))
+      { RBChamp->setChecked(1);
+        SetChamp();
+      }
+      else
+      { RBUniforme->setChecked(1);
+        SetUniforme();
       }
       SetFieldNo();
+      GBAdvancedOptions->setVisible(0);
 }
 
 // ------------------------------------------------------------------------
@@ -63,6 +87,7 @@ void MonCreateHypothesis::InitConnect()
     connect( RBZone,       SIGNAL(clicked()), this, SLOT(SetZone()));
     connect( RBUniRaff,    SIGNAL(clicked()), this, SLOT(SetUniRaff()));
     connect( RBUniDera,    SIGNAL(clicked()), this, SLOT(SetUniDera()));
+
     connect( CBFieldName,  SIGNAL(activated(int)), this, SLOT( SetFieldName()));
     connect( RBRPE,        SIGNAL(clicked()), this, SLOT(SetRPE()));
     connect( RBRRel,       SIGNAL(clicked()), this, SLOT(SetRRel()));
@@ -74,13 +99,21 @@ void MonCreateHypothesis::InitConnect()
     connect( RBCNo,        SIGNAL(clicked()), this, SLOT(SetCNo()));
     connect( RBL2,         SIGNAL(clicked()), this, SLOT(SetUCL2()));
     connect( RBInf,        SIGNAL(clicked()), this, SLOT(SetUCInf()));
+    connect( CBJump,       SIGNAL(stateChanged(int)), this, SLOT(SetUseField()));
     connect( PBZoneNew,    SIGNAL(pressed()), this, SLOT(PushZoneNew()));
     connect( PBZoneEdit,   SIGNAL(pressed()), this, SLOT(PushZoneEdit()) );
     connect( PBZoneDelete, SIGNAL(pressed()), this, SLOT(PushZoneDelete()) );
     connect( CBGroupe,     SIGNAL(stateChanged(int)), this, SLOT(SetFiltrage()));
+
     connect( RBFieldNo,    SIGNAL(clicked()), this, SLOT(SetFieldNo()));
     connect( RBFieldAll,   SIGNAL(clicked()), this, SLOT(SetFieldAll()));
     connect( RBFieldChosen,SIGNAL(clicked()), this, SLOT(SetFieldChosen()));
+
+    connect( CBAdvanced,   SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
+    connect( RBAIN,        SIGNAL(clicked()), this, SLOT(SetAIN()));
+    connect( RBAIR,        SIGNAL(clicked()), this, SLOT(SetAIR()));
+    connect( RBAID,        SIGNAL(clicked()), this, SLOT(SetAID()));
+
     connect( buttonOk,     SIGNAL(pressed()), this, SLOT( PushOnOK()));
     connect( buttonApply,  SIGNAL(pressed()), this, SLOT( PushOnApply()));
     connect( buttonCancel, SIGNAL(pressed()), this, SLOT(close()));
@@ -97,13 +130,12 @@ bool MonCreateHypothesis::PushOnApply()
 
 
   if (LEHypothesisName->text().trimmed()=="") {
-    QMessageBox::information( 0, "Error",
-                              "The hypothesis must be named.",
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_NAME") );
     return false;
   }
 
-  if (VerifieZone()     == false)  return false;
+  if (VerifieZone()      == false)  return false;
   if (VerifieComposant() == false)  return false;
 
 // Creation de l'objet CORBA si ce n'est pas deja fait sous le meme nom
@@ -117,9 +149,8 @@ bool MonCreateHypothesis::PushOnApply()
     }
     catch( SALOME::SALOME_Exception& S_ex )
     {
-      QMessageBox::information( 0, "Error",
-                  QString(CORBA::string_dup(S_ex.details.text)),
-                  QMessageBox::Ok + QMessageBox::Default );
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
       return false;
     }
   }
@@ -134,6 +165,19 @@ bool MonCreateHypothesis::PushOnApply()
   AssocieLesGroupes();
   AssocieFieldInterp();
 
+// Options avancees
+  if (CBAdvanced->isChecked())
+  {
+// Enregistrement du niveau maximal
+    _NivMax = spinBoxNivMax->value() ;
+    _aHypothesis->SetNivMax(_NivMax);
+// Enregistrement du diametre minimal
+    _DiamMin = doubleSpinBoxDiamMin->value() ;
+    _aHypothesis->SetDiamMin(_DiamMin);
+// Enregistrement de l'intialisation de l'adaptation
+    _aHypothesis->SetAdapInit(_AdapInit);
+  }
+
   HOMARD_UTILS::updateObjBrowser();
   return true;
 }
@@ -158,7 +202,7 @@ void MonCreateHypothesis::SetNewHypothesisName()
 {
 
   HOMARD::listeHypotheses_var  MyHypos = _myHomardGen->GetAllHypotheses();
-  int num = 0;// 
+  int num = 0;//
   QString aHypothesisName="";
   while (aHypothesisName=="" )
   {
@@ -196,9 +240,8 @@ void MonCreateHypothesis::SetChamp()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -239,7 +282,7 @@ void MonCreateHypothesis::SetZone()
 void MonCreateHypothesis::PushZoneNew()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de PushZoneNew")
+  MESSAGE("Debut de MonCreateHypothesis::PushZoneNew")
   MonCreateZone *aDlg = new MonCreateZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName) ;
   aDlg->show();
 }
@@ -248,14 +291,13 @@ void MonCreateHypothesis::PushZoneNew()
 void MonCreateHypothesis::PushZoneEdit()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de PushZoneEdit")
+  MESSAGE("Debut de MonCreateHypothesis::PushZoneEdit")
   int colonne = TWZone->currentColumn();
   QTableWidgetItem * monItem = TWZone->currentItem();
-  if (colonne !=1  or monItem == NULL) 
+  if (colonne !=2  or monItem == NULL)
   {
-    QMessageBox::information( 0, "Error",
-                              "Please, Select a Zone",
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_ZONE_1") );
     return;
   }
   QString zoneName = monItem->text().trimmed();
@@ -266,10 +308,9 @@ void MonCreateHypothesis::PushZoneEdit()
 void MonCreateHypothesis::PushZoneDelete()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de PushZoneDelete")
-  QMessageBox::information( 0, "Error",
-                            "Inactive button.",
-                            QMessageBox::Ok + QMessageBox::Default );
+  MESSAGE("Debut de MonCreateHypothesis::PushZoneDelete")
+  QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
+                        QObject::tr("HOM_INACTIVE_BUTTON") );
   return;
 }
 
@@ -277,11 +318,13 @@ void MonCreateHypothesis::PushZoneDelete()
 void MonCreateHypothesis::GetAllZones()
 // ------------------------------------------------------------------------
 // Recuperation de toutes les zones enregistrees dans l'arbre d'etude
+// et affichage dans le tableau
+// Par defaut, aucune n'est selectionnee
 {
-  HOMARD::listeZones_var  mesZones = _myHomardGen->GetAllZones();
-  TWZone->clear();
-  int stop=TWZone->rowCount();
-  for ( int row=0; row< stop; row++)
+  MESSAGE("Debut de GetAllZones") ;
+  HOMARD::listeZones_var mesZones = _myHomardGen->GetAllZones();
+  int nbrow=TWZone->rowCount();
+  for ( int row=0; row< nbrow; row++)
   {
      TWZone->removeRow(row);
   }
@@ -290,70 +333,113 @@ void MonCreateHypothesis::GetAllZones()
   for (int i=0; i<mesZones->length(); i++)
   {
     TWZone->insertRow(row);
+//
     TWZone->setItem( row, 0, new QTableWidgetItem( QString ("") ) );
     TWZone->item( row, 0 )->setFlags( 0 );
     TWZone->item( row, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
     TWZone->item( row, 0 )->setCheckState( Qt::Unchecked );
-    TWZone->setItem( row, 1, new QTableWidgetItem(QString(mesZones[i])));
-    TWZone->item( row, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
-    row=row+1;
+//
+    TWZone->setItem( row, 1, new QTableWidgetItem( QString ("") ) );
+    TWZone->item( row, 1 )->setFlags( 0 );
+    TWZone->item( row, 1 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
+    TWZone->item( row, 1 )->setCheckState( Qt::Unchecked );
+//
+    TWZone->setItem( row, 2, new QTableWidgetItem(QString(mesZones[i]).trimmed()));
+    TWZone->item( row, 2 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+//
+    row += 1;
   }
   TWZone->resizeColumnsToContents();
   TWZone->resizeRowsToContents();
   TWZone->clearSelection();
 }
-    
 // ------------------------------------------------------------------------
-void MonCreateHypothesis::addZone(QString newZone)
+void MonCreateHypothesis::addZoneinTWZone(QString newZone)
 // ------------------------------------------------------------------------
 {
+  MESSAGE("Debut de addZoneinTWZone") ;
   int row = TWZone->rowCount() ;
+// Par defaut, on suppose qu'une nouvelle zone est destinee au raffinement
   TWZone->setRowCount( row+1 );
-  TWZone->setItem( row, 0, new QTableWidgetItem( 0 ) );
+//
+  TWZone->setItem( row, 0, new QTableWidgetItem( QString ("") ) );
   TWZone->item( row, 0 )->setFlags( Qt::ItemIsEditable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
   TWZone->item( row, 0 )->setCheckState( Qt::Checked );
-  TWZone->setItem( row, 1, new QTableWidgetItem( newZone ) );
-  TWZone->scrollToItem( TWZone->item( row, 1 ) );
+//
+  TWZone->setItem( row, 1, new QTableWidgetItem( QString ("") ) );
+  TWZone->item( row, 1 )->setFlags( Qt::ItemIsEditable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
+  TWZone->item( row, 1 )->setCheckState( Qt::Unchecked );
+//
+  TWZone->setItem( row, 2, new QTableWidgetItem( newZone ) );
+  TWZone->scrollToItem( TWZone->item( row, 2 ) );
+//
   TWZone->resizeRowsToContents();
   TWZone->resizeColumnToContents(1);
   TWZone->clearSelection();
-  TWZone->item( row, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+//
+  TWZone->item( row, 2 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
 }
-
 // ------------------------------------------------------------------------
 QStringList MonCreateHypothesis::GetZonesChecked()
 // ------------------------------------------------------------------------
 // Retourne les zones enregistrees
 {
+  MESSAGE("Debut de GetZonesChecked") ;
   QStringList ListeZone ;
+// On ne peut pas avoir selectionne les deux options
+  int Pbm = 0 ;
   for ( int row=0; row< TWZone->rowCount(); row++)
   {
-      if ( TWZone->item( row, 0 )->checkState() ==  Qt::Checked )
-          ListeZone.insert(0, QString(TWZone->item(row, 1)->text()) ) ;
+    if ( ( TWZone->item( row, 0 )->checkState() == Qt::Checked ) and ( TWZone->item( row, 1 )->checkState() == Qt::Checked ) )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_HYPO_ZONE_3") );
+      Pbm = 1 ;
+    }
+  }
+// Si tout va bien, on affecte
+// Attention, on insere en tete, donc on commence d'inserer le type, psui le nom de la zone
+  if ( Pbm == 0 )
+  {
+    QString Raff =  "1" ;
+    QString Dera = "-1" ;
+    for ( int row=0; row< TWZone->rowCount(); row++)
+    {
+//     MESSAGE ("row "<<row<<", zone : "<<TWZone->item(row, 2)->text().toStdString());
+//  En raffinement :
+      if ( TWZone->item(row,0)->checkState() == Qt::Checked )
+      { ListeZone.insert(0, Raff) ;
+        ListeZone.insert(0, QString(TWZone->item(row, 2)->text()) ) ; }
+//  En deraffinement :
+      if ( TWZone->item(row,1)->checkState() == Qt::Checked )
+      { ListeZone.insert(0, Dera) ;
+        ListeZone.insert(0, QString(TWZone->item(row, 2)->text()) ) ; }
+    }
+  MESSAGE("Fin de GetZonesChecked ; longueur de ListeZone : "<<ListeZone.count()) ;
   }
-  return ListeZone ;
+//
+return ListeZone ;
 }
-
 // ------------------------------------------------------------------------
 QStringList MonCreateHypothesis::GetListCompChecked()
 // ------------------------------------------------------------------------
 // Retourne les composantes retenues
 {
-  MESSAGE( "Dans GetListCompChecked" );
+  MESSAGE( "Debut de GetListCompChecked" );
   QStringList ListeComposant ;
 
   ListeComposant.clear();
   for ( int row=0; row< TWCMP->rowCount(); row++)
-      if ( TWCMP->item( row, 0 )->checkState() ==  Qt::Checked )
+      if ( TWCMP->item( row, 0 )->checkState() == Qt::Checked )
           ListeComposant.insert(0, QString(TWCMP->item(row, 1)->text()) ) ;
   // Choix du texte des radio-boutons selon 1 ou plusieurs composantes
   if ( ListeComposant.count() < 2 )
-  { RBL2->setText(QString("Absolute value"));
-    RBInf->setText(QString("Relative value"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_ABS"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_REL"));
   }
   else
-  { RBL2->setText(QString("L2 norm"));
-    RBInf->setText(QString("Infinite Norm"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_L2"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_INF"));
   }
   return ListeComposant ;
 //
@@ -364,7 +450,7 @@ void MonCreateHypothesis::AssocieFieldInterp()
 {
   if ( _TypeFieldInterp != 2 ) return;
   for ( int row=0; row< TWField->rowCount(); row++)
-      if ( TWField->item( row, 0 )->checkState() ==  Qt::Checked )
+      if ( TWField->item( row, 0 )->checkState() == Qt::Checked )
       { _aHypothesis->AddFieldInterp(TWField->item(row, 1)->text().toStdString().c_str()); }
 }
 // ------------------------------------------------------------------------
@@ -400,14 +486,16 @@ void MonCreateHypothesis::InitFields()
 void MonCreateHypothesis::SetFieldName()
 // -------------------------------------------
 {
+  MESSAGE("Debut de SetFieldName");
   _aFieldName=CBFieldName->currentText();
   if (QString(_aFieldFile) == QString("") or QString(_aFieldName) == QString("") ) { return; }
 
-  for ( int row=0; row < TWCMP->rowCount() ; row++)
+  int nbrow= TWCMP->rowCount() ;
+  for ( int row=0; row < nbrow ; row++)
   {
      TWCMP->removeRow(row);
   }
-  //TWCMP->setRowCount(0);
+  TWCMP->setRowCount(0);
   //TWCMP->resizeRowsToContents();
 
   std::list<QString>  maListe =HOMARD_QT_COMMUN::GetListeComposants(_aFieldFile, _aFieldName);
@@ -419,7 +507,7 @@ void MonCreateHypothesis::SetFieldName()
        TWCMP->item( 0, 0 )->setFlags( 0 );
        TWCMP->item( 0, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
        TWCMP->item( 0, 0 )->setCheckState( Qt::Checked );
-       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString((*it))));
+       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString((*it)).trimmed()));
        TWCMP->item( 0, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
   }
   TWCMP->resizeColumnsToContents();
@@ -427,12 +515,12 @@ void MonCreateHypothesis::SetFieldName()
   TWCMP->clearSelection();
   // Choix du texte des radio-boutons selon 1 ou plusieurs composantes
   if ( TWCMP->rowCount() == 1 )
-  { RBL2->setText(QString("Absolute value"));
-    RBInf->setText(QString("Relative value"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_ABS"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_REL"));
   }
   else
-  { RBL2->setText(QString("L2 norm"));
-    RBInf->setText(QString("Infinite Norm"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_L2"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_INF"));
   }
   // Par defaut, on propose la valeur absolue / norme L2
   SetUCL2();
@@ -540,6 +628,13 @@ void MonCreateHypothesis::SetUCInf()
   RBInf->setChecked(true);
 }
 // ------------------------------------------------------------------------
+void MonCreateHypothesis::SetUseField()
+// ------------------------------------------------------------------------
+{
+  if ( CBJump->isChecked() ) { _UsField = 1 ; }
+  else                       { _UsField = 0 ; }
+}
+// ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFiltrage()
 // ------------------------------------------------------------------------
 {
@@ -559,14 +654,16 @@ bool MonCreateHypothesis::VerifieZone()
 // ------------------------------------------------------------------------
 {
   if ( _aTypeAdap != 0 ) return true;
+  MESSAGE("Debut de VerifieZone") ;
   _aListeZone = GetZonesChecked() ;
+  MESSAGE(". Longueur de _aListeZone : "<<_aListeZone.count()) ;
   if (_aListeZone.count() == 0)
   {
-     QMessageBox::information( 0, "Error",
-                              QString("At least, one zone must be given."),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_ZONE_2") );
      return false;
   }
+  MESSAGE("Fin de VerifieZone") ;
   return true;
 }
 // ------------------------------------------------------------------------
@@ -577,9 +674,8 @@ bool MonCreateHypothesis::VerifieComposant()
   _aListeComposant = GetListCompChecked() ;
   if (_aListeComposant.count() == 0)
   {
-     QMessageBox::information( 0, "Error",
-                              QString("At least, one composant must be given."),
-                               QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_COMP") );
      return false;
   }
   return true;
@@ -589,10 +685,19 @@ bool MonCreateHypothesis::VerifieComposant()
 void MonCreateHypothesis::AssocieLesZones()
 // ------------------------------------------------------------------------
 {
+  MESSAGE( "Debut de AssocieLesZones" );
   if ( _aTypeAdap != 0 ) return;
   _aListeZone = GetZonesChecked() ;
+  MESSAGE(". Longueur de _aListeZone : "<<_aListeZone.count()) ;
+  QString Raff =  "1" ;
+  int TypeUse ;
   for ( int i=0 ; i< _aListeZone.count() ; i++ )
-      { _myHomardGen->AssociateHypoZone(_aListeZone[i].toStdString().c_str(),_aHypothesisName.toStdString().c_str()); }
+  { if ( _aListeZone[i+1] == Raff ) { TypeUse =  1 ; }
+    else                            { TypeUse = -1 ; }
+   _myHomardGen->AssociateHypoZone(_aHypothesisName.toStdString().c_str(), _aListeZone[i].toStdString().c_str(), TypeUse);
+    i += 1 ;
+  }
+  MESSAGE( "Fin de AssocieLesZones" );
 };
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::AssocieComposants()
@@ -616,6 +721,7 @@ void MonCreateHypothesis::AssocieComposants()
   _aHypothesis->SetField(CORBA::string_dup(_aFieldName.toStdString().c_str()) ) ;
   _aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ;
   _aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ;
+  _aHypothesis->SetUseField( _UsField ) ;
   _aHypothesis->SetUseComp( _UsCmpI ) ;
   _aListeComposant = GetListCompChecked() ;
   for ( int i=0 ; i< _aListeComposant.count() ; i++ )
@@ -653,9 +759,8 @@ void MonCreateHypothesis::SetFieldAll()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -674,9 +779,8 @@ void MonCreateHypothesis::SetFieldChosen()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -689,9 +793,11 @@ void MonCreateHypothesis::SetFieldChosen()
 
   // Initialisation de la table
   TWField->clear();
-  for ( int row=0; row< TWField->rowCount(); row++)
+  int nbrow=TWField->rowCount();
+  for ( int row=0; row< nbrow; row++)
+  {
      TWField->removeRow(row);
-
+  }
   TWField->setRowCount(0);
   std:: list<QString>::const_iterator it;
   int row=0;
@@ -702,7 +808,7 @@ void MonCreateHypothesis::SetFieldChosen()
     TWField->item( row, 0 )->setFlags( 0 );
     TWField->item( row, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
     TWField->item( row, 0 )->setCheckState( Qt::Unchecked );
-    TWField->setItem( row, 1, new QTableWidgetItem(QString(*it)));
+    TWField->setItem( row, 1, new QTableWidgetItem(QString(*it).trimmed()));
     TWField->item( row, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
     row=row+1;
   }
@@ -714,3 +820,46 @@ void MonCreateHypothesis::SetFieldChosen()
   _TypeFieldInterp = 2 ;
    adjustSize();
 }
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAdvanced()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAdvanced ");
+  if (CBAdvanced->isChecked())
+  { GBAdvancedOptions->setVisible(1);
+    if (_aFieldFile != QString(""))
+    { GBAdapInit->setVisible(1) ;
+    }
+    else
+    { GBAdapInit->setVisible(0) ;
+    }
+  }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    _NivMax = -1 ;
+    _DiamMin = -1. ;
+    _AdapInit = 0 ;
+  }
+  adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAIN()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAIN ");
+  _AdapInit = 0 ;
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAIR()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAIR ");
+  _AdapInit = 1 ;
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAID()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAID ");
+  _AdapInit = -1 ;
+}
index de4dc21f080fd4c5440f4fe5569767bf8de1a980..a1271157b665b1152243a2243d9cbdaf726b38d1 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATEHYPOTHESIS_H
 #define MON_CREATEHYPOTHESIS_H
 
@@ -14,7 +33,7 @@
 
 class MonCreateIteration;
 class MonCreateHypothesis : public QDialog, public Ui_CreateHypothesis
-{ 
+{
     Q_OBJECT
 
 public:
@@ -22,7 +41,7 @@ public:
                          QString aHypotheseName, QString caseName, QString aFieldFile);
     ~MonCreateHypothesis();
 
-    virtual void addZone(QString newZone);
+    virtual void addZoneinTWZone(QString newZone);
     virtual void setGroups(QStringList listGroup);
 
 protected :
@@ -45,9 +64,14 @@ protected :
     int _TypeThC;
     double _ThreshC;
 
+    int _UsField;
     int _UsCmpI;
     int _TypeFieldInterp;
 
+    int _NivMax;
+    double _DiamMin;
+    int _AdapInit;
+
     HOMARD::HOMARD_Gen_var _myHomardGen;
     HOMARD::HOMARD_Hypothesis_var _aHypothesis;
 
@@ -88,6 +112,7 @@ public slots:
     virtual void SetCNo();
     virtual void SetUCL2();
     virtual void SetUCInf();
+    virtual void SetUseField();
     virtual void PushZoneNew();
     virtual void PushZoneEdit();
     virtual void PushZoneDelete();
@@ -95,6 +120,12 @@ public slots:
     virtual void SetFieldNo();
     virtual void SetFieldAll();
     virtual void SetFieldChosen();
+
+    virtual void SetAdvanced();
+    virtual void SetAIN();
+    virtual void SetAIR();
+    virtual void SetAID();
+
     virtual void PushOnOK();
     virtual bool PushOnApply();
     virtual void PushOnHelp();
index ae49c2b218276557e123e3ae22068fbd6e42dba6..fc3b05c572e2467c69af03f4e15d5f2cc24edbc4 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateIteration.h"
@@ -14,7 +33,7 @@ using namespace std;
 
 
 // -----------------------------------------------------------------------------------------------------
-MonCreateIteration::MonCreateIteration(QWidget* parent, bool modal, 
+MonCreateIteration::MonCreateIteration(QWidget* parent, bool modal,
                                        HOMARD::HOMARD_Gen_var myHomardGen, QString IterParentName ):
 // -----------------------------------------------------------------------------------------------------
 /* Constructs a MonCreateIteration
@@ -35,9 +54,9 @@ MonCreateIteration::MonCreateIteration(QWidget* parent, bool modal,
 
       SetNewIterationName();
       GetHypotheses();
-      if (_IterParentName != QString("")) 
+      if (_IterParentName != QString(""))
          { SetIterParentName(); }
-      else 
+      else
          {setModal(false); /* permet selection de l iteration dans l arbre d etude */}
       SetTSNo();
     }
@@ -81,38 +100,34 @@ bool MonCreateIteration::PushOnApply()
 // ------------------------------------------------------------------------
 // Appele lorsque l'un des boutons Ok ou Apply est presse
 {
-  MESSAGE("PushOnApply");
+  MESSAGE("MonCreateIteration::PushOnApply");
 //
   QString aIterationName = LEIterationName->text().trimmed();
   if ( aIterationName == QString (""))
   {
-    QMessageBox::information( 0, "Error",
-           QString(" Nommer l iteration "),
-          QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_NAME") );
     return false;
   }
 
   if ( _IterParentName == QString (""))
   {
-    QMessageBox::information( 0, "Error",
-    QString(" Donner le point de depart "),
-    QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_STARTING_POINT") );
     return false;
   }
   QString aMeshName_np1=LEMeshName_np1->text().trimmed();
   if (aMeshName_np1 == "" )
   {
-    QMessageBox::information( 0, "Error",
-    QString(" Donner le nom du maillage final."),
-    QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_MESH") );
     return false;
   }
   QString monHypoName=CBHypothese->currentText();
   if (monHypoName == "" )
   {
-    QMessageBox::information( 0, "Error",
-    QString(" Choisir une hypothese "),
-    QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_HYPO") );
     return false;
   }
   HOMARD::HOMARD_Hypothesis_var _myHypothesis = _myHomardGen->GetHypothesis(monHypoName.toStdString().c_str());
@@ -120,9 +135,8 @@ bool MonCreateIteration::PushOnApply()
   int TypeAdap = ListTypes[0];
   if ( TypeAdap == 1 and LEFieldFile->text().trimmed() == QString("") )
   {
-    QMessageBox::information( 0, "Error",
-    QString("Avec cette hypothese, il faut fournir le fichier du champ."),
-    QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_FIELD_FILE") );
     return false;
   }
 
@@ -141,11 +155,10 @@ bool MonCreateIteration::PushOnApply()
                CORBA::string_dup(_IterationName.toStdString().c_str()),
                CORBA::string_dup(_IterParentName.toStdString().c_str()));
     }
-    catch( SALOME::SALOME_Exception& S_ex ) 
+    catch( SALOME::SALOME_Exception& S_ex )
     {
-       QMessageBox::information( 0, "Error",
-                QString(CORBA::string_dup(S_ex.details.text)),
-                QMessageBox::Ok + QMessageBox::Default );
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
        return false;
     }
   }
@@ -160,7 +173,7 @@ bool MonCreateIteration::PushOnApply()
     int rank = SpinBox_Rank->value();
     int step = SpinBox_TimeStep->value();
     aIter->SetFieldFile(CORBA::string_dup(FieldFile.toStdString().c_str()));
-    aIter->SetTimeStepRank(rank,step);
+    aIter->SetTimeStepRank(step,rank);
   }
   _myHomardGen->AssociateIterHypo (IterName, monHypoName.toStdString().c_str());
   aIter->SetMeshName(CORBA::string_dup(aMeshName_np1.toStdString().c_str()));
@@ -181,7 +194,7 @@ void MonCreateIteration::PushOnOK()
 void MonCreateIteration::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-       HOMARD_UTILS::PushOnHelp(QString("gui_create_iteration.html"));
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_iteration.html"));
 }
 
 // ------------------------------------------------------------------------
@@ -199,7 +212,7 @@ void MonCreateIteration::SetIterParentName()
   LEMeshName_n->setText(MeshName);
   LEMeshName_n->setReadOnly(1);
   LEMeshName_np1->setText(MeshName);
-  
+
   LEIterationParentName->setText(_IterParentName);
 }
 
@@ -210,7 +223,7 @@ void MonCreateIteration::SetNewIterationName()
 // Recherche d'un nom par defaut qui n'existe pas encore
 
   HOMARD::listeIterations_var  myIters=_myHomardGen->GetAllIterations();
-  int num = 0;// 
+  int num = 0;//
   QString aIterationName="";
   while (aIterationName=="" )
   {
@@ -237,11 +250,10 @@ void MonCreateIteration::PushHypoEdit()
   if (CBHypothese->currentText() == QString(""))  return;
   if (_IterParentName == QString(""))
   {
-        QMessageBox::information( 0, "Error",
-        QString("The previous iteration must be given."),
-        QMessageBox::Ok + QMessageBox::Default );
-        raise();
-        return;
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_STARTING_POINT") );
+    raise();
+    return;
   }
   QString aFieldFile=LEFieldFile->text().trimmed();
   MonEditHypothesis *HypoDlg = new MonEditHypothesis(this,TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),CBHypothese->currentText(), _CaseName, aFieldFile) ;
@@ -252,28 +264,27 @@ void MonCreateIteration::PushHypoEdit()
 void MonCreateIteration::addHypothese(QString newHypothese)
 // ------------------------------------------------------------------------
 {
-         CBHypothese->insertItem(0,newHypothese);
-         CBHypothese->setCurrentIndex(0);
+  CBHypothese->insertItem(0,newHypothese);
+  CBHypothese->setCurrentIndex(0);
 }
 // ------------------------------------------------------------------------
 void MonCreateIteration::PushHypoNew()
 // ------------------------------------------------------------------------
 {
-    if (_IterParentName == QString(""))
-    {
-         QMessageBox::information( 0, "Error",
-         QString("The previous iteration must be given."),
-         QMessageBox::Ok + QMessageBox::Default );
-         raise();
-         return;
-    }
-    if ( _CaseName == QString(""))
-    {
-         _CaseName = _myHomardGen->GetCaseName(CORBA::string_dup(_IterParentName.toStdString().c_str()));
-    }
-   QString aFieldFile=LEFieldFile->text().trimmed();
-   MonCreateHypothesis *HypoDlg = new MonCreateHypothesis(this,TRUE,HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),QString(""),_CaseName, aFieldFile) ;
-   HypoDlg->show();
+  if (_IterParentName == QString(""))
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ITER_STARTING_POINT") );
+    raise();
+    return;
+  }
+  if ( _CaseName == QString(""))
+  {
+        _CaseName = _myHomardGen->GetCaseName(CORBA::string_dup(_IterParentName.toStdString().c_str()));
+  }
+  QString aFieldFile=LEFieldFile->text().trimmed();
+  MonCreateHypothesis *HypoDlg = new MonCreateHypothesis(this,TRUE,HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),QString(""),_CaseName, aFieldFile) ;
+  HypoDlg->show();
 }
 
 // ------------------------------------------------------------------------
index 141619fdf70e698dc3773d48df84613f67e96c23..bb5e9bdd2ea45961c4b42157a8d02e361ffd1ef4 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATEITERATION_H
 #define MON_CREATEITERATION_H
 
index 47121c7b17ca45af13d023636a979bffefe4ab05..53ee66294ec4370cc763824abf3f76f71c35f1a5 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateListGroup.h"
@@ -5,7 +24,6 @@ using namespace std;
 #include "MonCreateBoundaryDi.h"
 
 #include <QFileDialog>
-#include <QMessageBox>
 
 #include "SalomeApp_Tools.h"
 #include "HOMARDGUI_Utils.h"
@@ -19,8 +37,8 @@ using namespace std;
 #include <SUIT_ViewManager.h>
 
 // --------------------------------------------------------------------------------------------------------------
-MonCreateListGroup::MonCreateListGroup(MonCreateHypothesis* parentHyp, MonCreateBoundaryDi* parentBound, bool modal, 
-                                       HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName,  QStringList listeGroupesHypo) : 
+MonCreateListGroup::MonCreateListGroup(MonCreateHypothesis* parentHyp, MonCreateBoundaryDi* parentBound, bool modal,
+                                       HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName,  QStringList listeGroupesHypo) :
 // --------------------------------------------------------------------------------------------------------------
 //
     QDialog(0), Ui_CreateListGroup(),
@@ -37,8 +55,8 @@ MonCreateListGroup::MonCreateListGroup(MonCreateHypothesis* parentHyp, MonCreate
     InitGroupes();
 }
 // --------------------------------------------------------------------------------------------------------------
-MonCreateListGroup::MonCreateListGroup(MonCreateHypothesis* parentHyp, MonCreateBoundaryDi* parentBound,  
-                                       HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName,  QStringList listeGroupesHypo) : 
+MonCreateListGroup::MonCreateListGroup(MonCreateHypothesis* parentHyp, MonCreateBoundaryDi* parentBound,
+                                       HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName,  QStringList listeGroupesHypo) :
 // --------------------------------------------------------------------------------------------------------------
 //
     QDialog(0), Ui_CreateListGroup(),
@@ -103,7 +121,7 @@ void MonCreateListGroup::PushOnHelp()
 void MonCreateListGroup::InitGroupes()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de InitGroupes ");
+  MESSAGE("Debut de MonCreateListGroup::InitGroupes ");
   for ( int row=0; row< TWGroupe->rowCount(); row++)
       TWGroupe->removeRow(row);
   TWGroupe->setRowCount(0);
@@ -120,12 +138,12 @@ void MonCreateListGroup::InitGroupes()
       {TWGroupe->item( i, 0 )->setCheckState( Qt::Checked );}
     else
       {TWGroupe->item( i, 0 )->setCheckState( Qt::Unchecked );}
-    TWGroupe->setItem( i, 1, new QTableWidgetItem(QString((_listeGroupesCas)[i])));
+    TWGroupe->setItem( i, 1, new QTableWidgetItem(QString((_listeGroupesCas)[i]).trimmed()));
     TWGroupe->item( i, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
   }
   TWGroupe->resizeColumnsToContents();
   TWGroupe->resizeRowsToContents();
   TWGroupe->clearSelection();
-  MESSAGE("Fin de InitGroupes ");
+//   MESSAGE("Fin de MonCreateListGroup::InitGroupes ");
 }
 
index c9e3e22ea6a3ecf97d36d9f585adb37156230d16..321ddd442a5f779a3b2f2b3210a5f781492cd482 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATELISTGROUP_H
 #define MON_CREATELISTGROUP_H
 
index 6fbea3d2fea526bcc8da4721a5eea58d0f75f824..86c71d9ef5c1da923b937b7e46a5f0957c8ecc60 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonCreateZone.h"
@@ -30,33 +49,28 @@ MonCreateZone::MonCreateZone(MonCreateHypothesis* parent, bool modal,
     _parent(parent),
     _aZoneName (""),
     _aCaseName(caseName),
+    _Orient(0),
     _ZoneType(2),
     _Xcentre(0), _Ycentre(0), _Zcentre(0), _Rayon(0),
     _ZoneXcentre(0), _ZoneYcentre(0), _ZoneZcentre(0), _ZoneRayon(0),
+    _Xmin(0), _Xmax(0), _Xincr(0), _Ymin(0), _Ymax(0), _Yincr(0), _Zmin(0), _Zmax(0), _Zincr(0),
     _ZoneXmin(0), _ZoneXmax(0), _ZoneYmin(0), _ZoneYmax(0), _ZoneZmin(0), _ZoneZmax(0),
-    _Xmin(0), _Xmax(0), _Xincr(0), _Ymin(0), _Ymax(0), _Yincr(0), _Zmin(0), _Zmax(0), _Zincr(0), _DMax(0),
+    _Xaxis(0), _Yaxis(0), _Zaxis(0), _RayonInt(0), _Haut(0),
+    _ZoneXaxis(0), _ZoneYaxis(0), _ZoneZaxis(0), _ZoneRayonInt(0), _ZoneHaut(0),
+    _DMax(0),
     Chgt (false)
     {
       MESSAGE("Constructeur") ;
-      _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
-      setupUi(this);
-      setModal(modal);
-
-    //  Gestion des icones
-      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-      QPixmap pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
-      QIcon IS=QIcon(pix);
-      RBSphere->setIcon(IS);
-      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "boxdxyz.png" );
-      QIcon IS2=QIcon(pix2);
-      RBBox->setIcon(IS2);
-
-      InitConnect( );
+      _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen) ;
+      setupUi(this) ;
+      setModal(modal) ;
+      InitConnect( ) ;
 
       SetNewZoneName() ;
-      InitValZone();           // Cherche les valeurs de la boite englobante le maillage
-      InitMinMax();            // Initialise les bornes des boutons
-      SetBox();                // Propose une boite en premier choix
+      InitValZone() ;           // Cherche les valeurs de la boite englobante le maillage
+      InitMinMax() ;            // Initialise les bornes des boutons
+      SetBox() ;                // Propose une boite en premier choix
+
     }
 // --------------------------------------------------------------------------------------------------------------
 MonCreateZone::MonCreateZone(MonCreateHypothesis* parent,
@@ -70,25 +84,23 @@ MonCreateZone::MonCreateZone(MonCreateHypothesis* parent,
     _parent(parent),
     _aZoneName (""),
     _aCaseName(caseName),
+    _Orient(0),
     _ZoneType(2),
     _Xcentre(0), _Ycentre(0), _Zcentre(0), _Rayon(0),
     _ZoneXcentre(0), _ZoneYcentre(0), _ZoneZcentre(0), _ZoneRayon(0),
     _ZoneXmin(0), _ZoneXmax(0), _ZoneYmin(0), _ZoneYmax(0), _ZoneZmin(0), _ZoneZmax(0),
+    _Xaxis(0), _Yaxis(0), _Zaxis(0), _RayonInt(0), _Haut(0),
+    _ZoneXaxis(0), _ZoneYaxis(0), _ZoneZaxis(0), _ZoneRayonInt(0), _ZoneHaut(0),
     // Pour affichage lors de l edition d une Zone sans nom de Cas
-    _Xmin(1), _Xmax(1), _Xincr(1), _Ymin(1), _Ymax(1), _Yincr(1), _Zmin(1), _Zmax(1), _Zincr(1), _DMax(1),
+    _Xmin(1), _Xmax(1), _Xincr(1), _Ymin(1), _Ymax(1), _Yincr(1), _Zmin(1), _Zmax(1), _Zincr(1),
+    _DMax(1),
     Chgt (false)
     {
   //  MESSAGE("Debut de  MonCreateZone")
-      setupUi(this);
-      SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-      QPixmap pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" );
-      QIcon IS=QIcon(pix);
-      RBSphere->setIcon(IS);
-      QPixmap pix2 = resMgr->loadPixmap( "HOMARD", "boxdxyz.png" );
-      QIcon IS2=QIcon(pix2);
-      RBBox->setIcon(IS2);
-      setModal(true);
-      InitConnect();
+      setupUi(this) ;
+
+      setModal(true) ;
+      InitConnect() ;
     }
 
 // ------------------------------------------------------------------------
@@ -103,10 +115,12 @@ void MonCreateZone::InitConnect()
 {
     connect( RBBox,        SIGNAL(clicked()) , this, SLOT(SetBox()) ) ;
     connect( RBSphere,     SIGNAL(clicked()) , this, SLOT(SetSphere()) ) ;
-    connect( buttonOk,     SIGNAL( pressed() ), this, SLOT( PushOnOK() ) );
-    connect( buttonApply,  SIGNAL( pressed() ), this, SLOT( PushOnApply() ) );
-    connect( buttonCancel, SIGNAL( pressed() ), this, SLOT( close() ) );
-    connect( buttonHelp,   SIGNAL( pressed() ), this, SLOT( PushOnHelp() ) );
+    connect( RBCylinder,   SIGNAL(clicked()) , this, SLOT(SetCylinder()) ) ;
+    connect( RBPipe,       SIGNAL(clicked()) , this, SLOT(SetPipe()) ) ;
+    connect( buttonOk,     SIGNAL( pressed() ), this, SLOT( PushOnOK() ) ) ;
+    connect( buttonApply,  SIGNAL( pressed() ), this, SLOT( PushOnApply() ) ) ;
+    connect( buttonCancel, SIGNAL( pressed() ), this, SLOT( close() ) ) ;
+    connect( buttonHelp,   SIGNAL( pressed() ), this, SLOT( PushOnHelp() ) ) ;
 }
 // ------------------------------------------------------------------------
 void MonCreateZone::InitValZone()
@@ -115,60 +129,96 @@ void MonCreateZone::InitValZone()
 //
 //  1. Les coordonnees extremes du maillage
 //
-    if (_aCaseName == QString("")) { return; }
-
-    HOMARD::HOMARD_Cas_var aCas = _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
-    HOMARD::extrema_var  MesExtremes = aCas->GetBoundingBox();
-    int num = MesExtremes->length() ;
-    ASSERT(num == 10);
-    _Xmin=MesExtremes[0]; _Xmax=MesExtremes[1]; _Xincr=MesExtremes[2];
-    _Ymin=MesExtremes[3]; _Ymax=MesExtremes[4]; _Yincr=MesExtremes[5];
-    _Zmin=MesExtremes[6]; _Zmax=MesExtremes[7]; _Zincr=MesExtremes[8];
-    _DMax=MesExtremes[9];
-     MESSAGE ("_Xmin : " << _Xmin << " _Xmax : " << _Xmax << " _Xincr : " << _Xincr ) ;
-     MESSAGE ("_Ymin : " << _Ymin << " _Ymax : " << _Ymax << " _Yincr : " << _Yincr ) ;
-     MESSAGE ("_Zmin : " << _Zmin << " _Zmax : " << _Zmax << " _Zincr : " << _Zincr) ;
-     MESSAGE ("_DMax : " << _DMax);
+  if (_aCaseName == QString("")) { return; }
 
+  HOMARD::HOMARD_Cas_var aCas = _myHomardGen->GetCas(_aCaseName.toStdString().c_str()) ;
+  HOMARD::extrema_var  MesExtremes = aCas->GetBoundingBox() ;
+  int num = MesExtremes->length() ;
+  ASSERT(num == 10) ;
+  _Xmin=MesExtremes[0]; _Xmax=MesExtremes[1]; _Xincr=MesExtremes[2];
+  _Ymin=MesExtremes[3]; _Ymax=MesExtremes[4]; _Yincr=MesExtremes[5];
+  _Zmin=MesExtremes[6]; _Zmax=MesExtremes[7]; _Zincr=MesExtremes[8];
+  _DMax=MesExtremes[9];
+  if ( _Xincr < 0 ) { _Orient = 2 ; }
+  else if ( _Yincr < 0 ) { _Orient = 3 ; }
+  else if ( _Zincr < 0 ) { _Orient = 1 ; }
+  MESSAGE ("_Xmin : " << _Xmin << " _Xmax : " << _Xmax << " _Xincr : " << _Xincr ) ;
+  MESSAGE ("_Ymin : " << _Ymin << " _Ymax : " << _Ymax << " _Yincr : " << _Yincr ) ;
+  MESSAGE ("_Zmin : " << _Zmin << " _Zmax : " << _Zmax << " _Zincr : " << _Zincr) ;
+  MESSAGE ("_DMax : " << _DMax) ;
+  MESSAGE ("_Orient : " << _Orient) ;
 //  2. Caracteristiques des zones
 // en X
-    if ( _Xincr < 0 )
-    {
-      _ZoneXmin = _Xmin;
-      _ZoneXmax = _Xmax;
-    }
-    else
-    {
-      _ZoneXmin = _Xmin - _Xincr;
-      _ZoneXmax = _Xmax + _Xincr;
-    }
-    _Xcentre=(_Xmin + _Xmax)/2.;
+  if ( _Xincr < 0 )
+  {
+    _ZoneXmin = _Xmin;
+    _ZoneXmax = _Xmax;
+  }
+  else
+  {
+    _ZoneXmin = _Xmin - _Xincr;
+    _ZoneXmax = _Xmax + _Xincr;
+  }
+  _Xcentre=(_Xmin + _Xmax)/2.;
 // en Y
-    if ( _Yincr < 0 )
-    {
-      _ZoneYmin = _Ymin;
-      _ZoneYmax = _Ymax;
-    }
-    else
-    {
-      _ZoneYmin = _Ymin - _Yincr;
-      _ZoneYmax = _Ymax + _Yincr;
-    }
-    _Ycentre=(_Ymin + _Ymax)/2.;
+  if ( _Yincr < 0 )
+  {
+    _ZoneYmin = _Ymin;
+    _ZoneYmax = _Ymax;
+  }
+  else
+  {
+    _ZoneYmin = _Ymin - _Yincr;
+    _ZoneYmax = _Ymax + _Yincr;
+  }
+  _Ycentre=(_Ymin + _Ymax)/2.;
 // en Z
-    if ( _Zincr < 0 )
-    {
-      _ZoneZmin = _Zmin;
-      _ZoneZmax = _Zmax;
-    }
-    else
-    {
-      _ZoneZmin = _Zmin - _Zincr;
-      _ZoneZmax = _Zmax + _Zincr;
-    }
-    _Zcentre=(_Zmin + _Zmax)/2.;
-// Rayon
-    _Rayon= _DMax/4.;
+  if ( _Zincr < 0 )
+  {
+    _ZoneZmin = _Zmin;
+    _ZoneZmax = _Zmax;
+  }
+  else
+  {
+    _ZoneZmin = _Zmin - _Zincr;
+    _ZoneZmax = _Zmax + _Zincr;
+  }
+  _Zcentre=(_Zmin + _Zmax)/2.;
+// Rayons
+  _Rayon= _DMax/4.;
+  _RayonInt= _DMax/8.;
+// Axe et hauteur pour cylindre et tuyau
+  _Haut= _DMax/2.;
+// 3. Gestion des icones
+  SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr() ;
+  QPixmap pix = resMgr->loadPixmap( "HOMARD", "boxdxyz.png" ) ;
+  if ( _Orient == 0 ) { pix = resMgr->loadPixmap( "HOMARD", "boxdxyz.png" ) ; }
+  else                { pix = resMgr->loadPixmap( "HOMARD", "boxdxy.png" ) ; }
+  QIcon IS=QIcon(pix) ;
+  RBBox->setIcon(IS) ;
+
+  if ( _Orient == 0 ) { pix = resMgr->loadPixmap( "HOMARD", "cylinderpointvector.png" ) ; }
+  else                { pix = resMgr->loadPixmap( "HOMARD", "disk.png" ) ;
+                        RBCylinder->setText(QApplication::translate("CreateZone", "Disk", 0, QApplication::UnicodeUTF8));
+                        TLXbase->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+                        TLYbase->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+                        TLZbase->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8)); }
+  IS=QIcon(pix) ;
+  RBCylinder->setIcon(IS) ;
+
+  if ( _Orient == 0 ) { pix = resMgr->loadPixmap( "HOMARD", "pipe.png" ) ; }
+  else                { pix = resMgr->loadPixmap( "HOMARD", "diskwithhole.png" ) ;
+                        RBPipe->setText(QApplication::translate("CreateZone", "Disk with hole", 0, QApplication::UnicodeUTF8));
+                        TLXbase_p->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+                        TLYbase_p->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+                        TLZbase_p->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8)); }
+  IS=QIcon(pix) ;
+  RBPipe->setIcon(IS) ;
+
+  if ( _Orient == 0 ) { pix = resMgr->loadPixmap( "HOMARD", "spherepoint.png" ) ;
+                        IS=QIcon(pix) ;
+                        RBSphere->setIcon(IS) ; }
+  else                { RBSphere->setVisible(0) ; }
 }
 
 // ------------------------------------------------------------------------
@@ -177,52 +227,99 @@ void MonCreateZone::InitMinMax()
 {
 // en X
     if ( _Xincr > 0) {
-      SpinBox_Xmini->setRange(_ZoneXmin,_ZoneXmax);
-      SpinBox_Xmaxi->setRange(_ZoneXmin,_ZoneXmax);
-      SpinBox_Xmini->setSingleStep(_Xincr);
-      SpinBox_Xmaxi->setSingleStep(_Xincr);
-      SpinBox_Xcentre->setSingleStep(_Xincr);
+      SpinBox_Xmini->setRange(_ZoneXmin,_ZoneXmax) ;
+      SpinBox_Xmaxi->setRange(_ZoneXmin,_ZoneXmax) ;
+      SpinBox_Xmini->setSingleStep(_Xincr) ;
+      SpinBox_Xmaxi->setSingleStep(_Xincr) ;
+      SpinBox_Xcentre->setSingleStep(_Xincr) ;
     }
     else {
       SpinBox_Xmini->setValue(_ZoneXmin) ;
       SpinBox_Xmaxi->setValue(_ZoneXmax) ;
+      SpinBox_Xcentre->setValue(_Xcentre) ;
+      SpinBox_Xbase->setValue(_Xcentre) ;
+      SpinBox_Xbase_p->setValue(_Xcentre) ;
       SpinBox_Xmini->setEnabled(false) ;
       SpinBox_Xmaxi->setEnabled(false) ;
       SpinBox_Xcentre->setEnabled(false) ;
+      SpinBox_Xbase->setEnabled(false) ;
+      SpinBox_Xbase_p->setEnabled(false) ;
     }
 // en Y
     if ( _Yincr > 0) {
-      SpinBox_Ymini->setRange(_ZoneYmin,_ZoneYmax);
-      SpinBox_Ymaxi->setRange(_ZoneYmin,_ZoneYmax);
-      SpinBox_Ymini->setSingleStep(_Yincr);
-      SpinBox_Ymaxi->setSingleStep(_Yincr);
-      SpinBox_Ycentre->setSingleStep(_Yincr);
+      SpinBox_Ymini->setRange(_ZoneYmin,_ZoneYmax) ;
+      SpinBox_Ymaxi->setRange(_ZoneYmin,_ZoneYmax) ;
+      SpinBox_Ymini->setSingleStep(_Yincr) ;
+      SpinBox_Ymaxi->setSingleStep(_Yincr) ;
+      SpinBox_Ycentre->setSingleStep(_Yincr) ;
     }
     else {
       SpinBox_Ymini->setValue(_ZoneYmin) ;
       SpinBox_Ymaxi->setValue(_ZoneYmax) ;
-      SpinBox_Ycentre->setValue(_Ycentre);
+      SpinBox_Ycentre->setValue(_Ycentre) ;
+      SpinBox_Ybase->setValue(_Ycentre) ;
+      SpinBox_Ybase_p->setValue(_Ycentre) ;
       SpinBox_Ymini->setEnabled(false) ;
       SpinBox_Ymaxi->setEnabled(false) ;
       SpinBox_Ycentre->setEnabled(false) ;
+      SpinBox_Ybase->setEnabled(false) ;
+      SpinBox_Ybase_p->setEnabled(false) ;
     }
 // en Z
     if ( _Zincr > 0) {
-      SpinBox_Zmini->setRange(_ZoneZmin,_ZoneZmax);
-      SpinBox_Zmaxi->setRange(_ZoneZmin,_ZoneZmax);
-      SpinBox_Zmini->setSingleStep(_Zincr);
-      SpinBox_Zmaxi->setSingleStep(_Zincr);
-      SpinBox_Zcentre->setSingleStep(_Zincr);
+      SpinBox_Zmini->setRange(_ZoneZmin,_ZoneZmax) ;
+      SpinBox_Zmaxi->setRange(_ZoneZmin,_ZoneZmax) ;
+      SpinBox_Zmini->setSingleStep(_Zincr) ;
+      SpinBox_Zmaxi->setSingleStep(_Zincr) ;
+      SpinBox_Zcentre->setSingleStep(_Zincr) ;
     }
     else {
       SpinBox_Zmini->setValue(_ZoneZmin) ;
       SpinBox_Zmaxi->setValue(_ZoneZmax) ;
+      SpinBox_Zcentre->setValue(_Zcentre) ;
+      SpinBox_Zbase->setValue(_Zcentre) ;
+      SpinBox_Zbase_p->setValue(_Zcentre) ;
       SpinBox_Zmini->setEnabled(false) ;
       SpinBox_Zmaxi->setEnabled(false) ;
       SpinBox_Zcentre->setEnabled(false) ;
+      SpinBox_Zbase->setEnabled(false) ;
+      SpinBox_Zbase_p->setEnabled(false) ;
+    }
+// Rayons
+    SpinBox_Rayon->setSingleStep(_Rayon/10.) ;
+    SpinBox_Rayon->setMinimum(0.) ;
+    SpinBox_Radius->setSingleStep(_Rayon/10.) ;
+    SpinBox_Radius->setMinimum(0.) ;
+    SpinBox_Radius_int->setSingleStep(_Rayon/20.) ;
+    SpinBox_Radius_int->setMinimum(0.) ;
+    SpinBox_Radius_ext->setSingleStep(_Rayon/10.) ;
+    SpinBox_Radius_ext->setMinimum(0.) ;
+// Axe et hauteur
+// Si une coordonnee est constante, inutile de demander l'axe et la hauteur
+    if ( _Orient > 0) {
+      SpinBox_Xaxis->setVisible(0) ;
+      SpinBox_Yaxis->setVisible(0) ;
+      SpinBox_Zaxis->setVisible(0) ;
+      SpinBox_Haut->setVisible(0) ;
+      TLXaxis->setVisible(0) ;
+      TLYaxis->setVisible(0) ;
+      TLZaxis->setVisible(0) ;
+      TLHaut->setVisible(0) ;
+      SpinBox_Xaxis_p->setVisible(0) ;
+      SpinBox_Yaxis_p->setVisible(0) ;
+      SpinBox_Zaxis_p->setVisible(0) ;
+      SpinBox_Haut_p->setVisible(0) ;
+      TLXaxis_p->setVisible(0) ;
+      TLYaxis_p->setVisible(0) ;
+      TLZaxis_p->setVisible(0) ;
+      TLHaut_p->setVisible(0) ;
+    }
+    else {
+      SpinBox_Haut->setMinimum(0.) ;
+      SpinBox_Haut->setSingleStep(_Rayon/10.) ;
+      SpinBox_Haut_p->setMinimum(0.) ;
+      SpinBox_Haut_p->setSingleStep(_Rayon/10.) ;
     }
-// Rayon
-    SpinBox_Rayon->setMinimum(0.);
 }
 // ------------------------------------------------------------------------
 bool MonCreateZone::PushOnApply()
@@ -233,61 +330,153 @@ bool MonCreateZone::PushOnApply()
   std::cerr << LEZoneName->text().trimmed().toStdString() << std::endl;
   if (LEZoneName->text().trimmed()=="")
   {
-    QMessageBox::information( 0, "Error",
-                              "The zone must be named.",
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_ZONE_NAME") ) ;
     return false;
   }
 
   switch (_ZoneType)
   {
-      case 2 : // il s agit d une boite
+    case 11 : // il s agit d un rectangle
+    { }
+    case 12 : // il s agit d un rectangle
+    { }
+    case 13 : // il s agit d un rectangle
+    { }
+    case 2 : // il s agit d un parallelipipede rectangle
+    {
+      if (  (_ZoneXmin != SpinBox_Xmini->value()) or
+            (_ZoneXmax != SpinBox_Xmaxi->value()) or
+            (_ZoneYmin != SpinBox_Ymini->value()) or
+            (_ZoneYmax != SpinBox_Ymaxi->value()) or
+            (_ZoneZmin != SpinBox_Zmini->value()) or
+            (_ZoneZmax   != SpinBox_Zmaxi->value()) )
       {
-        if ((_ZoneXmin != SpinBox_Xmini->value()) or (_ZoneXmax != SpinBox_Xmaxi->value()) or
-            (_ZoneYmin != SpinBox_Ymini->value()) or (_ZoneYmax != SpinBox_Ymaxi->value()) or
-            (_ZoneZmin != SpinBox_Zmini->value()) or (_ZoneZmax != SpinBox_Zmaxi->value()) )
-            Chgt = true;
-        break;
-      } 
-
-      case 4 : // il s agit d une sphere
+        Chgt = true;
+        _ZoneXmin= SpinBox_Xmini->value() ; _ZoneXmax= SpinBox_Xmaxi->value() ;
+        _ZoneYmin= SpinBox_Ymini->value() ; _ZoneYmax= SpinBox_Ymaxi->value() ;
+        _ZoneZmin= SpinBox_Zmini->value() ; _ZoneZmax= SpinBox_Zmaxi->value() ;
+      }
+      break ;
+    }
+    case 4 : // il s agit d une sphere
+    {
+      if (  (_ZoneXcentre != SpinBox_Xcentre->value()) or
+            (_ZoneYcentre != SpinBox_Ycentre->value()) or
+            (_ZoneZcentre != SpinBox_Zbase->value())   or
+            (_ZoneRayon   != SpinBox_Rayon->value()) )
+      {
+        Chgt = true;
+        _ZoneXcentre=SpinBox_Xcentre->value() ;
+        _ZoneYcentre=SpinBox_Ycentre->value() ;
+        _ZoneZcentre=SpinBox_Zcentre->value() ;
+        _ZoneRayon=SpinBox_Rayon->value() ;
+      }
+      break ;
+    }
+    case 31 : // il s agit d un disque issu d'un cylindre
+    { }
+    case 32 : // il s agit d un disque issu d'un cylindre
+    { }
+    case 33 : // il s agit d un disque issu d'un cylindre
+    { }
+    case 5 : // il s agit d un cylindre
+    {
+      if (  (_ZoneXcentre != SpinBox_Xbase->value())  or
+            (_ZoneYcentre != SpinBox_Ybase->value())  or
+            (_ZoneZcentre != SpinBox_Zbase->value())  or
+            (_ZoneRayon   != SpinBox_Radius->value()) or
+            (_ZoneHaut    != SpinBox_Haut->value())   or
+            (_ZoneXaxis   != SpinBox_Xaxis->value())  or
+            (_ZoneYaxis   != SpinBox_Yaxis->value())  or
+            (_ZoneZaxis   != SpinBox_Zaxis->value()) )
+      {
+        Chgt = true;
+        _ZoneXcentre=SpinBox_Xbase->value() ;
+        _ZoneYcentre=SpinBox_Ybase->value() ;
+        _ZoneZcentre=SpinBox_Zbase->value() ;
+        _ZoneXaxis=SpinBox_Xaxis->value() ;
+        _ZoneYaxis=SpinBox_Yaxis->value() ;
+        _ZoneZaxis=SpinBox_Zaxis->value() ;
+        _ZoneRayon=SpinBox_Radius->value() ;
+        _ZoneHaut=SpinBox_Haut->value() ;
+      }
+      break ;
+    }
+    case 61 : // il s agit d un disque avec trou
+    { }
+    case 62 : // il s agit d un disque avec trou
+    { }
+    case 63 : // il s agit d un disque avec trou
+    { }
+    case 7 : // il s agit d un tuyau
+    {
+      if (  (_ZoneXcentre  != SpinBox_Xbase_p->value())  or
+            (_ZoneYcentre  != SpinBox_Ybase_p->value())  or
+            (_ZoneZcentre  != SpinBox_Zbase_p->value())  or
+            (_ZoneRayonInt != SpinBox_Radius_int->value()) or
+            (_ZoneRayon    != SpinBox_Radius_ext->value()) or
+            (_ZoneHaut     != SpinBox_Haut_p->value())   or
+            (_ZoneXaxis    != SpinBox_Xaxis_p->value())  or
+            (_ZoneYaxis    != SpinBox_Yaxis_p->value())  or
+            (_ZoneZaxis    != SpinBox_Zaxis_p->value()) )
       {
-        if ((_ZoneXcentre != SpinBox_Xcentre->value()) or (_ZoneYcentre != SpinBox_Ycentre->value()) 
-        or  (_ZoneZcentre != SpinBox_Zcentre->value()) or (_ZoneRayon != SpinBox_Rayon->value()))
-           Chgt = true;
-           break;
+        Chgt = true;
+        _ZoneXcentre=SpinBox_Xbase_p->value() ;
+        _ZoneYcentre=SpinBox_Ybase_p->value() ;
+        _ZoneZcentre=SpinBox_Zbase_p->value() ;
+        _ZoneXaxis=SpinBox_Xaxis_p->value() ;
+        _ZoneYaxis=SpinBox_Yaxis_p->value() ;
+        _ZoneZaxis=SpinBox_Zaxis_p->value() ;
+        _ZoneRayonInt=SpinBox_Radius_int->value() ;
+        _ZoneRayon=SpinBox_Radius_ext->value() ;
+        _ZoneHaut=SpinBox_Haut_p->value() ;
       }
+      break ;
+   }
   }
 
-  _ZoneXmin= SpinBox_Xmini->value(); _ZoneXmax= SpinBox_Xmaxi->value(); 
-  _ZoneYmin= SpinBox_Ymini->value(); _ZoneYmax= SpinBox_Ymaxi->value(); 
-  _ZoneZmin= SpinBox_Zmini->value(); _ZoneZmax= SpinBox_Zmaxi->value(); 
-
-  _ZoneXcentre=SpinBox_Xcentre->value();_ZoneYcentre=SpinBox_Ycentre->value();
-  _ZoneZcentre=SpinBox_Zcentre->value();_ZoneRayon=SpinBox_Rayon->value();
-
-  if( _ZoneType == 2 )
+// Controles
+// Pour un rectangle ou un parallelepipede :
+  if ( ( _ZoneType >= 11 and _ZoneType <= 13 ) or _ZoneType == 2 )
   {
-    if ((_ZoneXmin>= _ZoneXmax) and (_Xincr > 0)) {
-      QMessageBox::information( 0, "Error",
-               QString("X maxi must be greater than X mini."),
-               QMessageBox::Ok + QMessageBox::Default );
+    if ((_ZoneXmin >= _ZoneXmax) and (_Xincr > 0)) {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_ZONE_LIMIT").arg("X") ) ;
       return false; }
 
-    if  ((_ZoneYmin>= _ZoneYmax) and (_Yincr > 0)) {
-      QMessageBox::information( 0, "Error",
-                  QString("Y maxi must be greater than Y mini."),
-                  QMessageBox::Ok + QMessageBox::Default );
+    if  ((_ZoneYmin >= _ZoneYmax) and (_Yincr > 0)) {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_ZONE_LIMIT").arg("Y") ) ;
       return false; }
 
-    if ((_ZoneZmin>= _ZoneZmax) and (_Zincr > 0)) {
-      QMessageBox::information( 0, "Error",
-                    QString("Z maxi must be greater than Z mini."),
-                    QMessageBox::Ok + QMessageBox::Default );
+    if ((_ZoneZmin >= _ZoneZmax) and (_Zincr > 0)) {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_ZONE_LIMIT").arg("Z") ) ;
       return false; }
   }
-
-  bool bOK = CreateOrUpdateZone();
+// L'axe pour un cylindre ou un tuyau :
+  if ( _ZoneType == 5 or _ZoneType == 7 )
+  {
+    double daux = _ZoneXaxis*_ZoneXaxis + _ZoneYaxis*_ZoneYaxis + _ZoneZaxis*_ZoneZaxis ;
+    if ( daux < 0.0000001 )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_AXE") );
+      return false;
+    }
+  }
+// Rayons pour disque avec trou ou un tuyau :
+  if ( ( _ZoneType >= 61 and _ZoneType <= 63 ) or _ZoneType == 7 )
+  {
+    if ( _ZoneRayonInt >= _ZoneRayon )
+    {
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QObject::tr("HOM_ZONE_RAYON") );
+      return false;
+    }
+  }
+  bool bOK = CreateOrUpdateZone() ;
   return bOK;
 
 }
@@ -295,41 +484,92 @@ bool MonCreateZone::PushOnApply()
 bool MonCreateZone:: CreateOrUpdateZone()
 //----------------------------------------------------
 //  Creation de la zone
-//  Mise a jour des attributs de la Zone
-
 {
+  MESSAGE("CreateOrUpdateZone _ZoneType ="<<_ZoneType);
   if (_aZoneName != LEZoneName->text().trimmed())
   {
-    try
+    _aZoneName = LEZoneName->text().trimmed() ;
+    switch (_ZoneType)
     {
-      _aZoneName = LEZoneName->text().trimmed();
-      aZone = _myHomardGen->CreateZone( \
-              CORBA::string_dup(_aZoneName.toStdString().c_str()), \
-              CORBA::Long(_ZoneType) );
-      _parent->addZone(_aZoneName);
-     }
-     catch( SALOME::SALOME_Exception& S_ex ) 
-     {
-       QMessageBox::information( 0, "Error",
-                QString(CORBA::string_dup(S_ex.details.text)),
-                QMessageBox::Ok + QMessageBox::Default );
-       return false;
-     }
+      case 11 : // il s agit d un rectangle
+      { aZone = _myHomardGen->CreateZoneBox2D(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _Orient );
+        break;
+      }
+      case 12 : // il s agit d un rectangle
+      { aZone = _myHomardGen->CreateZoneBox2D(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax, _Orient );
+        break;
+      }
+      case 13 : // il s agit d un rectangle
+      { aZone = _myHomardGen->CreateZoneBox2D(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneZmin, _ZoneZmax, _ZoneXmin, _ZoneXmax, _Orient );
+        break;
+      }
+      case 2 : // il s agit d un parallelepipede
+      { aZone = _myHomardGen->CreateZoneBox(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax );
+        break;
+      }
+      case 4 : // il s agit d une sphere
+      { aZone = _myHomardGen->CreateZoneSphere(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon );
+        break;
+      }
+      case 31 : // il s agit d un disque issu d'un cylindre
+      { aZone = _myHomardGen->CreateZoneDisk(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXcentre, _ZoneYcentre, _ZoneRayon, _Orient );
+        break;
+        }
+      case 32 : // il s agit d un disque issu d'un cylindre
+      { aZone = _myHomardGen->CreateZoneDisk(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneYcentre, _ZoneZcentre, _ZoneRayon, _Orient );
+        break;
+      }
+      case 33 : // il s agit d un disque issu d'un cylindre
+      { aZone = _myHomardGen->CreateZoneDisk(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneZcentre, _ZoneXcentre, _ZoneRayon, _Orient );
+        break;
+      }
+      case 5 : // il s agit d un cylindre
+      { aZone = _myHomardGen->CreateZoneCylinder(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut );
+        break;
+      }
+      case 61 : // il s agit d un disque avec trou
+      { aZone = _myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXcentre, _ZoneYcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+        break;
+        }
+      case 62 : // il s agit d un disque avec trou
+      { aZone = _myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneYcentre, _ZoneZcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+        break;
+        }
+      case 63 : // il s agit d un disque avec trou
+      { aZone = _myHomardGen->CreateZoneDiskWithHole(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneZcentre, _ZoneXcentre, _ZoneRayon, _ZoneRayonInt, _Orient );
+        break;
+        }
+      case 7 : // il s agit d un tuyau
+      { aZone = _myHomardGen->CreateZonePipe(CORBA::string_dup(_aZoneName.toStdString().c_str()), \
+        _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut, _ZoneRayonInt );
+        break;
+        }
+    }
+    _parent->addZoneinTWZone(_aZoneName) ;
   }
 // Mise en place des attributs
-  aZone->SetZoneType(_ZoneType);
-  aZone->SetBox(_ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax);
-  aZone->SetSphere(_ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon);
-  aZone->SetLimit(_Xincr, _Yincr, _Zincr);
+  aZone->SetLimit(_Xincr, _Yincr, _Zincr) ;
 
-  HOMARD_UTILS::updateObjBrowser();
+  HOMARD_UTILS::updateObjBrowser() ;
   return true;
 }
 // ------------------------------------------------------------------------
 void MonCreateZone::PushOnOK()
 // ------------------------------------------------------------------------
 {
-     if (PushOnApply()) this->close();
+     if (PushOnApply()) this->close() ;
 }
 // ------------------------------------------------------------------------
 void MonCreateZone::PushOnHelp()
@@ -344,67 +584,112 @@ void MonCreateZone::SetNewZoneName()
 {
 // Recherche d'un nom par defaut qui n'existe pas encore
 
-  HOMARD::listeZones_var  MyZones = _myHomardGen->GetAllZones();
+  HOMARD::listeZones_var  MyZones = _myHomardGen->GetAllZones() ;
   int num = 0; QString aZoneName="";
-  while (aZoneName=="" ) 
+  while (aZoneName=="" )
   {
     aZoneName.setNum(num+1) ;
     aZoneName.insert(0, QString("Zone_")) ;
-    for ( int i=0; i<MyZones->length(); i++) 
+    for ( int i=0; i<MyZones->length() ; i++)
     {
-      if ( aZoneName ==  QString(MyZones[i])) 
+      if ( aZoneName ==  QString(MyZones[i]))
       {
           num=num+1;
           aZoneName="";
           break;
-      } 
-   } 
+      }
+   }
   }
   LEZoneName->clear() ;
-  LEZoneName->insert(aZoneName);
+  LEZoneName->insert(aZoneName) ;
 }
 // ------------------------------------------------------------------------
 void MonCreateZone::SetBox()
 // ------------------------------------------------------------------------
 {
-  gBBox->setVisible(1);
-  gBSphere->setVisible(0);
-  adjustSize();
+  gBBox->setVisible(1) ;
+  gBSphere->setVisible(0) ;
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(0) ;
+  adjustSize() ;
   _ZoneType=2;
 // Sachant que l'increment est le 1/100eme de l'ecart (min/max), cela revient
 // a initialiser la boite sur une boite 'centrale' comprise entre 2/5 et 3/5
-  if ( _Xincr > 0 ) {
-      SpinBox_Xmini->setValue(_Xcentre-10*_Xincr);
-      SpinBox_Xmaxi->setValue(_Xcentre+10*_Xincr);
-   }
-  if ( _Yincr > 0 ) {
-      SpinBox_Ymini->setValue(_Ycentre-10*_Yincr);
-      SpinBox_Ymaxi->setValue(_Ycentre+10*_Yincr);
-   }
-  if ( _Zincr > 0 ) {
-      SpinBox_Zmini->setValue(_Zcentre-10*_Zincr);
-      SpinBox_Zmaxi->setValue(_Zcentre+10*_Zincr);
-   }
+  if ( _Xincr > 0 ) { SpinBox_Xmini->setValue(_Xcentre-10*_Xincr) ;
+                      SpinBox_Xmaxi->setValue(_Xcentre+10*_Xincr) ; }
+  else { _ZoneType=12 ; }
+  if ( _Yincr > 0 ) { SpinBox_Ymini->setValue(_Ycentre-10*_Yincr) ;
+                      SpinBox_Ymaxi->setValue(_Ycentre+10*_Yincr) ; }
+  else { _ZoneType=13 ; }
+  if ( _Zincr > 0 ) { SpinBox_Zmini->setValue(_Zcentre-10*_Zincr) ;
+                      SpinBox_Zmaxi->setValue(_Zcentre+10*_Zincr) ; }
+  else { _ZoneType=11 ; }
 }
 // ------------------------------------------------------------------------
 void MonCreateZone::SetSphere()
 // ------------------------------------------------------------------------
 {
   MESSAGE("Debut de SetSphere")
-  gBBox->setVisible(0);
-  gBSphere->setVisible(1);
-  adjustSize();
+  gBBox->setVisible(0) ;
+  gBSphere->setVisible(1) ;
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(0) ;
+  adjustSize() ;
   _ZoneType=4;
-  if ( _Xincr > 0 ) {
-     SpinBox_Xcentre->setValue(_Xcentre);
-   }
-  if ( _Yincr > 0 ) {
-     SpinBox_Ycentre->setValue(_Ycentre);
-   }
-  if ( _Zincr > 0 ) {
-     SpinBox_Zcentre->setValue(_Zcentre);
-   }
-   SpinBox_Rayon->setValue(_Rayon); 
+  SpinBox_Xcentre->setValue(_Xcentre) ;
+  SpinBox_Ycentre->setValue(_Ycentre) ;
+  SpinBox_Zcentre->setValue(_Zcentre) ;
+  SpinBox_Rayon->setValue(_Rayon) ;
+  MESSAGE("Fin de SetSphere")
+}
+// ------------------------------------------------------------------------
+void MonCreateZone::SetCylinder()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetCylinder")
+  gBBox->setVisible(0) ;
+  gBSphere->setVisible(0) ;
+  gBCylindre->setVisible(1) ;
+  gBPipe->setVisible(0) ;
+  adjustSize() ;
+  _ZoneType=5;
+  if ( _Xincr > 0 ) { SpinBox_Xbase->setValue(_Xcentre) ;
+                      SpinBox_Xaxis->setValue(0.) ; }
+  else { _ZoneType=32 ; }
+  if ( _Yincr > 0 ) { SpinBox_Ybase->setValue(_Ycentre) ;
+                      SpinBox_Yaxis->setValue(0.) ; }
+  else { _ZoneType=33 ; }
+  if ( _Zincr > 0 ) { SpinBox_Zbase->setValue(_Zcentre) ;
+                      SpinBox_Zaxis->setValue(1.) ; }
+  else { _ZoneType=31 ; }
+  SpinBox_Radius->setValue(_Rayon) ;
+  SpinBox_Haut->setValue(_Haut) ;
+  MESSAGE("Fin de SetCylinder")
+}
+// ------------------------------------------------------------------------
+void MonCreateZone::SetPipe()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetPipe")
+  gBBox->setVisible(0) ;
+  gBSphere->setVisible(0) ;
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(1) ;
+  adjustSize() ;
+  _ZoneType=7;
+  if ( _Xincr > 0 ) { SpinBox_Xbase_p->setValue(_Xcentre) ;
+                      SpinBox_Xaxis_p->setValue(0.) ; }
+  else { _ZoneType=62 ; }
+  if ( _Yincr > 0 ) { SpinBox_Ybase_p->setValue(_Ycentre) ;
+                      SpinBox_Yaxis_p->setValue(0.) ; }
+  else { _ZoneType=63 ; }
+  if ( _Zincr > 0 ) { SpinBox_Zbase_p->setValue(_Zcentre) ;
+                      SpinBox_Zaxis_p->setValue(1.) ; }
+  else { _ZoneType=61 ; }
+  SpinBox_Radius_int->setValue(_RayonInt) ;
+  SpinBox_Radius_ext->setValue(_Rayon) ;
+  SpinBox_Haut_p->setValue(_Haut) ;
+  MESSAGE("Fin de SetPipe")
 }
 
 
index e00812e8b8f731c4ee4096e66ceb1e43193585f6..e1705be111e219a1353e8cdc69788daf0be2e6e5 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_CREATEZONE_H
 #define MON_CREATEZONE_H
 
@@ -32,11 +51,15 @@ protected :
     QString _aZoneName;
     QString _aCaseName;
 
+    int _Orient;
     int _ZoneType;
     double _Xcentre, _Ycentre, _Zcentre, _Rayon ;
-    double _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon;
-    double _Xmin, _Xmax, _Xincr, _Ymin, _Ymax, _Yincr, _Zmin, _Zmax, _Zincr, _DMax ;
-    double _ZoneXmin, _ZoneXmax,  _ZoneYmin, _ZoneYmax,  _ZoneZmin, _ZoneZmax;
+    double _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon ;
+    double _Xmin, _Xmax, _Xincr, _Ymin, _Ymax, _Yincr, _Zmin, _Zmax, _Zincr ;
+    double _ZoneXmin, _ZoneXmax,  _ZoneYmin, _ZoneYmax,  _ZoneZmin, _ZoneZmax ;
+    double _Xaxis, _Yaxis, _Zaxis, _RayonInt, _Haut ;
+    double _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayonInt, _ZoneHaut ;
+    double _DMax ;
 
 
     bool Chgt;
@@ -53,6 +76,8 @@ protected :
 public slots:
     virtual void SetBox();
     virtual void SetSphere();
+    virtual void SetCylinder();
+    virtual void SetPipe();
     virtual void PushOnOK();
     virtual bool PushOnApply();
     virtual void PushOnHelp();
diff --git a/src/HOMARDGUI/MonEditBoundaryAn.cxx b/src/HOMARDGUI/MonEditBoundaryAn.cxx
new file mode 100644 (file)
index 0000000..bf91e60
--- /dev/null
@@ -0,0 +1,192 @@
+// Copyright (C) 2011-2012  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
+//
+
+using namespace std;
+
+#include "MonEditBoundaryAn.h"
+
+#include "SalomeApp_Tools.h"
+#include "HOMARDGUI_Utils.h"
+#include <utilities.h>
+
+
+// ------------------------------------------------------------------------
+MonEditBoundaryAn::MonEditBoundaryAn( MonCreateCase* parent, bool modal,
+                          HOMARD::HOMARD_Gen_var myHomardGen,
+                          QString caseName, QString zoneName ):
+// ------------------------------------------------------------------------
+/* Constructs a MonEditBoundaryAn
+    herite de MonCreateBoundaryAn
+*/
+    MonCreateBoundaryAn(parent, myHomardGen, caseName)
+{
+    MESSAGE("Debut de MonEditBoundaryAn pour " << zoneName.toStdString().c_str());
+    setWindowTitle(QObject::tr("HOM_BOUN_A_EDIT_WINDOW_TITLE"));
+    _aBoundaryAnName=zoneName;
+    aBoundaryAn = _myHomardGen->GetBoundary(_aBoundaryAnName.toStdString().c_str());
+    InitValEdit();
+}
+// ------------------------------------------------------------------------
+MonEditBoundaryAn::~MonEditBoundaryAn()
+// ------------------------------------------------------------------------
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::InitValEdit()
+// ------------------------------------------------------------------------
+{
+  LEBoundaryName->setText(_aBoundaryAnName);
+  LEBoundaryName->setReadOnly(true);
+  _BoundaryType = aBoundaryAn->GetBoundaryType();
+  MESSAGE("_BoundaryType : "<<_BoundaryType);
+  InitValBoundaryAnLimit();
+  if (_aCaseName != QString("")) InitValBoundaryAn();
+  switch (_BoundaryType)
+  {
+    case 1 : // il s agit d un cylindre
+    {
+      InitValBoundaryAnCylindre();
+      SetCylinder();
+      break;
+    }
+    case 2: // il s agit d une sphere
+    {
+      InitValBoundaryAnSphere();
+      SetSphere();
+      break;
+    }
+  };
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::InitValBoundaryAnLimit()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordLimits = aBoundaryAn->GetLimit();
+  ASSERT(mesCoordLimits->length() == 3 );
+  _Xincr=mesCoordLimits[0];
+  _Yincr=mesCoordLimits[1];
+  _Zincr=mesCoordLimits[2];
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::InitValBoundaryAnCylindre()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordBoundary = aBoundaryAn->GetCoords();
+  ASSERT(mesCoordBoundary->length() == 7 );
+  _BoundaryAnXcentre=mesCoordBoundary[0];
+  _BoundaryAnYcentre=mesCoordBoundary[1];
+  _BoundaryAnZcentre=mesCoordBoundary[2];
+  _BoundaryAnXaxis=mesCoordBoundary[3];
+  _BoundaryAnYaxis=mesCoordBoundary[4];
+  _BoundaryAnZaxis=mesCoordBoundary[5];
+  _BoundaryAnRayon=mesCoordBoundary[6];
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::InitValBoundaryAnSphere()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordBoundary = aBoundaryAn->GetCoords();
+  ASSERT(mesCoordBoundary->length() == 4 );
+  _BoundaryAnXcentre=mesCoordBoundary[0];
+  _BoundaryAnYcentre=mesCoordBoundary[1];
+  _BoundaryAnZcentre=mesCoordBoundary[2];
+  _BoundaryAnRayon=mesCoordBoundary[3];
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::SetCylinder()
+// ------------------------------------------------------------------------
+{
+  gBCylindre->setVisible(1);
+  gBSphere->setVisible(0);
+  RBCylindre->setChecked(1);
+  adjustSize();
+  _BoundaryType=1;
+  RBSphere->setDisabled(true);
+  adjustSize();
+
+  SpinBox_Xcent->setValue(_BoundaryAnXcentre);
+  SpinBox_Ycent->setValue(_BoundaryAnYcentre);
+  SpinBox_Zcent->setValue(_BoundaryAnZcentre);
+
+  SpinBox_Xaxis->setValue(_BoundaryAnXaxis);
+  SpinBox_Yaxis->setValue(_BoundaryAnYaxis);
+  SpinBox_Zaxis->setValue(_BoundaryAnZaxis);
+
+
+  SpinBox_Xaxis->setSingleStep(0.1);
+  SpinBox_Xcentre->setSingleStep(_Xincr);
+  SpinBox_Yaxis->setSingleStep(0.1);
+  SpinBox_Ycentre->setSingleStep(_Yincr);
+  SpinBox_Zaxis->setSingleStep(0.1);
+  SpinBox_Zcentre->setSingleStep(_Zincr);
+// Rayon
+  SpinBox_Radius->setValue(_BoundaryAnRayon);
+  SpinBox_Radius->setSingleStep(_BoundaryAnRayon/10.);
+
+}
+// ------------------------------------------------------------------------
+void MonEditBoundaryAn::SetSphere()
+// ------------------------------------------------------------------------
+{
+  gBCylindre->setVisible(0);
+  gBSphere->setVisible(1);
+  RBSphere->setChecked(1);
+  RBCylindre->setDisabled(true);
+  adjustSize();
+  _BoundaryType=2 ;
+
+  SpinBox_Xcentre->setValue(_BoundaryAnXcentre);
+  if ( _Xincr > 0) { SpinBox_Xcentre->setSingleStep(_Xincr); }
+  else             { SpinBox_Xcentre->setSingleStep(1) ; }
+
+  SpinBox_Ycentre->setValue(_BoundaryAnYcentre);
+  if ( _Yincr > 0) { SpinBox_Ycentre->setSingleStep(_Yincr); }
+  else             { SpinBox_Ycentre->setSingleStep(1) ; }
+
+  SpinBox_Zcentre->setValue(_BoundaryAnZcentre);
+  if ( _Zincr > 0) { SpinBox_Zcentre->setSingleStep(_Zincr); }
+  else             { SpinBox_Zcentre->setSingleStep(1);}
+
+  SpinBox_Rayon->setMinimum(0.);
+  SpinBox_Rayon->setValue(_BoundaryAnRayon);
+}
+// ---------------------------------------------------
+bool MonEditBoundaryAn::CreateOrUpdateBoundaryAn()
+//----------------------------------------------------
+//  Mise a jour des attributs de la BoundaryAn
+{
+  switch (_BoundaryType)
+  {
+    case 1 : // il s agit d un cylindre
+    {
+      aBoundaryAn->SetCylinder(_BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis, _BoundaryAnRayon );
+      break;
+    }
+    case 2 : // il s agit d une sphere
+    {
+      aBoundaryAn->SetSphere(_BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnRayon);
+      break;
+    }
+  }
+  if (Chgt) _myHomardGen->InvalideBoundary(_aBoundaryAnName.toStdString().c_str());
+  HOMARD_UTILS::updateObjBrowser();
+  return true;
+}
+
diff --git a/src/HOMARDGUI/MonEditBoundaryAn.h b/src/HOMARDGUI/MonEditBoundaryAn.h
new file mode 100644 (file)
index 0000000..7e02756
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2011-2012  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
+//
+
+#ifndef MON_EDITBOUNDARYAN_H
+#define MON_EDITBOUNDARYAN_H
+
+#include <SALOMEconfig.h>
+#include <SalomeApp_Module.h>
+
+#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
+#include CORBA_CLIENT_HEADER(HOMARD_Gen)
+
+#include <MonCreateBoundaryAn.h>
+
+class MonEditBoundaryAn : public MonCreateBoundaryAn
+{
+    Q_OBJECT
+public:
+    MonEditBoundaryAn( MonCreateCase* parent, bool modal,
+                 HOMARD::HOMARD_Gen_var myHomardGen,
+                 QString caseName, QString zoneName);
+    virtual ~MonEditBoundaryAn();
+
+protected :
+    void SetCylinder();
+    void SetSphere();
+    bool CreateOrUpdateBoundaryAn();
+    void InitValEdit();
+    void InitValBoundaryAnLimit();
+    void InitValBoundaryAnCylindre();
+    void InitValBoundaryAnSphere();
+
+public slots:
+
+};
+
+#endif // MON_EDITZONE_H
index cae08250d351d9d5530b5e3a4ce703e22b88c404..66b453e9273b86b01aa84bb9b027b96df5cfbca3 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditBoundaryDi.h"
@@ -22,7 +41,7 @@ MonEditBoundaryDi::MonEditBoundaryDi( MonCreateCase* parent, bool modal,
     MonCreateBoundaryDi(parent, modal, myHomardGen, caseName, BoundaryName)
 {
     MESSAGE("Debut de Boundary pour " << BoundaryName.toStdString().c_str());
-    setWindowTitle("Edit BoundaryDi");
+    setWindowTitle(QObject::tr("HOM_BOUN_D_EDIT_WINDOW_TITLE"));
     try
     {
      _aBoundary=_myHomardGen->GetBoundary(CORBA::string_dup(_aBoundaryName.toStdString().c_str()));
@@ -31,10 +50,9 @@ MonEditBoundaryDi::MonEditBoundaryDi( MonCreateCase* parent, bool modal,
     }
     catch( SALOME::SALOME_Exception& S_ex )
     {
-        QMessageBox::information( 0, "Error",
-                  QString(CORBA::string_dup(S_ex.details.text)),
-                  QMessageBox::Ok + QMessageBox::Default );
-        return;
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
+      return;
     }
 
     HOMARD::ListGroupType_var maListe = _aBoundary->GetGroups();
@@ -71,19 +89,18 @@ bool MonEditBoundaryDi::PushOnApply()
 void MonEditBoundaryDi::SetFiltrage()
 // // ------------------------------------------------------------------------
 {
-   if (!CBGroupe->isChecked()) return;
-   if (_aCaseName.toStdString().c_str() == QString()) 
-   {
-        QMessageBox::information( 0, "Error",
-                              "Case MeshFile unknowned.",
-                              QMessageBox::Ok + QMessageBox::Default );
-        return;
-   }
-   HOMARD::HOMARD_Cas_var monCas= _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
-   HOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
+  if (!CBGroupe->isChecked()) return;
+  if (_aCaseName.toStdString().c_str() == QString())
+  {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_BOUN_CASE") );
+    return;
+  }
+  HOMARD::HOMARD_Cas_var monCas= _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
+  HOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
 
-   MonEditListGroup *aDlg = new MonEditListGroup(NULL,this,  TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),
-                              _aCaseName, _listeGroupesBoundary) ;
-   aDlg->show();
+  MonEditListGroup *aDlg = new MonEditListGroup(NULL,this,  TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),
+                            _aCaseName, _listeGroupesBoundary) ;
+  aDlg->show();
 }
 
index ce9efbb55907fd27392fb09e86766206f5a62943..c9ce082631919e5bcbe92900187bde269dee9d6c 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITBOUNDARYDI_H
 #define MON_EDITBOUNDARYDI_H
 
index ca060e3fde98675b2070a7dcc08f9c214d4f4316..0045f9be85f0e9bde916df175b69ad0940495aa1 100644 (file)
@@ -1,9 +1,26 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditCase.h"
 
-#include <QMessageBox>
-
 #include "SalomeApp_Tools.h"
 #include "HOMARDGUI_Utils.h"
 #include "HomardQtCommun.h"
@@ -21,7 +38,7 @@ MonEditCase::MonEditCase ( QWidget* parent, bool modal,
    MonCreateCase(parent, modal, myHomardGen)
 {
     MESSAGE("Debut de MonEditCase" << CaseName.toStdString().c_str());
-    setWindowTitle("Edit case");
+    setWindowTitle(QObject::tr("HOM_CASE_EDIT_WINDOW_TITLE"));
     _aCaseName = CaseName;
     aCase = _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
     InitValEdit();
@@ -37,79 +54,148 @@ MonEditCase::~MonEditCase()
 void MonEditCase::InitValEdit()
 // ------------------------------
 {
-    MESSAGE("Debut de InitValEdit");
-      LECaseName->setText(_aCaseName);
-      LECaseName->setReadOnly(true);
-
-      QString aDirName = aCase->GetDirName();
-      LEDirName->setText(aDirName);
-      LEDirName->setReadOnly(true);
-      PushDir->setVisible(0);
-
-      QString _aitername=aCase->GetIter0Name();
-      HOMARD::HOMARD_Iteration_var aIter = _myHomardGen->GetIteration(_aitername.toStdString().c_str());
-      QString aFileName = aIter->GetMeshFile();
-      LEFileName->setText(aFileName);
-      LEFileName->setReadOnly(true);
-      PushFichier->setVisible(0);
-
-      int ConfType=aCase->GetConfType();
-      if(ConfType==1)
+  MESSAGE("InitValEdit");
+  LECaseName->setText(_aCaseName);
+  LECaseName->setReadOnly(true);
+
+  QString aDirName = aCase->GetDirName();
+  LEDirName->setText(aDirName);
+  LEDirName->setReadOnly(true);
+  PushDir->setVisible(0);
+
+  QString _aitername=aCase->GetIter0Name();
+  HOMARD::HOMARD_Iteration_var aIter = _myHomardGen->GetIteration(_aitername.toStdString().c_str());
+  QString aFileName = aIter->GetMeshFile();
+  LEFileName->setText(aFileName);
+  LEFileName->setReadOnly(true);
+  PushFichier->setVisible(0);
+
+  int ConfType=aCase->GetConfType();
+  if(ConfType==1)
+  {
+      GBTypeNoConf->setVisible(0);
+      RBConforme->setChecked(true);
+  }
+  else
+  {
+    RBNonConforme->setChecked(true);
+    GBTypeNoConf->setVisible(1);
+    RB1NpM->setEnabled(false);
+    RB1NpA->setEnabled(false);
+    RBQuelconque->setEnabled(false);
+  };
+
+  if (_ConfType==2) { RB1NpM->setChecked(true);};
+  if (_ConfType==3) { RB1NpA->setChecked(true);};
+  if (_ConfType==4) { RBQuelconque->setChecked(true);};
+
+  RBNonConforme->setEnabled(false);
+  RBConforme->setEnabled(false);
+
+//    Non affichage du mode de suivi de frontiere
+  CBBoundaryA->setVisible(0);
+  GBBoundaryA->setVisible(0);
+  CBBoundaryD->setVisible(0);
+  GBBoundaryD->setVisible(0);
+
+//    On passe en revue tous les couples (frontiere,groupe) du cas
+  HOMARD::ListBoundaryGroupType_var mesBoundarys = aCase->GetBoundaryGroup();
+  if (mesBoundarys->length()>0)
+  {
+    QStringList ListeFron ;
+    QString NomFron ;
+    bool BounDi = false ;
+    bool BounAn = false ;
+    for (int i=0; i<mesBoundarys->length(); i++)
+    {
+//        Nom de la frontiere
+      NomFron = mesBoundarys[i++];
+      MESSAGE("NomFron "<<NomFron.toStdString().c_str());
+//        L'objet associe pour en deduire le type
+      HOMARD::HOMARD_Boundary_var myBoundary = _myHomardGen->GetBoundary(NomFron.toStdString().c_str());
+      int type_obj = myBoundary->GetBoundaryType() ;
+//        C'est une frontiere discrete
+//        Rermarque : on ne gere pas les groupes
+      if ( type_obj==0 )
       {
-         GBTypeNoConf->setVisible(0);
-         RBConforme->setChecked(true);
+        BounDi = true ;
+        CBBoundaryDi->addItem(NomFron);
       }
+//        C'est une frontiere analytique
       else
       {
-        RBNonConforme->setChecked(true);
-        GBTypeNoConf->setVisible(1);
-        RB1NpM->setEnabled(false);
-        RB1NpA->setEnabled(false);
-        RBQuelconque->setEnabled(false);
-      };
-
-      if (_ConfType==2) { RB1NpM->setChecked(true);};
-      if (_ConfType==3) { RB1NpA->setChecked(true);};
-      if (_ConfType==4) { RBQuelconque->setChecked(true);};
-
-      RBNonConforme->setEnabled(false);
-      RBConforme->setEnabled(false);
-
-//    Affichage du mode de suivi de frontiere
-      CBBoundaryA->setVisible(0);
-      GBBoundaryA->setVisible(0);
-      CBBoundaryD->setVisible(0);
-      GBBoundaryD->setVisible(0);
-
-      HOMARD::ListBoundaryGroupType_var mesBoundarys = aCase->GetBoundaryGroup();
-      if (mesBoundarys->length()>0)
-      {
-        bool BounDi = false ;
-        bool BounAn = false ;
-        for (int i=0; i<mesBoundarys->length(); i++)
+        BounAn = true ;
+        int nbcol = TWBoundary->columnCount();
+//          On ajoute une ligne pour le groupe
+        TWBoundary->insertRow(0);
+//          La colonne 0 comporte le nom du groupe
+        TWBoundary->setItem( 0, 0, new QTableWidgetItem(QString(mesBoundarys[i]).trimmed()));
+//             TWBoundary->item( 0, 0 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+//          Chacune des colonnes suivantes est associé a une frontiere deja presente : on y met une
+//          case non cochee
+        for ( int j = 1; j < nbcol; j++ )
         {
-          HOMARD::HOMARD_Boundary_var myBoundary = _myHomardGen->GetBoundary((mesBoundarys)[i]);
-          int type_obj = myBoundary->GetBoundaryType() ;
-
-          if ( type_obj==0 ) 
-          { CBBoundaryDi->addItem(QString((mesBoundarys)[i++]));
-            BounDi = true ;
-          }
-          else
-          {
-            i++ ;
-            BounAn = true ;
-          };
+          TWBoundary->setItem( 0, j, new QTableWidgetItem( QString ("") ) );
+          TWBoundary->item( 0, j )->setFlags( 0 );
+          TWBoundary->item( 0, j )->setFlags( Qt::ItemIsUserCheckable  );
+          TWBoundary->item( 0, j )->setCheckState( Qt::Unchecked );
         }
-        MESSAGE("BounDi "<<BounDi<<", BounAn "<<BounAn);
-        if ( BounAn )
-        { GBBoundaryA->setVisible(1);
-          GBBoundaryA->setDisabled(true);}
-        if ( BounDi )
-        { GBBoundaryD->setVisible(1);
-          CBBoundaryDi->setDisabled(true);
-          PBBoundaryDiNew->setVisible(0);}
+//          On cherche si la frontiere en cours d'examen a deja ete rencontree :
+//          si oui, on stocke son numero de colonne
+        int ok = -1 ;
+        for ( int nufr = 0 ; nufr<ListeFron.size(); nufr++)
+        { if ( ListeFron[nufr] == NomFron ) ok = nufr+1 ; }
+//            si non, on ajoute une colonne
+        if ( ok < 0 )
+        {
+          ListeFron.append(NomFron);
+          ok = ListeFron.size() ;
+          addBoundaryAn(NomFron);
+        }
+//          on coche la case correspondant au couple (frontiere,groupe) en cours d'examen
+        TWBoundary->item( 0, ok )->setCheckState( Qt::Checked );
       }
+    }
+    MESSAGE("BounDi "<<BounDi<<", BounAn "<<BounAn);
+    if ( BounAn )
+    { GBBoundaryA->setVisible(1);
+//    On rend les cases non modifiables.
+//    On ne peut pas le faire pour tout le tableau sinon on perd l'ascenseur !
+      int nbcol = TWBoundary->columnCount();
+      int nbrow = TWBoundary->rowCount();
+      for ( int i = 0; i < nbrow; i++ )
+      { for ( int j = 0; j < nbcol; j++ ) TWBoundary->item( i, j )->setFlags( Qt::ItemIsSelectable ); }
+//    on met un nom blanc au coin
+      QTableWidgetItem *__colItem = new QTableWidgetItem();
+      __colItem->setText(QApplication::translate("CreateCase", "", 0, QApplication::UnicodeUTF8));
+      TWBoundary->setHorizontalHeaderItem(0, __colItem);
+//    on cache les boutons inutiles
+      PBBoundaryAnNew->setVisible(0);
+      PBBoundaryAnHelp->setVisible(0);
+    }
+    if ( BounDi )
+    { GBBoundaryD->setVisible(1);
+      CBBoundaryDi->setDisabled(true);
+      PBBoundaryDiNew->setVisible(0);
+      PBBoundaryDiHelp->setVisible(0); }
+  }
+//
+// Les options avancees (non modifiables)
+  CBAdvanced->setVisible(0) ;
+  CBAdvanced->setEnabled(false) ;
+  int Pyram = aCase->GetPyram();
+  MESSAGE("Pyram "<<Pyram);
+  if ( Pyram > 0 )
+  { GBAdvancedOptions->setVisible(1);
+    CBPyramid->setChecked(true);
+    CBPyramid->setEnabled(false);
+  }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    CBPyramid->setChecked(false);
+ }
+//
+  adjustSize();
 }
 
 // -------------------------------------
@@ -117,5 +203,4 @@ bool MonEditCase::PushOnApply()
 // -------------------------------------
 {
   return true ;
-
 };
index f4e91c4b727fd9275cc46c9ffddaee97d6ee6a4f..60fcd2887ae7abe727d01318cf5e574062cb06d2 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITCASE_H
 #define MON_EDITCASE_H
 
index c73730c368587cf269894e45e80b1d7c14959c30..d399466fb805af1ae3d72a3a9c82a66dd5062463 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditFile.h"
@@ -15,12 +34,12 @@ using namespace std;
  * MonEditFile classe derivee de EditFile
  *               elle meme generee par uic
  * Ouvre le fichier passe en parametre
- * et affiche le texte correspondant dans la fenêtre de log
+ * et affiche le texte correspondant dans la fenetre de log
  * ---------------------------------------------------------
  */
 
 /* ---------------------------------------------------------
- * MonEditFile Constructeur 
+ * MonEditFile Constructeur
  * ---------------------------------------------------------
  */
 MonEditFile::MonEditFile( QWidget* parent,  bool modal,
@@ -48,7 +67,6 @@ void MonEditFile::InitConnect()
 {
     connect( buttonQuit,     SIGNAL(pressed()), this, SLOT(close()));
     connect( buttonPrint,    SIGNAL(pressed()), this, SLOT(PushOnPrint()));
-    connect( buttonHelp,     SIGNAL(pressed()), this, SLOT(PushOnHelp()));
 }
 // ------------------------------------------------------------------------
 void MonEditFile::EditText()
@@ -84,16 +102,9 @@ void MonEditFile::PushOnPrint()
 // ------------------------------------------------------------------------
 {
   MESSAGE("Debut de MonEditFile::PushOnPrint")
-  QMessageBox::information( 0, "Error",
-                            "Inactive button.",
-                            QMessageBox::Ok + QMessageBox::Default );
+  QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
+                            QObject::tr("HOM_INACTIVE_BUTTON") );
   return;
 }
-// ------------------------------------------------------------------------
-void MonEditFile::PushOnHelp()
-// ------------------------------------------------------------------------
-{
-  HOMARD_UTILS::PushOnHelp(QString("gui_usage.html"));
-}
 
 
index 22def7ac6739ad4082fa991e3fb34cf9d95a111b..d6e36501a3ef8f6131952fce36532d6f26a4b8d3 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITFILE_H
 #define MON_EDITFILE_H
 
@@ -36,7 +55,6 @@ protected :
 
 public slots:
     virtual void PushOnPrint();
-    virtual void PushOnHelp();
 
 };
 
index f1667f6fc1f73adfd5ce14785ac93acdfa82c025..38a9d024931e0154629f0b71afc79f425c28d904 100644 (file)
@@ -1,29 +1,44 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditHypothesis.h"
 #include "MonEditListGroup.h"
 
-#include <QMessageBox>
-
 #include "SalomeApp_Tools.h"
 #include "HOMARDGUI_Utils.h"
 #include "HomardQtCommun.h"
 #include <utilities.h>
-
-
-// -------------------------------------------------------------------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 MonEditHypothesis::MonEditHypothesis( MonCreateIteration* parent, bool modal,
                                       HOMARD::HOMARD_Gen_var myHomardGen,
                                       QString aHypothesisName,
                                       QString caseName,  QString aFieldFile ):
-// -------------------------------------------------------------------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 /* Constructs a MonEditHypothesis
     herite de MonCreateHypothesis
 */
     MonCreateHypothesis(parent, modal,myHomardGen, aHypothesisName, caseName, aFieldFile)
 {
     MESSAGE("Hypothese " << aHypothesisName.toStdString().c_str());
-    setWindowTitle("Edit Hypothesis");
+    setWindowTitle(QObject::tr("HOM_HYPO_EDIT_WINDOW_TITLE"));
     _aHypothesis    = _myHomardGen->GetHypothesis(_aHypothesisName.toStdString().c_str());
     if (caseName == QString("") ){ _aCaseName = _aHypothesis->GetCaseCreation();}
     InitValEdit();
@@ -49,39 +64,75 @@ void MonEditHypothesis::InitGroupes()
 void MonEditHypothesis::InitValEdit()
 // ------------------------------
 {
-      MESSAGE("Debut de InitValEdit");
-      LEHypothesisName->setText(_aHypothesisName);
-      LEHypothesisName->setReadOnly(true);
-      HOMARD::listeTypes_var ListTypes (_aHypothesis->GetAdapRefinUnRef());
-      ASSERT( ListTypes->length()==3) ;
-      _aTypeAdap = ListTypes[0];
-      _aTypeRaff = ListTypes[1];
-      _aTypeDera = ListTypes[2];
+  MESSAGE("Debut de InitValEdit");
+  LEHypothesisName->setText(_aHypothesisName);
+  LEHypothesisName->setReadOnly(true);
+  HOMARD::listeTypes_var ListTypes (_aHypothesis->GetAdapRefinUnRef());
+  ASSERT( ListTypes->length()==3) ;
+  _aTypeAdap = ListTypes[0];
+  _aTypeRaff = ListTypes[1];
+  _aTypeDera = ListTypes[2];
 
-      if (_aTypeAdap == -1) InitAdaptUniforme();
-      if (_aTypeAdap ==  0) InitAdaptZone();
-      if (_aTypeAdap ==  1) InitAdaptChamps();
+  if (_aTypeAdap == -1) InitAdaptUniforme();
+  if (_aTypeAdap ==  0) InitAdaptZone();
+  if (_aTypeAdap ==  1) InitAdaptChamps();
 
-      RBUniDera->setDisabled(true);
-      RBUniRaff->setDisabled(true);
+  RBUniDera->setDisabled(true);
+  RBUniRaff->setDisabled(true);
 
-      InitFieldInterp();
+  InitFieldInterp();
 
-      if (_aTypeAdap == 1 or _TypeFieldInterp >= 1 )
-      {
-        if (_aFieldFile == QString("")) { GBFieldFile->setVisible(0); }
-        else
-        {
-          GBFieldFile->setVisible(1);
-          LEFieldFile->setText(_aFieldFile);
-          LEFieldFile->setReadOnly(1);
-        }
-      }
+  if (_aTypeAdap == 1 or _TypeFieldInterp >= 1 )
+  {
+    if (_aFieldFile == QString("")) { GBFieldFile->setVisible(0); }
+    else
+    {
+      GBFieldFile->setVisible(1);
+      LEFieldFile->setText(_aFieldFile);
+      LEFieldFile->setReadOnly(1);
+    }
+  }
+  else
+  {
+    GBFieldFile->setVisible(0);
+  }
+// Les options avancees (non modifiables)
+  CBAdvanced->setVisible(0) ;
+  int NivMax = _aHypothesis->GetNivMax();
+  double DiamMin = _aHypothesis->GetDiamMin();
+  int AdapInit = _aHypothesis->GetAdapInit();
+  if ( NivMax > 0 or DiamMin > 0 or AdapInit != 0 )
+  { GBAdvancedOptions->setVisible(1);
+    if ( NivMax > 0 )
+    { spinBoxNivMax->setValue(NivMax);
+      spinBoxNivMax->setDisabled(true); }
+    else
+    { TLMaximalLevel->setVisible(0);
+      spinBoxNivMax->setVisible(0); }
+    if ( DiamMin > 0 )
+    { doubleSpinBoxDiamMin->setValue(DiamMin);
+      doubleSpinBoxDiamMin->setDisabled(true); }
+    else
+    { TLMinimalDiameter->setVisible(0);
+      doubleSpinBoxDiamMin->setVisible(0); }
+    if ( AdapInit != 0 )
+    {
+      if ( AdapInit > 0 )
+      { RBAIR->setChecked(true); }
       else
-      {
-        GBFieldFile->setVisible(0);
-      }
-      adjustSize();
+      { RBAID->setChecked(true); }
+      RBAIN->setEnabled(false);
+      RBAIR->setEnabled(false);
+      RBAID->setEnabled(false);
+    }
+    else
+    { GBAdapInit->setVisible(0) ;
+    }
+  }
+  else
+  { GBAdvancedOptions->setVisible(0); }
+//
+  adjustSize();
 }
 // ----------------------------------------
 void MonEditHypothesis::InitAdaptUniforme()
@@ -118,8 +169,7 @@ void MonEditHypothesis::InitAdaptZone()
 // -------------------------------------
 // Affichage des informations pour une adaptation selon des zones :
 {
-// . Liste des zones
-
+    MESSAGE ("Debut de InitAdaptZone");
 //  Choix des options generales
     GBUniform->setVisible(0);
     GBFieldManagement->setVisible(0);
@@ -135,25 +185,38 @@ void MonEditHypothesis::InitAdaptZone()
     HOMARD::listeZonesHypo_var mesZonesAvant = _aHypothesis->GetZones();
     for (int i=0; i<mesZonesAvant->length(); i++)
     {
-        for ( int j =0 ; j < TWZone->rowCount(); j++)
+    MESSAGE ("i"<<i<<", zone :"<<string(mesZonesAvant[i])<<", type :"<<string(mesZonesAvant[i+1]));
+      for ( int j =0 ; j < TWZone->rowCount(); j++)
+      {
+    MESSAGE (". j"<<j<<", zone :"<<TWZone->item(j,2)->text().toStdString());
+        if ( TWZone->item(j,2)->text().toStdString() == string(mesZonesAvant[i]) )
         {
-            if (TWZone->item(j,1)->text().toStdString() == string(mesZonesAvant[i]))
-            {
-               TWZone->item( j,0 )->setCheckState( Qt::Checked );
-               break;
-            }
+    MESSAGE ("OK avec "<<string(mesZonesAvant[i]));
+          if ( string(mesZonesAvant[i+1]) == "1" )
+          {
+    MESSAGE ("... RAFF");
+            TWZone->item( j,0 )->setCheckState( Qt::Checked );
+            TWZone->item( j,1 )->setCheckState( Qt::Unchecked ); }
+          else
+          {
+    MESSAGE ("... DERA");
+            TWZone->item( j,0 )->setCheckState( Qt::Unchecked );
+            TWZone->item( j,1 )->setCheckState( Qt::Checked ); }
+          break;
         }
+      }
+      i += 1 ;
     }
 //
 //  Inactivation des choix
     for ( int j =0 ; j < TWZone->rowCount(); j++)
     {
-        TWZone->item( j, 0 )->setFlags(0);
+      TWZone->item( j, 0 )->setFlags(0);
+      TWZone->item( j, 1 )->setFlags(0);
     }
     PBZoneNew->setVisible(0);
 //
 }
-
 // -------------------------------------
 void MonEditHypothesis::InitAdaptChamps()
 // -------------------------------------
@@ -182,6 +245,7 @@ void MonEditHypothesis::InitAdaptChamps()
     _ThreshR = aInfosHypo->ThreshR;
     _TypeThC = aInfosHypo->TypeThC;
     _ThreshC = aInfosHypo->ThreshC;
+    _UsField = aInfosHypo->UsField;
     _UsCmpI  = aInfosHypo->UsCmpI;
 
 
@@ -201,7 +265,7 @@ void MonEditHypothesis::InitAdaptChamps()
        TWCMP->item( 0, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
        TWCMP->item( 0, 0 )->setCheckState(Qt::Checked );
        TWCMP->item( 0, 0 )->setFlags( 0 );
-       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString(mesComposantsAvant[i])));
+       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString(mesComposantsAvant[i]).trimmed()));
        TWCMP->item( 0, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
     }
     TWCMP->resizeColumnsToContents();
@@ -243,12 +307,18 @@ void MonEditHypothesis::InitAdaptChamps()
   }
   // Le choix de la prise en compte des composantes
   if ( TWCMP->rowCount() == 1 )
-  { RBL2->setText(QString("Absolute value"));
-    RBInf->setText(QString("Relative value"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_ABS"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_REL"));
+  }
+  else
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_L2"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_INF"));
   }
+  if ( _UsField == 0 ) { CBJump->hide(); }
   else
-  { RBL2->setText(QString("L2 norm"));
-    RBInf->setText(QString("Infinite Norm"));
+  {
+    CBJump->setChecked(true);
+    CBJump->setEnabled(false);
   }
   if ( _UsCmpI == 0 )
   {
@@ -302,7 +372,7 @@ void MonEditHypothesis::InitFieldInterp()
         TWField->item( 0, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
         TWField->item( 0, 0 )->setCheckState(Qt::Checked );
         TWField->item( 0, 0 )->setFlags( 0 );
-        TWField->setItem( 0, 1, new QTableWidgetItem(QString(mesChampsAvant[i])));
+        TWField->setItem( 0, 1, new QTableWidgetItem(QString(mesChampsAvant[i]).trimmed()));
         TWField->item( 0, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
       }
       TWField->resizeColumnsToContents();
index c41842401b532a74584ebfb2f6d28ee2046439d8..ef9c11b30b34986b58c984b4a8882b69a2df5447 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITHYPOTHESIS_H
 #define MON_EDITHYPOTHESIS_H
 
index 4363da12d7990af5a7bafc0447cc583108ef23d5..a6368637a7a6db6b98091531a12c2a330a5193e6 100644 (file)
@@ -1,9 +1,26 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditIteration.h"
 
-#include <QMessageBox>
-
 #include "SalomeApp_Tools.h"
 #include "HOMARDGUI_Utils.h"
 #include "HomardQtCommun.h"
@@ -22,7 +39,7 @@ MonEditIteration::MonEditIteration ( QWidget* parent, bool modal,
    _rank(0), _step(0), _IterationName(""), _FieldFile(""),_aTypeAdap()
 {
     MESSAGE("Debut de  MonEditIteration" << IterName.toStdString().c_str());
-    setWindowTitle("Edit iteration");
+    setWindowTitle(QObject::tr("HOM_ITER_EDIT_WINDOW_TITLE"));
     _IterationName = IterName;
     aIter = _myHomardGen->GetIteration(_IterationName.toStdString().c_str());
 
@@ -53,12 +70,12 @@ void MonEditIteration::InitValEdit0()
 
 //    Affichage bloque du nom du maillage de l'iteration courante
       QString MeshName = aIter->GetMeshName();
-      Mesh_n->setText(QString("Mesh name"));
+      Mesh_n->setText(QObject::tr("HOM_ITER_STARTING_POINT_0"));
       LEMeshName_n->setText(MeshName);
       LEMeshName_n->setReadOnly(1);
 
 //    Message general
-      Mesh_np1->setText(QString("First iteration of the case."));
+      Mesh_np1->setText(QObject::tr("HOM_ITER_STARTING_POINT_1"));
       LEMeshName_np1->setVisible(0);
 //
 //    Invisibilite des hypotheses et des champs
@@ -150,7 +167,7 @@ bool MonEditIteration::PushOnApply()
   if ( _aTypeAdap ==  1)
   {
 // Pour du raffinement selon un champ, les instants ont-ils change ?
-    if ( (_FieldFile != LEFieldFile->text().trimmed()) or 
+    if ( (_FieldFile != LEFieldFile->text().trimmed()) or
        (  _rank != SpinBox_Rank->value())  or
        (  _step != SpinBox_TimeStep->value()))
     {
index e1da4039fafa791979a1d9d07aac9ba472d3deaa..f224fa840c09b854a46c64ad2cf29d69a2505f9b 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITITERATION_H
 #define MON_EDITITERATION_H
 
index 40ee236b4c5653d67e682f98056a2f07c747cbe5..691c0aa5a557254eaf7fde50920ba6831ddd325e 100644 (file)
@@ -1,20 +1,39 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditListGroup.h"
 #include <utilities.h>
 
 //---------------------------------------------------------------------
-MonEditListGroup::MonEditListGroup( MonCreateHypothesis* parentHyp, 
-                                    MonCreateBoundaryDi* parentBound, 
-                                    bool modal, 
-                                    HOMARD::HOMARD_Gen_var myHomardGen, 
-                                    QString aCaseName,  
+MonEditListGroup::MonEditListGroup( MonCreateHypothesis* parentHyp,
+                                    MonCreateBoundaryDi* parentBound,
+                                    bool modal,
+                                    HOMARD::HOMARD_Gen_var myHomardGen,
+                                    QString aCaseName,
                                     QStringList listeGroupesHypo):
 //---------------------------------------------------------------------
 MonCreateListGroup(parentHyp,parentBound,myHomardGen,aCaseName,listeGroupesHypo)
 {
   MESSAGE("Debut de MonEditListGroup");
-  setWindowTitle("Edit ListGroup");
+    setWindowTitle(QObject::tr("HOM_GROU_EDIT_WINDOW_TITLE"));
   setModal(true);
   InitGroupes();
 }
index f372ed1f5c71cbc82ac01c32baf5d01412fec21a..526169759cd88fa27a4111ff7171824150e801c0 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITLISTGROUP_H
 #define MON_EDITLISTGROUP_H
 
index afebbfbb82ec7c60a7bb0a93ce145a1e3d5d4760..6febcd143829dc815b78cc7d531589cca50f024e 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 using namespace std;
 
 #include "MonEditZone.h"
@@ -5,6 +24,11 @@ using namespace std;
 #include "SalomeApp_Tools.h"
 #include "HOMARDGUI_Utils.h"
 #include <utilities.h>
+#include <SUIT_Desktop.h>
+#include <SUIT_MessageBox.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
+#include <SUIT_ViewManager.h>
 
 
 // ------------------------------------------------------------------------
@@ -18,7 +42,7 @@ MonEditZone::MonEditZone( MonCreateHypothesis* parent, bool modal,
     MonCreateZone(parent, myHomardGen, caseName)
 {
     MESSAGE("Debut de MonEditZone pour " << zoneName.toStdString().c_str());
-    setWindowTitle("Edit Zone");
+    setWindowTitle(QObject::tr("HOM_ZONE_EDIT_WINDOW_TITLE"));
     _aZoneName=zoneName;
     aZone = _myHomardGen->GetZone(_aZoneName.toStdString().c_str());
     InitValEdit();
@@ -33,93 +57,175 @@ MonEditZone::~MonEditZone()
 void MonEditZone::InitValEdit()
 // ------------------------------------------------------------------------
 {
-    LEZoneName->setText(_aZoneName);
-    LEZoneName->setReadOnly(true);
-    _ZoneType = aZone->GetZoneType();
-    InitValZoneLimit();
-    if (_aCaseName != QString("")) InitValZone();
-    switch (_ZoneType)
+  MESSAGE("InitValEdit ");
+  LEZoneName->setText(_aZoneName);
+  LEZoneName->setReadOnly(true);
+  _ZoneType = aZone->GetZoneType();
+  MESSAGE("InitValEdit _ZoneType ="<<_ZoneType);
+  InitValZoneLimit();
+  if (_aCaseName != QString("")) InitValZone();
+  switch (_ZoneType)
+  {
+    case 11 : // il s agit d un rectangle
+    { }
+    case 12 : // il s agit d un rectangle
+    { }
+    case 13 : // il s agit d un rectangle
+    { }
+    case 2 : // il s agit d une boite
     {
-      case 2 : // il s agit d une boite
-      {
-        InitValZoneBox();
-        SetBox();
-        break;
-      }
-      case 4 : // il s agit d une sphere
-      {
-        InitValZoneSphere();
-        SetSphere();
-        break;
-      }
-    };
+      InitValZoneBox();
+      SetBox();
+      break;
+    }
+    case 4 : // il s agit d une sphere
+    {
+      InitValZoneSphere();
+      SetSphere();
+      break;
+    }
+    case 31 : // il s agit d un cercle issu d'un cylindre
+    { }
+    case 32 : // il s agit d un cercle issu d'un cylindre
+    { }
+    case 33 : // il s agit d un cercle issu d'un cylindre
+    { }
+    case 5 : // il s agit d un cylindre
+    {
+      InitValZoneCylinder();
+      SetCylinder();
+      break;
+    }
+    case 61 : // il s agit d un disque avec trou issu d'un tuyau
+    { }
+    case 62 : // il s agit d un disque avec trou issu d'un tuyau
+    { }
+    case 63 : // il s agit d un disque avec trou issu d'un tuyau
+    { }
+    case 7 : // il s agit d un tuyau
+    {
+      InitValZonePipe();
+      SetPipe();
+      break;
+    }
+  };
 }
 // ------------------------------------------------------------------------
 void MonEditZone::InitValZoneLimit()
 // ------------------------------------------------------------------------
 {
-      HOMARD::double_array_var  mesCoordLimits = aZone->GetLimit();
-      ASSERT(mesCoordLimits->length() == 3 );
-      _Xincr=mesCoordLimits[0];
-      _Yincr=mesCoordLimits[1];
-      _Zincr=mesCoordLimits[2];
-
+  HOMARD::double_array_var  mesCoordLimits = aZone->GetLimit();
+  ASSERT(mesCoordLimits->length() == 3 );
+  _Xincr=mesCoordLimits[0];
+  _Yincr=mesCoordLimits[1];
+  _Zincr=mesCoordLimits[2];
 }
 // ------------------------------------------------------------------------
 void MonEditZone::InitValZoneBox()
 // ------------------------------------------------------------------------
 {
-      HOMARD::double_array_var  mesCoordZones = aZone->GetBox();
-      ASSERT(mesCoordZones->length() == 6 );
-      _ZoneXmin=mesCoordZones[0]; _ZoneXmax=mesCoordZones[1];
-      _ZoneYmin=mesCoordZones[2]; _ZoneYmax=mesCoordZones[3];
-      _ZoneZmin=mesCoordZones[4]; _ZoneZmax=mesCoordZones[5];
-
+  HOMARD::double_array_var  mesCoordZones = aZone->GetCoords();
+  ASSERT(mesCoordZones->length() == 6 );
+  _ZoneXmin=mesCoordZones[0];
+  _ZoneXmax=mesCoordZones[1];
+  _ZoneYmin=mesCoordZones[2];
+  _ZoneYmax=mesCoordZones[3];
+  _ZoneZmin=mesCoordZones[4];
+  _ZoneZmax=mesCoordZones[5];
 }
 // ------------------------------------------------------------------------
 void MonEditZone::InitValZoneSphere()
 // ------------------------------------------------------------------------
 {
-      HOMARD::double_array_var  mesCoordZones = aZone->GetSphere();
-      ASSERT(mesCoordZones->length() == 4 );
-      _ZoneXcentre=mesCoordZones[0];
-      _ZoneYcentre=mesCoordZones[1];
-      _ZoneZcentre=mesCoordZones[2];
-      _ZoneRayon=mesCoordZones[3];
+  HOMARD::double_array_var  mesCoordZones = aZone->GetCoords();
+  ASSERT(mesCoordZones->length() == 4 );
+  _ZoneXcentre=mesCoordZones[0];
+  _ZoneYcentre=mesCoordZones[1];
+  _ZoneZcentre=mesCoordZones[2];
+  _ZoneRayon=mesCoordZones[3];
 
 }
 // ------------------------------------------------------------------------
+void MonEditZone::InitValZoneCylinder()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordZones = aZone->GetCoords();
+  ASSERT(mesCoordZones->length() == 8 );
+  _ZoneXcentre=mesCoordZones[0];
+  _ZoneYcentre=mesCoordZones[1];
+  _ZoneZcentre=mesCoordZones[2];
+  _ZoneXaxis=mesCoordZones[3];
+  _ZoneYaxis=mesCoordZones[4];
+  _ZoneZaxis=mesCoordZones[5];
+  _ZoneRayon=mesCoordZones[6];
+  _ZoneHaut=mesCoordZones[7];
+}
+// ------------------------------------------------------------------------
+void MonEditZone::InitValZonePipe()
+// ------------------------------------------------------------------------
+{
+  HOMARD::double_array_var  mesCoordZones = aZone->GetCoords();
+  ASSERT(mesCoordZones->length() == 9 );
+  _ZoneXcentre=mesCoordZones[0];
+  _ZoneYcentre=mesCoordZones[1];
+  _ZoneZcentre=mesCoordZones[2];
+  _ZoneXaxis=mesCoordZones[3];
+  _ZoneYaxis=mesCoordZones[4];
+  _ZoneZaxis=mesCoordZones[5];
+  _ZoneRayon=mesCoordZones[6];
+  _ZoneHaut=mesCoordZones[7];
+  _ZoneRayonInt=mesCoordZones[8];
+}
+// ------------------------------------------------------------------------
 void MonEditZone::SetBox()
 // ------------------------------------------------------------------------
 {
+  MESSAGE("SetBox ");
   gBBox->setVisible(1);
   gBSphere->setVisible(0);
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(0) ;
   RBBox->setChecked(1);
   adjustSize();
-  _ZoneType=2;
-  RBSphere->setDisabled(true);
+  RBCylinder->setDisabled(true);
+  RBPipe->setDisabled(true);
+  if ( _ZoneType == 2 ) { RBSphere->setDisabled(true); }
+  else                  { RBSphere->setVisible(0);
+                          RBPipe->setText(QApplication::translate("CreateZone", "Disk with hole", 0, QApplication::UnicodeUTF8));
+                          RBCylinder->setText(QApplication::translate("CreateZone", "Disk", 0, QApplication::UnicodeUTF8));
+                          SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr() ;
+                          QPixmap pix = resMgr->loadPixmap( "HOMARD", "boxdxy.png" ) ;
+                          QIcon IS=QIcon(pix) ;
+                          RBBox->setIcon(IS) ; }
   adjustSize();
 
   SpinBox_Xmini->setValue(_ZoneXmin);
   SpinBox_Xmaxi->setValue(_ZoneXmax);
 
-  int incr=1;
-  if ( _Xincr > 0 ) { incr=_Xincr;};
+  double incr ;
+  if ( _Xincr > 0 ) {incr=_Xincr;} else{incr=1.;}
   SpinBox_Xmini->setSingleStep(incr);
   SpinBox_Xmaxi->setSingleStep(incr);
 
   SpinBox_Ymini->setValue(_ZoneYmin);
   SpinBox_Ymaxi->setValue(_ZoneYmax);
-  if ( _Yincr > 0 ) {incr=_Yincr;} else{incr=1;}
+  if ( _Yincr > 0 ) {incr=_Yincr;} else{incr=1.;}
   SpinBox_Ymini->setSingleStep(incr);
   SpinBox_Ymaxi->setSingleStep(incr);
 
   SpinBox_Zmini->setValue(_ZoneZmin);
   SpinBox_Zmaxi->setValue(_ZoneZmax);
-  if ( _Zincr > 0 ) {incr=_Zincr;} else{incr=1;}
+  if ( _Zincr > 0 ) {incr=_Zincr;} else{incr=1.;}
   SpinBox_Zmini->setSingleStep(incr);
   SpinBox_Zmaxi->setSingleStep(incr);
 
+  if ( _ZoneType == 12 ) { SpinBox_Xmini->setDisabled(true) ;
+                           SpinBox_Xmaxi->setDisabled(true) ; }
+  else if ( _ZoneType == 13 ) { SpinBox_Ymini->setDisabled(true) ;
+                                SpinBox_Ymaxi->setDisabled(true) ; }
+  else if ( _ZoneType == 11 ) { SpinBox_Zmini->setDisabled(true) ;
+                                SpinBox_Zmaxi->setDisabled(true) ; }
+
 }
 // ------------------------------------------------------------------------
 void MonEditZone::SetSphere()
@@ -127,10 +233,13 @@ void MonEditZone::SetSphere()
 {
   gBBox->setVisible(0);
   gBSphere->setVisible(1);
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(0) ;
   RBSphere->setChecked(1);
   RBBox->setDisabled(true);
+  RBCylinder->setDisabled(true);
+  RBPipe->setDisabled(true);
   adjustSize();
-  _ZoneType=4 ;
 
   SpinBox_Xcentre->setValue(_ZoneXcentre);
   if ( _Xincr > 0) { SpinBox_Xcentre->setSingleStep(_Xincr); }
@@ -147,25 +256,180 @@ void MonEditZone::SetSphere()
   SpinBox_Rayon->setMinimum(0.);
   SpinBox_Rayon->setValue(_ZoneRayon);
 }
+// ------------------------------------------------------------------------
+void MonEditZone::SetCylinder()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("SetCylinder _Xincr ="<<_Xincr<< " _Yincr ="<<_Yincr<< " _Zincr ="<<_Zincr);
+  gBBox->setVisible(0);
+  gBSphere->setVisible(0);
+  gBCylindre->setVisible(1) ;
+  gBPipe->setVisible(0) ;
+  RBCylinder->setChecked(1);
+  RBBox->setDisabled(true);
+  RBPipe->setDisabled(true);
+  if ( _ZoneType == 5 ) { RBSphere->setDisabled(true); }
+  else                  { RBSphere->setVisible(0);
+                          RBPipe->setText(QApplication::translate("CreateZone", "Disk with hole", 0, QApplication::UnicodeUTF8));
+                          RBCylinder->setText(QApplication::translate("CreateZone", "Disk", 0, QApplication::UnicodeUTF8));
+                          TLXbase->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+                          TLYbase->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+                          TLZbase->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
+                          SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr() ;
+                          QPixmap pix = resMgr->loadPixmap( "HOMARD", "disk.png" ) ;
+                          QIcon IS=QIcon(pix) ;
+                          RBCylinder->setIcon(IS) ; }
+  adjustSize();
+
+  SpinBox_Xbase->setValue(_ZoneXcentre);
+  if ( _Xincr > 0) { SpinBox_Xbase->setSingleStep(_Xincr); }
+  else             { SpinBox_Xbase->setSingleStep(1) ; }
+
+  SpinBox_Ybase->setValue(_ZoneYcentre);
+  if ( _Yincr > 0) { SpinBox_Ybase->setSingleStep(_Yincr); }
+  else             { SpinBox_Ybase->setSingleStep(1) ; }
+
+  SpinBox_Zbase->setValue(_ZoneZcentre);
+  if ( _Zincr > 0) { SpinBox_Zbase->setSingleStep(_Zincr); }
+  else             { SpinBox_Zbase->setSingleStep(1) ;}
+
+  SpinBox_Radius->setMinimum(0.);
+  SpinBox_Radius->setValue(_ZoneRayon);
+
+  if ( _ZoneType == 5 )
+  { SpinBox_Xaxis->setValue(_ZoneXaxis) ;
+    SpinBox_Yaxis->setValue(_ZoneYaxis) ;
+    SpinBox_Zaxis->setValue(_ZoneZaxis) ;
+    SpinBox_Haut->setValue(_ZoneHaut) ;
+  }
+  else
+  { SpinBox_Xaxis->setVisible(0) ;
+    SpinBox_Yaxis->setVisible(0) ;
+    SpinBox_Zaxis->setVisible(0) ;
+    SpinBox_Haut->setVisible(0) ;
+    TLXaxis->setVisible(0) ;
+    TLYaxis->setVisible(0) ;
+    TLZaxis->setVisible(0) ;
+    TLHaut->setVisible(0) ;
+    if ( _ZoneType == 32 ) { SpinBox_Xbase->setDisabled(true) ; }
+    else if ( _ZoneType == 33 ) { SpinBox_Ybase->setDisabled(true) ; }
+    else if ( _ZoneType == 31 ) { SpinBox_Zbase->setDisabled(true) ; }
+  }
+}
+// ------------------------------------------------------------------------
+void MonEditZone::SetPipe()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("SetPipe _Xincr ="<<_Xincr<< " _Yincr ="<<_Yincr<< " _Zincr ="<<_Zincr);
+  gBBox->setVisible(0);
+  gBSphere->setVisible(0);
+  gBCylindre->setVisible(0) ;
+  gBPipe->setVisible(1) ;
+  RBPipe->setChecked(1);
+  RBBox->setDisabled(true);
+  RBCylinder->setDisabled(true);
+  if ( _ZoneType == 7 ) { RBSphere->setDisabled(true); }
+  else                  { RBSphere->setVisible(0);
+                          RBPipe->setText(QApplication::translate("CreateZone", "Disk with hole", 0, QApplication::UnicodeUTF8));
+                          RBCylinder->setText(QApplication::translate("CreateZone", "Disk", 0, QApplication::UnicodeUTF8));
+                          TLXbase_p->setText(QApplication::translate("CreateZone", "X centre", 0, QApplication::UnicodeUTF8));
+                          TLYbase_p->setText(QApplication::translate("CreateZone", "Y centre", 0, QApplication::UnicodeUTF8));
+                          TLZbase_p->setText(QApplication::translate("CreateZone", "Z centre", 0, QApplication::UnicodeUTF8));
+                          SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr() ;
+                          QPixmap pix = resMgr->loadPixmap( "HOMARD", "diskwithhole.png" ) ;
+                          QIcon IS=QIcon(pix) ;
+                          RBPipe->setIcon(IS) ; }
+  adjustSize();
+
+  SpinBox_Xbase_p->setValue(_ZoneXcentre);
+  if ( _Xincr > 0) { SpinBox_Xbase_p->setSingleStep(_Xincr); }
+  else             { SpinBox_Xbase_p->setSingleStep(1) ; }
+
+  SpinBox_Ybase_p->setValue(_ZoneYcentre);
+  if ( _Yincr > 0) { SpinBox_Ybase_p->setSingleStep(_Yincr); }
+  else             { SpinBox_Ybase_p->setSingleStep(1) ; }
+
+  SpinBox_Zbase_p->setValue(_ZoneZcentre);
+  if ( _Zincr > 0) { SpinBox_Zbase_p->setSingleStep(_Zincr); }
+  else             { SpinBox_Zbase_p->setSingleStep(1) ;}
+
+  SpinBox_Radius_int->setMinimum(0.);
+  SpinBox_Radius_int->setValue(_ZoneRayonInt);
+  SpinBox_Radius_ext->setMinimum(0.);
+  SpinBox_Radius_ext->setValue(_ZoneRayon);
+
+  if ( _ZoneType == 7 )
+  { SpinBox_Xaxis_p->setValue(_ZoneXaxis) ;
+    SpinBox_Yaxis_p->setValue(_ZoneYaxis) ;
+    SpinBox_Zaxis_p->setValue(_ZoneZaxis) ;
+    SpinBox_Haut_p->setValue(_ZoneHaut) ;
+  }
+  else
+  { SpinBox_Xaxis_p->setVisible(0) ;
+    SpinBox_Yaxis_p->setVisible(0) ;
+    SpinBox_Zaxis_p->setVisible(0) ;
+    SpinBox_Haut_p->setVisible(0) ;
+    TLXaxis_p->setVisible(0) ;
+    TLYaxis_p->setVisible(0) ;
+    TLZaxis_p->setVisible(0) ;
+    TLHaut_p->setVisible(0) ;
+    if ( _ZoneType == 62 ) { SpinBox_Xbase_p->setDisabled(true) ; }
+    else if ( _ZoneType == 63 ) { SpinBox_Ybase_p->setDisabled(true) ; }
+    else if ( _ZoneType == 61 ) { SpinBox_Zbase_p->setDisabled(true) ; }
+  }
+}
 
 
 // ---------------------------------------------------
 bool MonEditZone::CreateOrUpdateZone()
 //----------------------------------------------------
 //  Pas de Creation de la zone
-//  Mise a jour des attributs de la Zone 
-
+//  Mise a jour des attributs de la Zone
 {
   try
   {
-    aZone->SetZoneType(_ZoneType);
-    aZone->SetBox(_ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax);
-    aZone->SetSphere(_ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon);
+    switch (_ZoneType)
+    {
+      case 11 : // il s agit d un rectangle
+      { }
+      case 12 : // il s agit d un rectangle
+      { }
+      case 13 : // il s agit d un rectangle
+      { }
+      case 2 : // il s agit d un parallelepipede
+      { aZone->SetBox( _ZoneXmin, _ZoneXmax, _ZoneYmin, _ZoneYmax, _ZoneZmin, _ZoneZmax );
+        break;
+      }
+      case 4 : // il s agit d une sphere
+      { aZone->SetSphere( _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneRayon );
+        break;
+      }
+      case 31 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 32 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 33 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 5 : // il s agit d un cylindre
+      { aZone->SetCylinder( _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut );
+        break;
+      }
+      case 61 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 62 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 63 : // il s agit d un disque issu d'un cylindre
+      { }
+      case 7 : // il s agit d un tuyau
+      { aZone->SetPipe( _ZoneXcentre, _ZoneYcentre, _ZoneZcentre, _ZoneXaxis, _ZoneYaxis, _ZoneZaxis, _ZoneRayon, _ZoneHaut, _ZoneRayonInt );
+        break;
+      }
+    }
     if (Chgt) _myHomardGen->InvalideZone(_aZoneName.toStdString().c_str());
     HOMARD_UTILS::updateObjBrowser();
   }
   catch( const SALOME::SALOME_Exception& S_ex ) {
-       SalomeApp_Tools::QtCatchCorbaException( S_ex ); 
+       SalomeApp_Tools::QtCatchCorbaException( S_ex );
        return false;
   }
   return true;
index 6406409a9b1c94de7d94347e5eaa5c8e40faf03b..8bc9f8c8d3b9375a52220230584188ebab36668a 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef MON_EDITZONE_H
 #define MON_EDITZONE_H
 
@@ -21,11 +40,15 @@ public:
 protected :
     void SetBox();
     void SetSphere();
+    void SetCylinder();
+    void SetPipe();
     bool CreateOrUpdateZone();
     void InitValEdit();
     void InitValZoneLimit();
     void InitValZoneBox();
     void InitValZoneSphere();
+    void InitValZoneCylinder();
+    void InitValZonePipe();
 
 public slots:
 
diff --git a/src/HOMARDGUI/MonHomardDlg.cxx b/src/HOMARDGUI/MonHomardDlg.cxx
deleted file mode 100644 (file)
index a79e137..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-#include "MonHomardDlg.h"
-#include "HomardConfigFile.hxx"
-#include "HomardQtCommun.h"
-
-#include<QMessageBox>
-
-#include <SalomeApp_Module.h>
-#include <SalomeApp_Application.h>
-#include <SalomeApp_Study.h>
-
-#include "HOMARDGUI_Utils.h"
-
-#include <string>
-#include "utilities.h"
-
-#define MIN_LISTBOX_WIDTH      150
-#define MIN_LISTBOX_HEIGHT     100
-
-int MonHomardDlg::RootInfo = 100;
-
-//--------------------------------------------------------------------------------------------------------------------
-MonHomardDlg::MonHomardDlg( QWidget * parent,  bool modal, HOMARD::HOMARD_Gen_ptr myHomardGen):
-      QWidget(0),
-      Ui_HomardDlg(),
-      bHisto(true),bBilan(true), bNomFichier(false), bNomMaillage(false),
-      _aFile(QString::null), _aMesh (QString::null)
-//--------------------------------------------------------------------------------------------------------------------
-{
-      setupUi(this);
-      setModal(true);
-      _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
-
-      _monCas      = new HomardConfigFile();
-      _monCas->initVal(string("Interpe3"),string("non"));
-      _monCas->initVal(string("Qualite5"),string("oui"));
-      _monCas->initVal(string("Nb_Enti7"),string("oui"));
-      _monCas->initVal(string("Connex11"),string("oui"));
-      _monCas->initVal(string("Taille13"),string("oui"));
-      _monCas->setBilan(true);
-      
-      initConnect();
-
-}
-
-//-----------------------------
-MonHomardDlg::~MonHomardDlg()
-//-----------------------------
-{
-    // no need to delete child widgets, Qt does it all for us
-}
-
-//-----------------------------
-void MonHomardDlg::initConnect()
-//-----------------------------
-{
-    connect( lancement, SIGNAL( pressed() ), this, SLOT( Lancement() ) );
-    connect( terminer, SIGNAL( pressed() ), this, SLOT( close() ) );
-    connect( ListeMeshName, SIGNAL( activated(int) ), this, SLOT( SetMaillage() ) );
-    connect( NomFichier, SIGNAL( returnPressed() ), this, SLOT( SetNomFichier() ) );
-    connect( PushFichier, SIGNAL( clicked() ), this, SLOT( PushNomFichier() ) );
-    connect( Connexite, SIGNAL( stateChanged(int) ), this, SLOT( SetConnexite() ) );
-    connect( Inter, SIGNAL( stateChanged(int) ), this, SLOT( SetInter() ) );
-    connect( NbEntites, SIGNAL( stateChanged(int) ), this, SLOT( SetNbEntites() ) );
-    connect( Histo, SIGNAL( stateChanged(int) ), this, SLOT( SetHisto() ) );
-    connect( Qualite, SIGNAL( stateChanged(int) ), this, SLOT( SetQualite() ) );
-    connect( Volumes, SIGNAL( stateChanged(int) ), this, SLOT( SetVolumes() ) );
-    connect( Bilan, SIGNAL( stateChanged(int) ), this, SLOT( SetBilans() ) );
-}
-
-//-----------------------------
-void MonHomardDlg::Lancement()
-//-----------------------------
-{
-  if( ( bNomFichier==false) || (bNomMaillage ==false))
-  {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString(" Selectionner un Fichier et un Maillage SVP "),
-        QMessageBox::Ok + QMessageBox::Default );
-       return;
-  }
-
-  bool ok;
-  ok=_monCas->initVal(string("ModeHOMA"),string("2"));
-  ok=_monCas->initVal(string("ListeStd"),string(_aMesh.toStdString())+string(".info"));
-  ok=_monCas->initVal(string("CCAssoci"),string("MED"));
-  ok=_monCas->initVal(string("CCSolN__"),string(_aFile.toStdString()));
-  ok=_monCas->initVal(string("CCMaiN__"),string(_aFile.toStdString()));
-  ok=_monCas->initVal(string("CCNoMN__"),string(_aMesh.toStdString()));
-  ok=_monCas->initVal(string("PPBasFic"),string(_aMesh.toStdString()));
-  ok=_monCas->initVal(string("EcriFiHO"),string("non"));
-
-  ok = _monCas->createFile();
-  if ( ok == false)
-  {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Probleme � la cr�ation du fichier Homard "),
-        QMessageBox::Ok + QMessageBox::Default );
-        return;
-  }
-
-  string fileDir=string(_monCas->getMyDir().c_str());
-  char * dirchar; char * execchar;
-  string  dir; string  executable;
-  string result=string(_aMesh.toStdString())+string(".info");
-
-  if ( !(dirchar = getenv("HOMARD_REP_EXE")) )
-     { dir=string("/local/logiciels/Homard"); }
-  else
-     { dir=string(dirchar); }
-
-  if ( !(execchar = getenv("HOMARD_EXE")) )
-     { executable =string("HOMARD"); }
-  else
-     { executable =string(execchar); }
-
-  string commande = dir+"/"+executable;
-  string info = ";more *.info";
-  string ou=string("cd ") + string(fileDir);
-  string tout=ou +string("; xterm -sb -hold  -e \" ") + commande + info + string ("\"");
-  system(tout.c_str());
-  int MonCasRoot = MonHomardDlg::RootInfo;
-  int TagInfo = 0;
-  MonHomardDlg::RootInfo = MonHomardDlg::RootInfo+1;
-  HOMARD_UTILS::AddNewRoot(MonCasRoot,QString(_aMesh));
-
-  if (bBilan == true)  
-  {
-     QStringList Lesfichiers=HOMARD_UTILS::ChercheDansDir(fileDir.c_str(),QString("info"),-1);
-     QString FileComment=QString("HomardOuputInfo");
-     for ( QStringList::Iterator it = Lesfichiers.begin(); it != Lesfichiers.end(); ++it )
-     {
-       HOMARD_UTILS::RangeSousTag(MonCasRoot,(*it),TagInfo,FileComment,fileDir.c_str());
-       TagInfo ++;
-     }
-  }
-  if (bHisto == true)  
-  {
-     QStringList Lesfichiers=HOMARD_UTILS::ChercheDansDir(fileDir.c_str(),QString("qual"),-1);
-     QString FileComment=QString("HomardOuputQual");
-     for ( QStringList::Iterator it = Lesfichiers.begin(); it != Lesfichiers.end(); ++it )
-     {
-       HOMARD_UTILS::RangeSousTag(MonCasRoot,(*it),TagInfo,FileComment,fileDir.c_str());
-       TagInfo ++;
-     }
-  }
-  HOMARD_UTILS::updateObjBrowser();
-  close();
-
-}
-
-//-----------------------------
-void MonHomardDlg::SetBilans()
-//-----------------------------
-{
-    if (Bilan->isChecked())
-    {  
-      _monCas->setBilan(true);
-      bBilan=true;
-    }
-    else
-    {
-      _monCas->setBilan(false);
-      bBilan=false;
-    }   
-}
-
-//-----------------------------
-void MonHomardDlg::SetConnexite()
-//-----------------------------
-{
-    bool ok;
-    if (Connexite->isChecked())
-    {  
-      ok=_monCas->initVal(string("Connex11"),string("oui"));
-    }
-    else
-    {
-      ok=_monCas->initVal(string("Connex11"),string("non"));
-    }   
-    if ( ok ==false)
-    {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Mauvaise valeur pour ce mot clef"),
-        QMessageBox::Ok + QMessageBox::Default );
-    }
-}
-
-//-----------------------------
-void MonHomardDlg::SetInter()
-//-----------------------------
-{
-    bool ok;
-    if (Inter->isChecked())
-    {  
-      ok=_monCas->initVal(string("Interpe3"),string("oui"));
-    }
-    else
-    {
-      ok=_monCas->initVal(string("Interpe3"),string("non"));
-    }   
-    if ( ok ==false)
-    {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Mauvaise valeur pour ce mot clef"),
-        QMessageBox::Ok + QMessageBox::Default );
-    }
-}
-
-//-----------------------------
-void MonHomardDlg::SetNbEntites()
-//-----------------------------
-{
-    bool ok;
-    if (NbEntites->isChecked())
-    {  
-      ok=_monCas->initVal(string("Nb_Enti7"),string("oui"));
-    }
-    else
-    {
-      ok=_monCas->initVal(string("Nb_Enti7"),string("non"));
-    }   
-    if ( ok ==false)
-    {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Mauvaise valeur pour ce mot clef"),
-        QMessageBox::Ok + QMessageBox::Default );
-    }
-}
-
-//-----------------------------
-void MonHomardDlg::SetHisto()
-//-----------------------------
-{
-    if (Histo->isChecked())
-    {  
-      bHisto=true;
-    }
-    else
-    {
-      bHisto=false;
-    }   
-}
-
-//-----------------------------
-void MonHomardDlg::SetQualite()
-//-----------------------------
-{
-    bool ok;
-    if (Qualite->isChecked())
-    {  
-      ok=_monCas->initVal(string("Qualite5"),string("oui"));
-    }
-    else
-    {
-      ok=_monCas->initVal(string("Qualite5"),string("non"));
-    }   
-    if ( ok ==false)
-    {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Mauvaise valeur pour ce mot clef"),
-        QMessageBox::Ok + QMessageBox::Default );
-    }
-}
-
-//-----------------------------
-void MonHomardDlg::SetVolumes()
-//-----------------------------
-{
-    bool ok;
-    if (Volumes->isChecked())
-    {  
-      ok=_monCas->initVal(string("Taille13"),string("oui"));
-    }
-    else
-    {
-      ok=_monCas->initVal(string("Taille13"),string("non"));
-    }   
-    if ( ok ==false)
-    {
-        QMessageBox::information( 0, "Mauvaise Selection",
-        QString("Mauvaise valeur pour ce mot clef"),
-        QMessageBox::Ok + QMessageBox::Default );
-    }
-
-}
-
-//---------------------------------
-void MonHomardDlg::PushNomFichier()
-//---------------------------------
-{
-   MESSAGE("Debut de PushNomFichier");
-   bNomFichier=false;
-   _aFile=HOMARD_QT_COMMUN::PushNomFichier();
-   if ( _aFile != QString::null)
-   {
-       NomFichier->setText(_aFile);
-       bNomFichier=true;
-       this->SetNomFichier();
-   }
-}
-
-//-----------------------------------
-void MonHomardDlg::SetNomFichier()
-//-----------------------------------
-/* Ce slot est appele quand on entre le nom du fichier */
-{
-   MESSAGE("Debut de SetNomFichier");
-   _aFile=NomFichier->text();
-   bNomFichier=true;
-   if ( HOMARD_QT_COMMUN::SetListeMaillages(_aFile,ListeMeshName))
-   {
-      if (ListeMeshName->count() == 1) this->SetMaillage();
-   }
-   else
-   {
-      bNomFichier=false;
-      _aFile=QString::null;
-     NomFichier->setText(_aFile);
-   }
-}
-
-
-//-----------------------------------
-void MonHomardDlg::SetMaillage()
-//-----------------------------------
-{
-       MESSAGE("Debut de SetMaillage");
-       bNomMaillage = true;
-       _aMesh=ListeMeshName->currentText();
-}
-
diff --git a/src/HOMARDGUI/MonHomardDlg.h b/src/HOMARDGUI/MonHomardDlg.h
deleted file mode 100644 (file)
index 2b044cf..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef MONHOMARDDLG_H
-#define MONHOMARDDLG_H
-
-#include "utilities.h"
-#include "HomardDlg.h"
-#include <QWidget>
-#include <SALOMEconfig.h>
-#include "SALOME_Selection.h"
-
-#include <SalomeApp_Module.h>
-
-#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
-#include CORBA_CLIENT_HEADER(HOMARD_Gen)
-
-
-class HomardConfigFile;
-class MonHomardDlg : public QWidget,public Ui_HomardDlg
-{ 
-    Q_OBJECT
-
-public:
-    MonHomardDlg( QWidget* parent, bool modal, HOMARD::HOMARD_Gen_ptr myHomardGen );
-    ~MonHomardDlg();
-
-    virtual void initConnect();
-
-public slots:
-    virtual void SetNomFichier();
-    virtual void PushNomFichier();
-    virtual void SetMaillage();
-    virtual void SetNbEntites();
-    virtual void Lancement();
-    virtual void SetInter();
-    virtual void SetBilans();
-    virtual void SetConnexite();
-    virtual void SetHisto();
-    virtual void SetQualite();
-    virtual void SetVolumes();
-
-protected :
-    bool  bHisto, bBilan;
-    bool bNomFichier, bNomMaillage;
-
-    HOMARD::HOMARD_Gen_ptr _myHomardGen;
-
-    HomardConfigFile* _monCas;
-
-    QString _aFile;
-    QString _aMesh;
-
-private:
-      static int RootInfo;
-};
-
-#endif // MONHOMARDDLG_H
diff --git a/src/HOMARDGUI/ui/HomardCas.ui b/src/HOMARDGUI/ui/HomardCas.ui
deleted file mode 100644 (file)
index 555f866..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardCas</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardCas</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>561</width>
-            <height>193</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Analyse de maillage avec HOMARD</string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>false</bool>
-    </property>
-    <widget class="QGroupBox">
-        <property name="name">
-            <cstring>GroupBox1</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>10</x>
-                <y>10</y>
-                <width>540</width>
-                <height>130</height>
-            </rect>
-        </property>
-        <property name="title">
-            <string>Case</string>
-        </property>
-        <widget class="QLabel">
-            <property name="name">
-                <cstring>textLabel1</cstring>
-            </property>
-            <property name="geometry">
-                <rect>
-                    <x>10</x>
-                    <y>20</y>
-                    <width>71</width>
-                    <height>31</height>
-                </rect>
-            </property>
-            <property name="text">
-                <string>Name</string>
-            </property>
-        </widget>
-        <widget class="QLineEdit">
-            <property name="name">
-                <cstring>NomCas</cstring>
-            </property>
-            <property name="geometry">
-                <rect>
-                    <x>110</x>
-                    <y>20</y>
-                    <width>420</width>
-                    <height>30</height>
-                </rect>
-            </property>
-        </widget>
-        <widget class="QPushButton">
-            <property name="name">
-                <cstring>pushDirect</cstring>
-            </property>
-            <property name="geometry">
-                <rect>
-                    <x>10</x>
-                    <y>70</y>
-                    <width>91</width>
-                    <height>31</height>
-                </rect>
-            </property>
-            <property name="text">
-                <string>Directory</string>
-            </property>
-        </widget>
-        <widget class="QLineEdit">
-            <property name="name">
-                <cstring>NomDirect</cstring>
-            </property>
-            <property name="geometry">
-                <rect>
-                    <x>110</x>
-                    <y>70</y>
-                    <width>421</width>
-                    <height>31</height>
-                </rect>
-            </property>
-        </widget>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>ButtonOk</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>420</x>
-                <y>150</y>
-                <width>61</width>
-                <height>31</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>OK</string>
-        </property>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>ButtonCancel</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>490</x>
-                <y>150</y>
-                <width>61</width>
-                <height>31</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>Cancel</string>
-        </property>
-    </widget>
-</widget>
-<connections>
-    <connection>
-        <sender>NomCas</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardCas</receiver>
-        <slot>SetNomCas()</slot>
-    </connection>
-    <connection>
-        <sender>NomCas</sender>
-        <signal>textChanged(const QString&amp;)</signal>
-        <receiver>HomardCas</receiver>
-        <slot>SetNomCas(const QString&amp;)</slot>
-    </connection>
-    <connection>
-        <sender>NomDirect</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardCas</receiver>
-        <slot>SetDir2()</slot>
-    </connection>
-    <connection>
-        <sender>NomDirect</sender>
-        <signal>textChanged(const QString&amp;)</signal>
-        <receiver>HomardCas</receiver>
-        <slot>SetDir2(const QString&amp;)</slot>
-    </connection>
-    <connection>
-        <sender>pushDirect</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardCas</receiver>
-        <slot>SetDir()</slot>
-    </connection>
-    <connection>
-        <sender>ButtonOk</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardCas</receiver>
-        <slot>PushOnApply()</slot>
-    </connection>
-    <connection>
-        <sender>ButtonCancel</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardCas</receiver>
-        <slot>close()</slot>
-    </connection>
-</connections>
-<slots>
-    <slot>PushOnApply()</slot>
-    <slot>SetDir()</slot>
-    <slot>SetDir2()</slot>
-    <slot>SetDir2( const QString &amp; )</slot>
-    <slot>SetNomCas()</slot>
-    <slot>SetNomCas( const QString &amp; )</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/HOMARDGUI/ui/HomardDlg.ui b/src/HOMARDGUI/ui/HomardDlg.ui
deleted file mode 100644 (file)
index 69482bb..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardDlg</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardDlg</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>467</width>
-            <height>355</height>
-        </rect>
-    </property>
-    <property name="sizePolicy">
-        <sizepolicy>
-            <hsizetype>5</hsizetype>
-            <vsizetype>5</vsizetype>
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-        </sizepolicy>
-    </property>
-    <property name="caption">
-        <string>Homard : Analyse de maillage</string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>true</bool>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <spacer row="3" column="0">
-            <property name="name">
-                <cstring>spacer10</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
-            </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="sizeHint">
-                <size>
-                    <width>20</width>
-                    <height>16</height>
-                </size>
-            </property>
-        </spacer>
-        <widget class="QGroupBox" row="1" column="0">
-            <property name="name">
-                <cstring>groupBox3</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>5</hsizetype>
-                    <vsizetype>5</vsizetype>
-                    <horstretch>0</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="title">
-                <string>Options</string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QLayoutWidget" row="0" column="0">
-                    <property name="name">
-                        <cstring>layout30</cstring>
-                    </property>
-                    <grid>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="QCheckBox" row="2" column="0">
-                            <property name="name">
-                                <cstring>Connexite</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Connexité</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                        <widget class="QCheckBox" row="1" column="1">
-                            <property name="name">
-                                <cstring>Inter</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Interpénétration</string>
-                            </property>
-                            <property name="checked">
-                                <bool>false</bool>
-                            </property>
-                        </widget>
-                        <widget class="QCheckBox" row="0" column="1">
-                            <property name="name">
-                                <cstring>Volumes</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Volumes/Surfaces/Longueurs</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                        <widget class="QCheckBox" row="0" column="0">
-                            <property name="name">
-                                <cstring>NbEntites</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Nombre d'entités</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                        <widget class="QCheckBox" row="1" column="0">
-                            <property name="name">
-                                <cstring>Qualite</cstring>
-                            </property>
-                            <property name="text">
-                                <string>Qualité</string>
-                            </property>
-                            <property name="checked">
-                                <bool>true</bool>
-                            </property>
-                        </widget>
-                    </grid>
-                </widget>
-            </grid>
-        </widget>
-        <widget class="QGroupBox" row="4" column="0">
-            <property name="name">
-                <cstring>groupBox4</cstring>
-            </property>
-            <property name="title">
-                <string></string>
-            </property>
-            <hbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <spacer>
-                    <property name="name">
-                        <cstring>Horizontal Spacing2</cstring>
-                    </property>
-                    <property name="orientation">
-                        <enum>Horizontal</enum>
-                    </property>
-                    <property name="sizeType">
-                        <enum>Expanding</enum>
-                    </property>
-                    <property name="sizeHint">
-                        <size>
-                            <width>290</width>
-                            <height>20</height>
-                        </size>
-                    </property>
-                </spacer>
-                <widget class="QPushButton">
-                    <property name="name">
-                        <cstring>lancement</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;OK</string>
-                    </property>
-                    <property name="accel">
-                        <string></string>
-                    </property>
-                    <property name="autoDefault">
-                        <bool>true</bool>
-                    </property>
-                    <property name="default">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-                <widget class="QPushButton">
-                    <property name="name">
-                        <cstring>terminer</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Cancel</string>
-                    </property>
-                    <property name="accel">
-                        <string></string>
-                    </property>
-                    <property name="autoDefault">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-            </hbox>
-        </widget>
-        <widget class="QGroupBox" row="0" column="0">
-            <property name="name">
-                <cstring>groupBox7</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>5</hsizetype>
-                    <vsizetype>5</vsizetype>
-                    <horstretch>0</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="paletteBackgroundColor">
-                <color>
-                    <red>230</red>
-                    <green>230</green>
-                    <blue>230</blue>
-                </color>
-            </property>
-            <property name="frameShadow">
-                <enum>Raised</enum>
-            </property>
-            <property name="margin">
-                <number>1</number>
-            </property>
-            <property name="title">
-                <string></string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QLabel" row="1" column="0">
-                    <property name="name">
-                        <cstring>lblMesh</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>1</hsizetype>
-                            <vsizetype>5</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string>Mesh</string>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="0" column="0">
-                    <property name="name">
-                        <cstring>lblCommande</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>1</hsizetype>
-                            <vsizetype>5</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string>MED File</string>
-                    </property>
-                </widget>
-                <widget class="QPushButton" row="0" column="1">
-                    <property name="name">
-                        <cstring>PushFichier</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>0</hsizetype>
-                            <vsizetype>0</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string></string>
-                    </property>
-                    <property name="pixmap">
-                        <pixmap>image0</pixmap>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="0" column="3">
-                    <property name="name">
-                        <cstring>lblTypeMesh</cstring>
-                    </property>
-                    <property name="sizePolicy">
-                        <sizepolicy>
-                            <hsizetype>1</hsizetype>
-                            <vsizetype>5</vsizetype>
-                            <horstretch>0</horstretch>
-                            <verstretch>0</verstretch>
-                        </sizepolicy>
-                    </property>
-                    <property name="text">
-                        <string></string>
-                    </property>
-                    <property name="pixmap">
-                        <pixmap>image1</pixmap>
-                    </property>
-                    <property name="toolTip" stdset="0">
-                        <string>A quoi ça sert ?</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="0" column="2">
-                    <property name="name">
-                        <cstring>NomFichier</cstring>
-                    </property>
-                    <property name="minimumSize">
-                        <size>
-                            <width>300</width>
-                            <height>21</height>
-                        </size>
-                    </property>
-                </widget>
-                <widget class="QComboBox" row="1" column="1" rowspan="1" colspan="3">
-                    <property name="name">
-                        <cstring>ListeMeshName</cstring>
-                    </property>
-                    <property name="minimumSize">
-                        <size>
-                            <width>300</width>
-                            <height>31</height>
-                        </size>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-        <widget class="QGroupBox" row="2" column="0">
-            <property name="name">
-                <cstring>groupBox3_2</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>5</hsizetype>
-                    <vsizetype>5</vsizetype>
-                    <horstretch>0</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="title">
-                <string>Conservation des résultats</string>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QCheckBox" row="0" column="0">
-                    <property name="name">
-                        <cstring>bilans</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Bilan</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-                <widget class="QCheckBox" row="0" column="1">
-                    <property name="name">
-                        <cstring>Histo</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Histogramme Qualité</string>
-                    </property>
-                    <property name="checked">
-                        <bool>true</bool>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-    </grid>
-</widget>
-<images>
-    <image name="image0">
-        <data format="PNG" length="209">89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000009849444154388db5d4cb1180200c0450e3580f056c49f6c0c91e2c690bb0213d7110123e417373c0371b3408c9e5cb5a3fd5fe00b79e4d006e6b8da40c83a98ef37a3dc73d147bbac0940208778ee6d57d86009a583798635aaba99a2d6b18490182faa1aa092dacf68e5893e2c1cc845e4c0567b0029cc5d4843398097ab1022429710fcb715ed50b6128e12caa4e4a9a044fdbe68fedad0767bd6302a986f8310000000049454e44ae426082</data>
-    </image>
-    <image name="image1">
-        <data format="PNG" length="461">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000019449444154388da593316b1b411046df86341764588104b75708e2224d4c50bb1748e18021977f18489bceed152e03b96b83c14d2ae36295c2e41624d81108c6857cc9099f0dc1d30cb3cb37f398fdd6344dc373e2c5b3d4c0cb615196a55a6b89313296cfbf9d63ad65cbd68c12d88925dc0454f5418e3172fae994555c3d4e103791ec28e3eb97063b77c8bac3cd1d1fab575c5d2ac6185495b66dc777602796b44e07e24e3a7e7cffc3db77e6effd300e1af404923a9c73a49de07287887075a9c44da458142c4f96fa24819b3b92086e661111f2dc21d2117eed77911d654f13ecc53922c2ebdc219270b329d7b7ad699ac6b46dfbf82ba475c2e539b28bb8dcd16d3ab6bb9fe6faf75e5496a50e35e33b10c1cd1ce97e324055550a60ad6579b2d4be1e27984de924914d32fac9755d9beaacd27013288a82baae8df75e477d9024319d64ac6e3b0cff1c1a42a058147dd618e34302630cef3f141cbf317c3e3b06a0691ad34f1e12a8ea6183fa627f18c2bd8d43c07baf00c5a2a0bea84d9fabaad2b66d8df99fefecbdd7819d8df75eef005295fc1dc06daa230000000049454e44ae426082</data>
-    </image>
-</images>
-<connections>
-    <connection>
-        <sender>lancement</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>Lancement()</slot>
-    </connection>
-    <connection>
-        <sender>terminer</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>close()</slot>
-    </connection>
-    <connection>
-        <sender>ListeMeshName</sender>
-        <signal>activated(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetMaillage()</slot>
-    </connection>
-    <connection>
-        <sender>NomFichier</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>PushFichier</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>PushNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>Connexite</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetConnexite()</slot>
-    </connection>
-    <connection>
-        <sender>Inter</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetInter()</slot>
-    </connection>
-    <connection>
-        <sender>NbEntites</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetNbEntites()</slot>
-    </connection>
-    <connection>
-        <sender>Histo</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetHisto()</slot>
-    </connection>
-    <connection>
-        <sender>Qualite</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetQualite()</slot>
-    </connection>
-    <connection>
-        <sender>Volumes</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetVolumes()</slot>
-    </connection>
-    <connection>
-        <sender>bilans</sender>
-        <signal>stateChanged(int)</signal>
-        <receiver>HomardDlg</receiver>
-        <slot>SetBilans()</slot>
-    </connection>
-</connections>
-<slots>
-    <slot>SetNomFichier()</slot>
-    <slot>PushNomFichier()</slot>
-    <slot>SetMaillage()</slot>
-    <slot>SetNbEntites()</slot>
-    <slot>Lancement()</slot>
-    <slot>SetInter()</slot>
-    <slot>SetBilans()</slot>
-    <slot>SetConnexite()</slot>
-    <slot>SetHisto()</slot>
-    <slot>SetQualite()</slot>
-    <slot>SetVolumes()</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/HOMARDGUI/ui/HomardEditLog.ui b/src/HOMARDGUI/ui/HomardEditLog.ui
deleted file mode 100644 (file)
index bc8613a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardEditLog</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardEditLog</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>487</width>
-            <height>338</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Homard : </string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>true</bool>
-    </property>
-    <widget class="QLabel">
-        <property name="name">
-            <cstring>lblTypeMesh</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>457</x>
-                <y>16</y>
-                <width>16</width>
-                <height>28</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string></string>
-        </property>
-        <property name="pixmap">
-            <pixmap>image0</pixmap>
-        </property>
-    </widget>
-    <widget class="QTextEdit">
-        <property name="name">
-            <cstring>FileEditeur</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>0</x>
-                <y>0</y>
-                <width>490</width>
-                <height>340</height>
-            </rect>
-        </property>
-    </widget>
-</widget>
-<images>
-    <image name="image0">
-        <data format="PNG" length="461">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000019449444154388da593316b1b411046df86341764588104b75708e2224d4c50bb1748e18021977f18489bceed152e03b96b83c14d2ae36295c2e41624d81108c6857cc9099f0dc1d30cb3cb37f398fdd6344dc373e2c5b3d4c0cb615196a55a6b89313296cfbf9d63ad65cbd68c12d88925dc0454f5418e3172fae994555c3d4e103791ec28e3eb97063b77c8bac3cd1d1fab575c5d2ac6185495b66dc777602796b44e07e24e3a7e7cffc3db77e6effd300e1af404923a9c73a49de07287887075a9c44da458142c4f96fa24819b3b92086e661111f2dc21d2117eed77911d654f13ecc53922c2ebdc219270b329d7b7ad699ac6b46dfbf82ba475c2e539b28bb8dcd16d3ab6bb9fe6faf75e5496a50e35e33b10c1cd1ce97e324055550a60ad6579b2d4be1e27984de924914d32fac9755d9beaacd27013288a82baae8df75e477d9024319d64ac6e3b0cff1c1a42a058147dd618e34302630cef3f141cbf317c3e3b06a0691ad34f1e12a8ea6183fa627f18c2bd8d43c07baf00c5a2a0bea84d9fabaad2b66d8df99fefecbdd7819d8df75eef005295fc1dc06daa230000000049454e44ae426082</data>
-    </image>
-</images>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/HOMARDGUI/ui/HomardIteration.ui b/src/HOMARDGUI/ui/HomardIteration.ui
deleted file mode 100644 (file)
index 72e661a..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardIteration</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardIteration</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>533</width>
-            <height>112</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Homard : Iteration Control</string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>true</bool>
-    </property>
-    <widget class="QLabel">
-        <property name="name">
-            <cstring>lblTypeMesh</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>497</x>
-                <y>38</y>
-                <width>16</width>
-                <height>26</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string></string>
-        </property>
-        <property name="pixmap">
-            <pixmap>image0</pixmap>
-        </property>
-    </widget>
-    <widget class="QSpinBox">
-        <property name="name">
-            <cstring>IterBox</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>140</x>
-                <y>10</y>
-                <width>41</width>
-                <height>21</height>
-            </rect>
-        </property>
-    </widget>
-    <widget class="QLineEdit">
-        <property name="name">
-            <cstring>NomFichier</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>180</x>
-                <y>40</y>
-                <width>310</width>
-                <height>21</height>
-            </rect>
-        </property>
-        <property name="minimumSize">
-            <size>
-                <width>250</width>
-                <height>21</height>
-            </size>
-        </property>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>PushFichier</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>144</x>
-                <y>39</y>
-                <width>24</width>
-                <height>24</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string></string>
-        </property>
-        <property name="pixmap">
-            <pixmap>image1</pixmap>
-        </property>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>buttonOk</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>366</x>
-                <y>80</y>
-                <width>58</width>
-                <height>21</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>Refine</string>
-        </property>
-        <property name="accel">
-            <string></string>
-        </property>
-        <property name="autoDefault">
-            <bool>true</bool>
-        </property>
-        <property name="default">
-            <bool>true</bool>
-        </property>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>buttonCancel</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>430</x>
-                <y>80</y>
-                <width>60</width>
-                <height>21</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>&amp;Cancel</string>
-        </property>
-        <property name="accel">
-            <string></string>
-        </property>
-        <property name="autoDefault">
-            <bool>true</bool>
-        </property>
-    </widget>
-    <widget class="QLabel">
-        <property name="name">
-            <cstring>textLabel1</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>10</x>
-                <y>10</y>
-                <width>120</width>
-                <height>21</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>Iteration Rank</string>
-        </property>
-    </widget>
-    <widget class="QLabel">
-        <property name="name">
-            <cstring>lblCommande</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>7</x>
-                <y>37</y>
-                <width>128</width>
-                <height>28</height>
-            </rect>
-        </property>
-        <property name="text">
-            <string>Configuration File</string>
-        </property>
-    </widget>
-</widget>
-<images>
-    <image name="image0">
-        <data format="PNG" length="461">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000019449444154388da593316b1b411046df86341764588104b75708e2224d4c50bb1748e18021977f18489bceed152e03b96b83c14d2ae36295c2e41624d81108c6857cc9099f0dc1d30cb3cb37f398fdd6344dc373e2c5b3d4c0cb615196a55a6b89313296cfbf9d63ad65cbd68c12d88925dc0454f5418e3172fae994555c3d4e103791ec28e3eb97063b77c8bac3cd1d1fab575c5d2ac6185495b66dc777602796b44e07e24e3a7e7cffc3db77e6effd300e1af404923a9c73a49de07287887075a9c44da458142c4f96fa24819b3b92086e661111f2dc21d2117eed77911d654f13ecc53922c2ebdc219270b329d7b7ad699ac6b46dfbf82ba475c2e539b28bb8dcd16d3ab6bb9fe6faf75e5496a50e35e33b10c1cd1ce97e324055550a60ad6579b2d4be1e27984de924914d32fac9755d9beaacd27013288a82baae8df75e477d9024319d64ac6e3b0cff1c1a42a058147dd618e34302630cef3f141cbf317c3e3b06a0691ad34f1e12a8ea6183fa627f18c2bd8d43c07baf00c5a2a0bea84d9fabaad2b66d8df99fefecbdd7819d8df75eef005295fc1dc06daa230000000049454e44ae426082</data>
-    </image>
-    <image name="image1">
-        <data format="PNG" length="209">89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000009849444154388db5d4cb1180200c0450e3580f056c49f6c0c91e2c690bb0213d7110123e417373c0371b3408c9e5cb5a3fd5fe00b79e4d006e6b8da40c83a98ef37a3dc73d147bbac0940208778ee6d57d86009a583798635aaba99a2d6b18490182faa1aa092dacf68e5893e2c1cc845e4c0567b0029cc5d4843398097ab1022429710fcb715ed50b6128e12caa4e4a9a044fdbe68fedad0767bd6302a986f8310000000049454e44ae426082</data>
-    </image>
-</images>
-<connections>
-    <connection>
-        <sender>NomFichier</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardIteration</receiver>
-        <slot>SetNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>buttonOk</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardIteration</receiver>
-        <slot>Lancement()</slot>
-    </connection>
-    <connection>
-        <sender>buttonCancel</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardIteration</receiver>
-        <slot>close()</slot>
-    </connection>
-    <connection>
-        <sender>PushFichier</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardIteration</receiver>
-        <slot>PushNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>IterBox</sender>
-        <signal>valueChanged(int)</signal>
-        <receiver>HomardIteration</receiver>
-        <slot>ChangeIter(int)</slot>
-    </connection>
-</connections>
-<slots>
-    <slot>Lancement()</slot>
-    <slot>SetNomFichier()</slot>
-    <slot>PushNomFichier()</slot>
-    <slot>ChangeIter(int)</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/HOMARDGUI/ui/HomardPourLesNuls.ui b/src/HOMARDGUI/ui/HomardPourLesNuls.ui
deleted file mode 100644 (file)
index 25b6d00..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardPourLesNuls</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardPourLesNuls</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>563</width>
-            <height>375</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Homard for Dummies</string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>true</bool>
-    </property>
-    <vbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="QLayoutWidget">
-            <property name="name">
-                <cstring>layout27</cstring>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QLayoutWidget">
-                    <property name="name">
-                        <cstring>layout49</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="QLabel">
-                            <property name="name">
-                                <cstring>lblCommande</cstring>
-                            </property>
-                            <property name="text">
-                                <string>MED File</string>
-                            </property>
-                        </widget>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer4</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="sizeHint">
-                                <size>
-                                    <width>120</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="QLayoutWidget">
-                            <property name="name">
-                                <cstring>layout48</cstring>
-                            </property>
-                            <hbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="QLayoutWidget">
-                                    <property name="name">
-                                        <cstring>layout26</cstring>
-                                    </property>
-                                    <hbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>PushFichier</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string></string>
-                                            </property>
-                                            <property name="pixmap">
-                                                <pixmap>image0</pixmap>
-                                            </property>
-                                        </widget>
-                                        <widget class="QLineEdit">
-                                            <property name="name">
-                                                <cstring>NomFichier</cstring>
-                                            </property>
-                                            <property name="minimumSize">
-                                                <size>
-                                                    <width>382</width>
-                                                    <height>21</height>
-                                                </size>
-                                            </property>
-                                        </widget>
-                                    </hbox>
-                                </widget>
-                                <widget class="QLabel">
-                                    <property name="name">
-                                        <cstring>lblTypeMesh</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string></string>
-                                    </property>
-                                    <property name="pixmap">
-                                        <pixmap>image1</pixmap>
-                                    </property>
-                                </widget>
-                            </hbox>
-                        </widget>
-                    </hbox>
-                </widget>
-                <spacer>
-                    <property name="name">
-                        <cstring>spacer19</cstring>
-                    </property>
-                    <property name="orientation">
-                        <enum>Vertical</enum>
-                    </property>
-                    <property name="sizeType">
-                        <enum>Expanding</enum>
-                    </property>
-                    <property name="sizeHint">
-                        <size>
-                            <width>20</width>
-                            <height>29</height>
-                        </size>
-                    </property>
-                </spacer>
-                <widget class="QLayoutWidget">
-                    <property name="name">
-                        <cstring>layout26</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer20</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="sizeHint">
-                                <size>
-                                    <width>104</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="QLayoutWidget">
-                            <property name="name">
-                                <cstring>layout25</cstring>
-                            </property>
-                            <vbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="QGroupBox">
-                                    <property name="name">
-                                        <cstring>groupBox2</cstring>
-                                    </property>
-                                    <property name="title">
-                                        <string></string>
-                                    </property>
-                                    <vbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <widget class="QLayoutWidget">
-                                            <property name="name">
-                                                <cstring>layout43</cstring>
-                                            </property>
-                                            <vbox>
-                                                <property name="name">
-                                                    <cstring>unnamed</cstring>
-                                                </property>
-                                                <widget class="QLayoutWidget">
-                                                    <property name="name">
-                                                        <cstring>layout41</cstring>
-                                                    </property>
-                                                    <vbox>
-                                                        <property name="name">
-                                                            <cstring>unnamed</cstring>
-                                                        </property>
-                                                        <widget class="QLayoutWidget">
-                                                            <property name="name">
-                                                                <cstring>layout34</cstring>
-                                                            </property>
-                                                            <hbox>
-                                                                <property name="name">
-                                                                    <cstring>unnamed</cstring>
-                                                                </property>
-                                                                <widget class="QLabel">
-                                                                    <property name="name">
-                                                                        <cstring>lblMesh</cstring>
-                                                                    </property>
-                                                                    <property name="text">
-                                                                        <string>Mesh</string>
-                                                                    </property>
-                                                                </widget>
-                                                                <spacer>
-                                                                    <property name="name">
-                                                                        <cstring>spacer5</cstring>
-                                                                    </property>
-                                                                    <property name="orientation">
-                                                                        <enum>Horizontal</enum>
-                                                                    </property>
-                                                                    <property name="sizeType">
-                                                                        <enum>Expanding</enum>
-                                                                    </property>
-                                                                    <property name="sizeHint">
-                                                                        <size>
-                                                                            <width>70</width>
-                                                                            <height>20</height>
-                                                                        </size>
-                                                                    </property>
-                                                                </spacer>
-                                                                <widget class="QComboBox">
-                                                                    <property name="name">
-                                                                        <cstring>ListeMeshName</cstring>
-                                                                    </property>
-                                                                    <property name="minimumSize">
-                                                                        <size>
-                                                                            <width>350</width>
-                                                                            <height>31</height>
-                                                                        </size>
-                                                                    </property>
-                                                                </widget>
-                                                            </hbox>
-                                                        </widget>
-                                                        <spacer>
-                                                            <property name="name">
-                                                                <cstring>spacer15</cstring>
-                                                            </property>
-                                                            <property name="orientation">
-                                                                <enum>Vertical</enum>
-                                                            </property>
-                                                            <property name="sizeType">
-                                                                <enum>Expanding</enum>
-                                                            </property>
-                                                            <property name="sizeHint">
-                                                                <size>
-                                                                    <width>20</width>
-                                                                    <height>31</height>
-                                                                </size>
-                                                            </property>
-                                                        </spacer>
-                                                        <widget class="QLayoutWidget">
-                                                            <property name="name">
-                                                                <cstring>layout40</cstring>
-                                                            </property>
-                                                            <vbox>
-                                                                <property name="name">
-                                                                    <cstring>unnamed</cstring>
-                                                                </property>
-                                                                <widget class="QLayoutWidget">
-                                                                    <property name="name">
-                                                                        <cstring>layout34_2</cstring>
-                                                                    </property>
-                                                                    <hbox>
-                                                                        <property name="name">
-                                                                            <cstring>unnamed</cstring>
-                                                                        </property>
-                                                                        <widget class="QLabel">
-                                                                            <property name="name">
-                                                                                <cstring>lblMesh_3</cstring>
-                                                                            </property>
-                                                                            <property name="text">
-                                                                                <string>Error Field</string>
-                                                                            </property>
-                                                                        </widget>
-                                                                        <spacer>
-                                                                            <property name="name">
-                                                                                <cstring>spacer5_2</cstring>
-                                                                            </property>
-                                                                            <property name="orientation">
-                                                                                <enum>Horizontal</enum>
-                                                                            </property>
-                                                                            <property name="sizeType">
-                                                                                <enum>Expanding</enum>
-                                                                            </property>
-                                                                            <property name="sizeHint">
-                                                                                <size>
-                                                                                    <width>70</width>
-                                                                                    <height>20</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </spacer>
-                                                                        <widget class="QComboBox">
-                                                                            <property name="name">
-                                                                                <cstring>ListeField</cstring>
-                                                                            </property>
-                                                                            <property name="minimumSize">
-                                                                                <size>
-                                                                                    <width>350</width>
-                                                                                    <height>31</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </widget>
-                                                                    </hbox>
-                                                                </widget>
-                                                                <widget class="QLayoutWidget">
-                                                                    <property name="name">
-                                                                        <cstring>layout34_3</cstring>
-                                                                    </property>
-                                                                    <hbox>
-                                                                        <property name="name">
-                                                                            <cstring>unnamed</cstring>
-                                                                        </property>
-                                                                        <widget class="QLabel">
-                                                                            <property name="name">
-                                                                                <cstring>lblMesh_2</cstring>
-                                                                            </property>
-                                                                            <property name="text">
-                                                                                <string>Componant</string>
-                                                                            </property>
-                                                                        </widget>
-                                                                        <spacer>
-                                                                            <property name="name">
-                                                                                <cstring>spacer5_3</cstring>
-                                                                            </property>
-                                                                            <property name="orientation">
-                                                                                <enum>Horizontal</enum>
-                                                                            </property>
-                                                                            <property name="sizeType">
-                                                                                <enum>Expanding</enum>
-                                                                            </property>
-                                                                            <property name="sizeHint">
-                                                                                <size>
-                                                                                    <width>70</width>
-                                                                                    <height>20</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </spacer>
-                                                                        <widget class="QComboBox">
-                                                                            <property name="name">
-                                                                                <cstring>ListeComponant</cstring>
-                                                                            </property>
-                                                                            <property name="minimumSize">
-                                                                                <size>
-                                                                                    <width>350</width>
-                                                                                    <height>31</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </widget>
-                                                                    </hbox>
-                                                                </widget>
-                                                                <widget class="QLayoutWidget">
-                                                                    <property name="name">
-                                                                        <cstring>layout34_4</cstring>
-                                                                    </property>
-                                                                    <hbox>
-                                                                        <property name="name">
-                                                                            <cstring>unnamed</cstring>
-                                                                        </property>
-                                                                        <widget class="QLabel">
-                                                                            <property name="name">
-                                                                                <cstring>lblMesh_4</cstring>
-                                                                            </property>
-                                                                            <property name="text">
-                                                                                <string>Iteration</string>
-                                                                            </property>
-                                                                        </widget>
-                                                                        <spacer>
-                                                                            <property name="name">
-                                                                                <cstring>spacer5_4</cstring>
-                                                                            </property>
-                                                                            <property name="orientation">
-                                                                                <enum>Horizontal</enum>
-                                                                            </property>
-                                                                            <property name="sizeType">
-                                                                                <enum>Expanding</enum>
-                                                                            </property>
-                                                                            <property name="sizeHint">
-                                                                                <size>
-                                                                                    <width>70</width>
-                                                                                    <height>20</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </spacer>
-                                                                        <widget class="QComboBox">
-                                                                            <property name="name">
-                                                                                <cstring>ListeIteration</cstring>
-                                                                            </property>
-                                                                            <property name="minimumSize">
-                                                                                <size>
-                                                                                    <width>350</width>
-                                                                                    <height>31</height>
-                                                                                </size>
-                                                                            </property>
-                                                                        </widget>
-                                                                    </hbox>
-                                                                </widget>
-                                                            </vbox>
-                                                        </widget>
-                                                    </vbox>
-                                                </widget>
-                                                <spacer>
-                                                    <property name="name">
-                                                        <cstring>spacer16</cstring>
-                                                    </property>
-                                                    <property name="orientation">
-                                                        <enum>Vertical</enum>
-                                                    </property>
-                                                    <property name="sizeType">
-                                                        <enum>Expanding</enum>
-                                                    </property>
-                                                    <property name="sizeHint">
-                                                        <size>
-                                                            <width>31</width>
-                                                            <height>51</height>
-                                                        </size>
-                                                    </property>
-                                                </spacer>
-                                                <widget class="QLayoutWidget">
-                                                    <property name="name">
-                                                        <cstring>layout42</cstring>
-                                                    </property>
-                                                    <vbox>
-                                                        <property name="name">
-                                                            <cstring>unnamed</cstring>
-                                                        </property>
-                                                        <widget class="QLayoutWidget">
-                                                            <property name="name">
-                                                                <cstring>layout38</cstring>
-                                                            </property>
-                                                            <hbox>
-                                                                <property name="name">
-                                                                    <cstring>unnamed</cstring>
-                                                                </property>
-                                                                <widget class="QLabel">
-                                                                    <property name="name">
-                                                                        <cstring>lblMesh_2_2_2_2</cstring>
-                                                                    </property>
-                                                                    <property name="text">
-                                                                        <string>Refinement %</string>
-                                                                    </property>
-                                                                </widget>
-                                                                <spacer>
-                                                                    <property name="name">
-                                                                        <cstring>spacer6_4</cstring>
-                                                                    </property>
-                                                                    <property name="orientation">
-                                                                        <enum>Horizontal</enum>
-                                                                    </property>
-                                                                    <property name="sizeType">
-                                                                        <enum>Expanding</enum>
-                                                                    </property>
-                                                                    <property name="sizeHint">
-                                                                        <size>
-                                                                            <width>50</width>
-                                                                            <height>20</height>
-                                                                        </size>
-                                                                    </property>
-                                                                </spacer>
-                                                                <widget class="QSlider">
-                                                                    <property name="name">
-                                                                        <cstring>PRaf</cstring>
-                                                                    </property>
-                                                                    <property name="minimumSize">
-                                                                        <size>
-                                                                            <width>350</width>
-                                                                            <height>0</height>
-                                                                        </size>
-                                                                    </property>
-                                                                    <property name="mouseTracking">
-                                                                        <bool>false</bool>
-                                                                    </property>
-                                                                    <property name="acceptDrops">
-                                                                        <bool>false</bool>
-                                                                    </property>
-                                                                    <property name="value">
-                                                                        <number>30</number>
-                                                                    </property>
-                                                                    <property name="orientation">
-                                                                        <enum>Horizontal</enum>
-                                                                    </property>
-                                                                    <property name="tickmarks">
-                                                                        <enum>Above</enum>
-                                                                    </property>
-                                                                    <property name="tickInterval">
-                                                                        <number>10</number>
-                                                                    </property>
-                                                                </widget>
-                                                            </hbox>
-                                                        </widget>
-                                                        <widget class="QLayoutWidget">
-                                                            <property name="name">
-                                                                <cstring>layout38_2</cstring>
-                                                            </property>
-                                                            <hbox>
-                                                                <property name="name">
-                                                                    <cstring>unnamed</cstring>
-                                                                </property>
-                                                                <widget class="QLabel">
-                                                                    <property name="name">
-                                                                        <cstring>lblMesh_2_2_2_2_3</cstring>
-                                                                    </property>
-                                                                    <property name="text">
-                                                                        <string>Unrefinement %</string>
-                                                                    </property>
-                                                                </widget>
-                                                                <spacer>
-                                                                    <property name="name">
-                                                                        <cstring>spacer6_4_2</cstring>
-                                                                    </property>
-                                                                    <property name="orientation">
-                                                                        <enum>Horizontal</enum>
-                                                                    </property>
-                                                                    <property name="sizeType">
-                                                                        <enum>Expanding</enum>
-                                                                    </property>
-                                                                    <property name="sizeHint">
-                                                                        <size>
-                                                                            <width>50</width>
-                                                                            <height>20</height>
-                                                                        </size>
-                                                                    </property>
-                                                                </spacer>
-                                                                <widget class="QSlider">
-                                                                    <property name="name">
-                                                                        <cstring>PDeRaf</cstring>
-                                                                    </property>
-                                                                    <property name="minimumSize">
-                                                                        <size>
-                                                                            <width>350</width>
-                                                                            <height>0</height>
-                                                                        </size>
-                                                                    </property>
-                                                                    <property name="mouseTracking">
-                                                                        <bool>false</bool>
-                                                                    </property>
-                                                                    <property name="value">
-                                                                        <number>0</number>
-                                                                    </property>
-                                                                    <property name="orientation">
-                                                                        <enum>Horizontal</enum>
-                                                                    </property>
-                                                                    <property name="tickmarks">
-                                                                        <enum>Above</enum>
-                                                                    </property>
-                                                                    <property name="tickInterval">
-                                                                        <number>10</number>
-                                                                    </property>
-                                                                </widget>
-                                                            </hbox>
-                                                        </widget>
-                                                    </vbox>
-                                                </widget>
-                                            </vbox>
-                                        </widget>
-                                    </vbox>
-                                </widget>
-                                <spacer>
-                                    <property name="name">
-                                        <cstring>spacer18</cstring>
-                                    </property>
-                                    <property name="orientation">
-                                        <enum>Vertical</enum>
-                                    </property>
-                                    <property name="sizeType">
-                                        <enum>Expanding</enum>
-                                    </property>
-                                    <property name="sizeHint">
-                                        <size>
-                                            <width>20</width>
-                                            <height>41</height>
-                                        </size>
-                                    </property>
-                                </spacer>
-                                <widget class="QLayoutWidget">
-                                    <property name="name">
-                                        <cstring>Layout1</cstring>
-                                    </property>
-                                    <hbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <property name="margin">
-                                            <number>0</number>
-                                        </property>
-                                        <property name="spacing">
-                                            <number>6</number>
-                                        </property>
-                                        <spacer>
-                                            <property name="name">
-                                                <cstring>Horizontal Spacing2</cstring>
-                                            </property>
-                                            <property name="orientation">
-                                                <enum>Horizontal</enum>
-                                            </property>
-                                            <property name="sizeType">
-                                                <enum>Expanding</enum>
-                                            </property>
-                                            <property name="sizeHint">
-                                                <size>
-                                                    <width>20</width>
-                                                    <height>0</height>
-                                                </size>
-                                            </property>
-                                        </spacer>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>buttonOk</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string>&amp;OK</string>
-                                            </property>
-                                            <property name="accel">
-                                                <string></string>
-                                            </property>
-                                            <property name="autoDefault">
-                                                <bool>true</bool>
-                                            </property>
-                                            <property name="default">
-                                                <bool>true</bool>
-                                            </property>
-                                        </widget>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>buttonCancel</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string>&amp;Cancel</string>
-                                            </property>
-                                            <property name="accel">
-                                                <string></string>
-                                            </property>
-                                            <property name="autoDefault">
-                                                <bool>true</bool>
-                                            </property>
-                                        </widget>
-                                    </hbox>
-                                </widget>
-                            </vbox>
-                        </widget>
-                    </hbox>
-                </widget>
-            </vbox>
-        </widget>
-    </vbox>
-</widget>
-<images>
-    <image name="image0">
-        <data format="PNG" length="209">89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000009849444154388db5d4cb1180200c0450e3580f056c49f6c0c91e2c690bb0213d7110123e417373c0371b3408c9e5cb5a3fd5fe00b79e4d006e6b8da40c83a98ef37a3dc73d147bbac0940208778ee6d57d86009a583798635aaba99a2d6b18490182faa1aa092dacf68e5893e2c1cc845e4c0567b0029cc5d4843398097ab1022429710fcb715ed50b6128e12caa4e4a9a044fdbe68fedad0767bd6302a986f8310000000049454e44ae426082</data>
-    </image>
-    <image name="image1">
-        <data format="PNG" length="461">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000019449444154388da593316b1b411046df86341764588104b75708e2224d4c50bb1748e18021977f18489bceed152e03b96b83c14d2ae36295c2e41624d81108c6857cc9099f0dc1d30cb3cb37f398fdd6344dc373e2c5b3d4c0cb615196a55a6b89313296cfbf9d63ad65cbd68c12d88925dc0454f5418e3172fae994555c3d4e103791ec28e3eb97063b77c8bac3cd1d1fab575c5d2ac6185495b66dc777602796b44e07e24e3a7e7cffc3db77e6effd300e1af404923a9c73a49de07287887075a9c44da458142c4f96fa24819b3b92086e661111f2dc21d2117eed77911d654f13ecc53922c2ebdc219270b329d7b7ad699ac6b46dfbf82ba475c2e539b28bb8dcd16d3ab6bb9fe6faf75e5496a50e35e33b10c1cd1ce97e324055550a60ad6579b2d4be1e27984de924914d32fac9755d9beaacd27013288a82baae8df75e477d9024319d64ac6e3b0cff1c1a42a058147dd618e34302630cef3f141cbf317c3e3b06a0691ad34f1e12a8ea6183fa627f18c2bd8d43c07baf00c5a2a0bea84d9fabaad2b66d8df99fefecbdd7819d8df75eef005295fc1dc06daa230000000049454e44ae426082</data>
-    </image>
-</images>
-<connections>
-    <connection>
-        <sender>buttonOk</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>Lancement()</slot>
-    </connection>
-    <connection>
-        <sender>buttonCancel</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>reject()</slot>
-    </connection>
-    <connection>
-        <sender>ListeComponant</sender>
-        <signal>activated(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>SetComponant()</slot>
-    </connection>
-    <connection>
-        <sender>ListeField</sender>
-        <signal>activated(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>SetError()</slot>
-    </connection>
-    <connection>
-        <sender>ListeIteration</sender>
-        <signal>activated(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>SetIter()</slot>
-    </connection>
-    <connection>
-        <sender>ListeMeshName</sender>
-        <signal>activated(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>SetMaillage()</slot>
-    </connection>
-    <connection>
-        <sender>NomFichier</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>SetNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>PRaf</sender>
-        <signal>valueChanged(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>ChangeRaf()</slot>
-    </connection>
-    <connection>
-        <sender>PRaf</sender>
-        <signal>valueChanged(int)</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>ChangeDeRaf()</slot>
-    </connection>
-    <connection>
-        <sender>PushFichier</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardPourLesNuls</receiver>
-        <slot>PushNomFichier()</slot>
-    </connection>
-</connections>
-<slots>
-    <slot>SetNomFichier()</slot>
-    <slot>PushNomFichier()</slot>
-    <slot>SetMaillage()</slot>
-    <slot>SetError()</slot>
-    <slot>SetComponant()</slot>
-    <slot>Lancement()</slot>
-    <slot>ChangeDeRaf()</slot>
-    <slot>SetIter()</slot>
-    <slot>ChangeRaf()</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
diff --git a/src/HOMARDGUI/ui/HomardRaffiUniforme.ui b/src/HOMARDGUI/ui/HomardRaffiUniforme.ui
deleted file mode 100644 (file)
index ac5b4b5..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>HomardRaffi</class>
-<widget class="QDialog">
-    <property name="name">
-        <cstring>HomardRaffi</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>533</width>
-            <height>206</height>
-        </rect>
-    </property>
-    <property name="caption">
-        <string>Uniform Refinement</string>
-    </property>
-    <property name="sizeGripEnabled">
-        <bool>true</bool>
-    </property>
-    <hbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="QLayoutWidget">
-            <property name="name">
-                <cstring>layout32</cstring>
-            </property>
-            <vbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QLayoutWidget">
-                    <property name="name">
-                        <cstring>layout49</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <widget class="QLabel">
-                            <property name="name">
-                                <cstring>lblCommande</cstring>
-                            </property>
-                            <property name="text">
-                                <string>MED File</string>
-                            </property>
-                        </widget>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer4</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="sizeHint">
-                                <size>
-                                    <width>120</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="QLayoutWidget">
-                            <property name="name">
-                                <cstring>layout48</cstring>
-                            </property>
-                            <hbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <widget class="QLayoutWidget">
-                                    <property name="name">
-                                        <cstring>layout26</cstring>
-                                    </property>
-                                    <hbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>PushFichier</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string></string>
-                                            </property>
-                                            <property name="pixmap">
-                                                <pixmap>image0</pixmap>
-                                            </property>
-                                        </widget>
-                                        <widget class="QLineEdit">
-                                            <property name="name">
-                                                <cstring>NomFichier</cstring>
-                                            </property>
-                                            <property name="minimumSize">
-                                                <size>
-                                                    <width>382</width>
-                                                    <height>21</height>
-                                                </size>
-                                            </property>
-                                        </widget>
-                                    </hbox>
-                                </widget>
-                                <widget class="QLabel">
-                                    <property name="name">
-                                        <cstring>lblTypeMesh</cstring>
-                                    </property>
-                                    <property name="text">
-                                        <string></string>
-                                    </property>
-                                    <property name="pixmap">
-                                        <pixmap>image1</pixmap>
-                                    </property>
-                                </widget>
-                            </hbox>
-                        </widget>
-                    </hbox>
-                </widget>
-                <spacer>
-                    <property name="name">
-                        <cstring>spacer15</cstring>
-                    </property>
-                    <property name="orientation">
-                        <enum>Vertical</enum>
-                    </property>
-                    <property name="sizeType">
-                        <enum>Expanding</enum>
-                    </property>
-                    <property name="sizeHint">
-                        <size>
-                            <width>21</width>
-                            <height>41</height>
-                        </size>
-                    </property>
-                </spacer>
-                <widget class="QLayoutWidget">
-                    <property name="name">
-                        <cstring>layout31</cstring>
-                    </property>
-                    <hbox>
-                        <property name="name">
-                            <cstring>unnamed</cstring>
-                        </property>
-                        <spacer>
-                            <property name="name">
-                                <cstring>spacer20</cstring>
-                            </property>
-                            <property name="orientation">
-                                <enum>Horizontal</enum>
-                            </property>
-                            <property name="sizeType">
-                                <enum>Expanding</enum>
-                            </property>
-                            <property name="sizeHint">
-                                <size>
-                                    <width>104</width>
-                                    <height>20</height>
-                                </size>
-                            </property>
-                        </spacer>
-                        <widget class="QLayoutWidget">
-                            <property name="name">
-                                <cstring>layout29</cstring>
-                            </property>
-                            <vbox>
-                                <property name="name">
-                                    <cstring>unnamed</cstring>
-                                </property>
-                                <spacer>
-                                    <property name="name">
-                                        <cstring>spacer19</cstring>
-                                    </property>
-                                    <property name="orientation">
-                                        <enum>Vertical</enum>
-                                    </property>
-                                    <property name="sizeType">
-                                        <enum>Expanding</enum>
-                                    </property>
-                                    <property name="sizeHint">
-                                        <size>
-                                            <width>20</width>
-                                            <height>29</height>
-                                        </size>
-                                    </property>
-                                </spacer>
-                                <widget class="QGroupBox">
-                                    <property name="name">
-                                        <cstring>groupBox2</cstring>
-                                    </property>
-                                    <property name="title">
-                                        <string></string>
-                                    </property>
-                                    <hbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <widget class="QLayoutWidget">
-                                            <property name="name">
-                                                <cstring>layout34</cstring>
-                                            </property>
-                                            <hbox>
-                                                <property name="name">
-                                                    <cstring>unnamed</cstring>
-                                                </property>
-                                                <widget class="QLabel">
-                                                    <property name="name">
-                                                        <cstring>lblMesh</cstring>
-                                                    </property>
-                                                    <property name="text">
-                                                        <string>Mesh</string>
-                                                    </property>
-                                                </widget>
-                                                <spacer>
-                                                    <property name="name">
-                                                        <cstring>spacer5</cstring>
-                                                    </property>
-                                                    <property name="orientation">
-                                                        <enum>Horizontal</enum>
-                                                    </property>
-                                                    <property name="sizeType">
-                                                        <enum>Expanding</enum>
-                                                    </property>
-                                                    <property name="sizeHint">
-                                                        <size>
-                                                            <width>70</width>
-                                                            <height>20</height>
-                                                        </size>
-                                                    </property>
-                                                </spacer>
-                                                <widget class="QComboBox">
-                                                    <property name="name">
-                                                        <cstring>ListeMeshName</cstring>
-                                                    </property>
-                                                    <property name="minimumSize">
-                                                        <size>
-                                                            <width>350</width>
-                                                            <height>31</height>
-                                                        </size>
-                                                    </property>
-                                                </widget>
-                                            </hbox>
-                                        </widget>
-                                    </hbox>
-                                </widget>
-                                <spacer>
-                                    <property name="name">
-                                        <cstring>spacer18</cstring>
-                                    </property>
-                                    <property name="orientation">
-                                        <enum>Vertical</enum>
-                                    </property>
-                                    <property name="sizeType">
-                                        <enum>Expanding</enum>
-                                    </property>
-                                    <property name="sizeHint">
-                                        <size>
-                                            <width>20</width>
-                                            <height>41</height>
-                                        </size>
-                                    </property>
-                                </spacer>
-                                <widget class="QLayoutWidget">
-                                    <property name="name">
-                                        <cstring>Layout1</cstring>
-                                    </property>
-                                    <hbox>
-                                        <property name="name">
-                                            <cstring>unnamed</cstring>
-                                        </property>
-                                        <property name="margin">
-                                            <number>0</number>
-                                        </property>
-                                        <property name="spacing">
-                                            <number>6</number>
-                                        </property>
-                                        <spacer>
-                                            <property name="name">
-                                                <cstring>Horizontal Spacing2</cstring>
-                                            </property>
-                                            <property name="orientation">
-                                                <enum>Horizontal</enum>
-                                            </property>
-                                            <property name="sizeType">
-                                                <enum>Expanding</enum>
-                                            </property>
-                                            <property name="sizeHint">
-                                                <size>
-                                                    <width>20</width>
-                                                    <height>0</height>
-                                                </size>
-                                            </property>
-                                        </spacer>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>buttonOk</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string>Refine</string>
-                                            </property>
-                                            <property name="accel">
-                                                <string></string>
-                                            </property>
-                                            <property name="autoDefault">
-                                                <bool>true</bool>
-                                            </property>
-                                            <property name="default">
-                                                <bool>true</bool>
-                                            </property>
-                                        </widget>
-                                        <widget class="QPushButton">
-                                            <property name="name">
-                                                <cstring>buttonCancel</cstring>
-                                            </property>
-                                            <property name="text">
-                                                <string>&amp;Cancel</string>
-                                            </property>
-                                            <property name="accel">
-                                                <string></string>
-                                            </property>
-                                            <property name="autoDefault">
-                                                <bool>true</bool>
-                                            </property>
-                                        </widget>
-                                    </hbox>
-                                </widget>
-                            </vbox>
-                        </widget>
-                    </hbox>
-                </widget>
-            </vbox>
-        </widget>
-    </hbox>
-</widget>
-<images>
-    <image name="image0">
-        <data format="PNG" length="209">89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000009849444154388db5d4cb1180200c0450e3580f056c49f6c0c91e2c690bb0213d7110123e417373c0371b3408c9e5cb5a3fd5fe00b79e4d006e6b8da40c83a98ef37a3dc73d147bbac0940208778ee6d57d86009a583798635aaba99a2d6b18490182faa1aa092dacf68e5893e2c1cc845e4c0567b0029cc5d4843398097ab1022429710fcb715ed50b6128e12caa4e4a9a044fdbe68fedad0767bd6302a986f8310000000049454e44ae426082</data>
-    </image>
-    <image name="image1">
-        <data format="PNG" length="461">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000019449444154388da593316b1b411046df86341764588104b75708e2224d4c50bb1748e18021977f18489bceed152e03b96b83c14d2ae36295c2e41624d81108c6857cc9099f0dc1d30cb3cb37f398fdd6344dc373e2c5b3d4c0cb615196a55a6b89313296cfbf9d63ad65cbd68c12d88925dc0454f5418e3172fae994555c3d4e103791ec28e3eb97063b77c8bac3cd1d1fab575c5d2ac6185495b66dc777602796b44e07e24e3a7e7cffc3db77e6effd300e1af404923a9c73a49de07287887075a9c44da458142c4f96fa24819b3b92086e661111f2dc21d2117eed77911d654f13ecc53922c2ebdc219270b329d7b7ad699ac6b46dfbf82ba475c2e539b28bb8dcd16d3ab6bb9fe6faf75e5496a50e35e33b10c1cd1ce97e324055550a60ad6579b2d4be1e27984de924914d32fac9755d9beaacd27013288a82baae8df75e477d9024319d64ac6e3b0cff1c1a42a058147dd618e34302630cef3f141cbf317c3e3b06a0691ad34f1e12a8ea6183fa627f18c2bd8d43c07baf00c5a2a0bea84d9fabaad2b66d8df99fefecbdd7819d8df75eef005295fc1dc06daa230000000049454e44ae426082</data>
-    </image>
-</images>
-<connections>
-    <connection>
-        <sender>NomFichier</sender>
-        <signal>returnPressed()</signal>
-        <receiver>HomardRaffi</receiver>
-        <slot>SetNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>buttonOk</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardRaffi</receiver>
-        <slot>Lancement()</slot>
-    </connection>
-    <connection>
-        <sender>buttonCancel</sender>
-        <signal>clicked()</signal>
-        <receiver>HomardRaffi</receiver>
-        <slot>close()</slot>
-    </connection>
-    <connection>
-        <sender>PushFichier</sender>
-        <signal>pressed()</signal>
-        <receiver>HomardRaffi</receiver>
-        <slot>PushNomFichier()</slot>
-    </connection>
-    <connection>
-        <sender>ListeMeshName</sender>
-        <signal>activated(const QString&amp;)</signal>
-        <receiver>HomardRaffi</receiver>
-        <slot>SetMaillage()</slot>
-    </connection>
-</connections>
-<slots>
-    <slot>Lancement()</slot>
-    <slot>SetNomFichier()</slot>
-    <slot>SetMaillage()</slot>
-    <slot>PushNomFichier()</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
index aa3dbdf8faa6358d6f9c6892c48b04b3dca7c69d..c483fe57dbd0ac6177cfa5192916671dea1e5e27 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Boundary_i.hxx"
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Boundary.hxx"
@@ -114,21 +133,6 @@ void HOMARD_Boundary_i::SetCylinder( double X0, double X1, double X2, double X3,
   ASSERT( myHomardBoundary );
   myHomardBoundary->SetCylinder( X0, X1, X2, X3, X4, X5, X6 );
 }
-
-//=============================================================================
-HOMARD::double_array* HOMARD_Boundary_i::GetCylinder()
-{
-  ASSERT( myHomardBoundary );
-  HOMARD::double_array_var aResult = new HOMARD::double_array();
-  std::vector<double> mesCoor = myHomardBoundary->GetCylinder();
-  aResult->length( mesCoor .size() );
-  std::vector<double>::const_iterator it;
-  int i = 0;
-  for ( it = mesCoor.begin(); it != mesCoor.end(); it++ )
-    aResult[i++] = (*it);
-  return aResult._retn();
-}
-
 //=============================================================================
 void HOMARD_Boundary_i::SetSphere( double Xcentre, double Ycentre, double ZCentre, double rayon )
 {
@@ -137,11 +141,11 @@ void HOMARD_Boundary_i::SetSphere( double Xcentre, double Ycentre, double ZCentr
 }
 
 //=============================================================================
-HOMARD::double_array* HOMARD_Boundary_i::GetSphere()
+HOMARD::double_array* HOMARD_Boundary_i::GetCoords()
 {
   ASSERT( myHomardBoundary );
   HOMARD::double_array_var aResult = new HOMARD::double_array();
-  std::vector<double> mesCoor = myHomardBoundary->GetSphere();
+  std::vector<double> mesCoor = myHomardBoundary->GetCoords();
   aResult->length( mesCoor .size() );
   std::vector<double>::const_iterator it;
   int i = 0;
index 081753e2c03e41c49d1235ae07cb7d85256cb1db..c048c9f46683c0a6866efa4714222702fc3cec45 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_Boundary_I_HXX_
 #define _HOMARD_Boundary_I_HXX_
 
 #include CORBA_SERVER_HEADER(HOMARD_Gen)
 #include CORBA_SERVER_HEADER(HOMARD_Boundary)
 
+#include "SALOME_Component_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
 #include <string>
 
 class HOMARD_Boundary;
 
-class HOMARD_Boundary_i: public virtual POA_HOMARD::HOMARD_Boundary,
-                         public virtual PortableServer::ServantBase
-{ 
+class HOMARD_Boundary_i:
+  public virtual Engines_Component_i,
+  public virtual POA_HOMARD::HOMARD_Boundary,
+  public virtual PortableServer::ServantBase
+{
 public:
   HOMARD_Boundary_i( CORBA::ORB_ptr orb, HOMARD::HOMARD_Gen_var gen_i );
   HOMARD_Boundary_i();
-  
+
   virtual ~HOMARD_Boundary_i();
 
   void                   SetName( const char* NomBoundary );
   char*                  GetName();
   char*                  GetDumpPython();
-  
+
   void                   SetBoundaryType( CORBA::Long BoundaryType );
-  
+
   CORBA::Long            GetBoundaryType();
 
   void                   SetMeshFile( const char* MeshFile );
@@ -31,20 +56,18 @@ public:
 
   void                   SetMeshName( const char* MeshName );
   char*                  GetMeshName();
-  
-  HOMARD::double_array*  GetCylinder();
+
   void                   SetCylinder( double Xcentre, double Ycentre, double ZCentre,
                                       double Xaxe, double Yaxe, double Zaxe,
                                       double rayon );
-  
-  HOMARD::double_array*  GetSphere();
   void                   SetSphere( double Xcentre, double Ycentre, double ZCentre,
                                     double rayon );
-  
+  HOMARD::double_array*  GetCoords();
+
   HOMARD::double_array*  GetLimit();
   void                   SetLimit( double Xincr, double Yincr, double Zincr);
-  
-  
+
+
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );
 
@@ -58,7 +81,7 @@ public:
 
 private:
   ::HOMARD_Boundary*     myHomardBoundary;
-  
+
   CORBA::ORB_ptr         _orb;
   HOMARD::HOMARD_Gen_var _gen_i;
 };
index 96dc2ea753ea177519c183dd72c2b22ce8e2a3c7..7d75ff308a95aeca18a7ed1ca4d9d43bc1b062df 100755 (executable)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Cas_i.hxx"
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Cas.hxx"
@@ -146,7 +165,7 @@ void HOMARD_Cas_i::SetBoundingBox( const HOMARD::extrema& LesExtrema )
   {
     VExtrema[i] = LesExtrema[i];
   }
-  
+
   myHomardCas->SetBoundingBox( VExtrema );
 }
 //=============================================================================
@@ -186,14 +205,14 @@ HOMARD::ListGroupType* HOMARD_Cas_i::GetGroups()
 //=============================================================================
 void HOMARD_Cas_i::AddBoundaryGroup( const char* Boundary, const char* Group)
 {
-  MESSAGE ("Dans AddBoundaryGroup");
+  MESSAGE ("AddBoundaryGroup");
   ASSERT( myHomardCas );
   myHomardCas->AddBoundaryGroup( Boundary, Group );
 }
 //=============================================================================
 HOMARD::ListBoundaryGroupType* HOMARD_Cas_i::GetBoundaryGroup()
 {
-  MESSAGE ("Dans GetBoundaryGroup");
+  MESSAGE ("GetBoundaryGroup");
   ASSERT(myHomardCas );
   const std::list<std::string>& ListString = myHomardCas->GetBoundaryGroup();
   HOMARD::ListBoundaryGroupType_var aResult = new HOMARD::ListBoundaryGroupType();
@@ -207,6 +226,20 @@ HOMARD::ListBoundaryGroupType* HOMARD_Cas_i::GetBoundaryGroup()
   return aResult._retn();
 }
 
+//=============================================================================
+void HOMARD_Cas_i::SetPyram( CORBA::Long Pyram )
+{
+  MESSAGE ("SetPyram, Pyram = " << Pyram );
+  ASSERT( myHomardCas );
+  myHomardCas->SetPyram( Pyram );
+}
+//=============================================================================
+CORBA::Long HOMARD_Cas_i::GetPyram()
+{
+  MESSAGE ("GetPyram");
+  ASSERT( myHomardCas );
+  return myHomardCas->GetPyram();
+}
 //=============================================================================
 std::string HOMARD_Cas_i::Dump() const
 {
index fc19e9f0a9195a4f0d96ddd1dc9c0e2d91cf3042..3c7a2007a844da9bdb57baf0fa190c5c8c1aacb4 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_CAS_I_HXX_
 #define _HOMARD_CAS_I_HXX_
 
 #include CORBA_SERVER_HEADER(HOMARD_Gen)
 #include CORBA_SERVER_HEADER(HOMARD_Cas)
 
+#include "SALOME_Component_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
 #include <string>
 
 class HOMARD_Cas;
 
-class HOMARD_Cas_i: public virtual POA_HOMARD::HOMARD_Cas,
-                   public virtual PortableServer::ServantBase
+class HOMARD_Cas_i:
+  public virtual Engines_Component_i,
+  public virtual POA_HOMARD::HOMARD_Cas,
+  public virtual PortableServer::ServantBase
 {
 public:
   HOMARD_Cas_i( CORBA::ORB_ptr orb, HOMARD::HOMARD_Gen_var gen_i );
@@ -40,6 +65,9 @@ public:
   HOMARD::ListBoundaryGroupType*  GetBoundaryGroup();
   void                   AddBoundaryGroup( const char* Boundary, const char* Group);
 
+  void                   SetPyram( CORBA::Long Pyram );
+  CORBA::Long            GetPyram();
+
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );
 
index cc2ac949bde9ea684f8508aaa001b8700d0c380d..9415aa68d141f8176c5f2c7846ecac788cba3646 100755 (executable)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Cas_i.hxx"
 #include "HOMARD_Hypothesis_i.hxx"
 
 using  namespace std;
 
+//=======================================================================
+//function : RemoveTabulation
+//purpose  :
+//=======================================================================
+std::string RemoveTabulation( std::string theScript )
+{
+  std::string::size_type aPos = 0;
+  while( aPos < theScript.length() )
+  {
+    aPos = theScript.find( "\n\t", aPos );
+    if( aPos == std::string::npos )
+      break;
+    theScript.replace( aPos, 2, "\n" );
+    aPos++;
+  }
+  return theScript;
+}
+
 //=============================================================================
 /*!
  *  standard constructor
  */
 //=============================================================================
-HOMARD_Gen_i::HOMARD_Gen_i(CORBA::ORB_ptr orb,
-                          PortableServer::POA_ptr poa,
-                          PortableServer::ObjectId * contId, 
-                          const char *instanceName, 
-                          const char *interfaceName) :
-  Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
-{
-  MESSAGE("activate object");
+HOMARD_Gen_i::HOMARD_Gen_i( CORBA::ORB_ptr orb,
+                            PortableServer::POA_ptr poa,
+                            PortableServer::ObjectId * contId,
+                            const char *instanceName,
+                            const char *interfaceName) :
+Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
+{
+  MESSAGE("constructor");
   _thisObj = this;
   _id = _poa->activate_object(_thisObj);
 
@@ -63,15 +100,15 @@ HOMARD_Gen_i::~HOMARD_Gen_i()
 }
 //=============================================================================
 /*!
- *  Ajoute le composant homard dans l etude si necessaire 
+ *  Ajoute le composant homard dans l etude si necessaire
  */
 //=============================================================================
 void HOMARD_Gen_i::addInStudy(SALOMEDS::Study_ptr theStudy)
 {
   ASSERT(!CORBA::is_nil(theStudy));
-  MESSAGE("addInStudy: current study ID = " << GetCurrentStudyID());
+  MESSAGE("addInStudy: ajout eventuel du composant HOMARD dans current study ID = " << GetCurrentStudyID()) ;
   SALOMEDS::StudyBuilder_var myBuilder = theStudy->NewBuilder();
+
   // Create SComponent labelled 'homard' if it doesn't already exit
   SALOMEDS::SComponent_var homardFather = theStudy->FindComponent(ComponentDataType());
   if (CORBA::is_nil(homardFather))
@@ -81,15 +118,15 @@ void HOMARD_Gen_i::addInStudy(SALOMEDS::Study_ptr theStudy)
 
     bool aLocked = theStudy->GetProperties()->IsLocked();
     if (aLocked) theStudy->GetProperties()->SetLocked(false);
-    
+
     homardFather = myBuilder->NewComponent(ComponentDataType());
     SALOMEDS::GenericAttribute_var anAttr = myBuilder->FindOrCreateAttribute(homardFather,"AttributeName");
     SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
     CORBA::Object_var objVarN = _NS->Resolve("/Kernel/ModulCatalog");
-    SALOME_ModuleCatalog::ModuleCatalog_var Catalogue = 
+    SALOME_ModuleCatalog::ModuleCatalog_var Catalogue =
                 SALOME_ModuleCatalog::ModuleCatalog::_narrow(objVarN);
     SALOME_ModuleCatalog::Acomponent_var Comp = Catalogue->GetComponent(ComponentDataType());
-    if (!Comp->_is_nil()) 
+    if (!Comp->_is_nil())
     {
       aName->SetValue(ComponentDataType());
     }
@@ -126,7 +163,7 @@ SALOMEDS::Study_ptr HOMARD_Gen_i::GetCurrentStudy()
 }
 
 //=============================================================================
-int HOMARD_Gen_i::GetCurrentStudyID()
+CORBA::Long HOMARD_Gen_i::GetCurrentStudyID()
 //=============================================================================
 {
   return myCurrentStudy->_is_nil() ? -1 : myCurrentStudy->StudyId();
@@ -135,15 +172,8 @@ int HOMARD_Gen_i::GetCurrentStudyID()
 //=============================================================================
 void HOMARD_Gen_i::AssociateCaseIter(const char* nomCas, const char* nomIter, const char* labelIter)
 {
-  MESSAGE( "AssociateCaseIter " << nomCas << " ," << nomIter << ","  << labelIter );
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return ;
-  };
+  MESSAGE( "AssociateCaseIter : " << nomCas << " ," << nomIter << ","  << labelIter );
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Cas_var myCase = myContextMap[GetCurrentStudyID()]._mesCas[nomCas];
   if (CORBA::is_nil(myCase))
@@ -178,7 +208,7 @@ void HOMARD_Gen_i::AssociateCaseIter(const char* nomCas, const char* nomIter, co
 
   aStudyBuilder->NewCommand();
   SALOMEDS::SObject_var newStudyIter = aStudyBuilder->NewObject(aCasSO);
-  PublishInStudyAttr(aStudyBuilder, newStudyIter, nomIter , labelIter, 
+  PublishInStudyAttr(aStudyBuilder, newStudyIter, nomIter , labelIter,
                      "iter_non_calculee.png", _orb->object_to_string(myIteration)) ;
   aStudyBuilder->CommitCommand();
 
@@ -187,10 +217,10 @@ void HOMARD_Gen_i::AssociateCaseIter(const char* nomCas, const char* nomIter, co
 }
 
 //=====================================================================================
-void HOMARD_Gen_i::SetEtatIter(const char* nomIter, const bool EtatCalcul)
+void HOMARD_Gen_i::SetEtatIter(const char* nomIter, const CORBA::Boolean EtatCalcul)
 //=====================================================================================
 {
-  MESSAGE( "SetEtatIter, nomIter  = " << nomIter << " etat " << EtatCalcul );
+  MESSAGE( "SetEtatIter : nomIter  = " << nomIter << " etat " << EtatCalcul );
   HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[nomIter];
   if (CORBA::is_nil(myIteration))
   {
@@ -215,21 +245,50 @@ void HOMARD_Gen_i::SetEtatIter(const char* nomIter, const bool EtatCalcul)
   };
 
   int number = myIteration->GetNumber() ;
-  if ( number == 0 )  
-      PublishInStudyAttr(aStudyBuilder, aIterSO, NULL , NULL, "iter0.png", NULL) ;
-  else if (EtatCalcul) 
-      PublishInStudyAttr(aStudyBuilder, aIterSO, NULL, NULL, "iter_calculee.png", NULL) ;
-  else                 
-      PublishInStudyAttr(aStudyBuilder, aIterSO, NULL, NULL, "iter_non_calculee.png", NULL) ;
+  const char* icone ;
+  if ( number == 0 )
+    icone = "iter0.png" ;
+  else if (EtatCalcul)
+    icone = "iter_calculee.png" ;
+  else
+    icone = "iter_non_calculee.png" ;
+  PublishInStudyAttr(aStudyBuilder, aIterSO, NULL , NULL, icone, NULL) ;
 
   aStudyBuilder->CommitCommand();
 
 }
 //=====================================================================================
+void HOMARD_Gen_i::InvalideBoundary(const char* BoundaryName)
+//=====================================================================================
+{
+  MESSAGE( "InvalideBoundary : BoundaryName    = " << BoundaryName  );
+  HOMARD::HOMARD_Boundary_var myBoundary = myContextMap[GetCurrentStudyID()]._mesBoundarys[BoundaryName];
+  if (CORBA::is_nil(myBoundary))
+  {
+      SALOME::ExceptionStruct es;
+      es.type = SALOME::BAD_PARAM;
+      es.text = "Invalid Boundary ";
+      throw SALOME::SALOME_Exception(es);
+      return ;
+  };
+  SALOME::ExceptionStruct es;
+  es.type = SALOME::BAD_PARAM;
+  es.text = "No change is allowed in boundary. Ask for evolution.";
+  throw SALOME::SALOME_Exception(es);
+  return ;
+/*  HOMARD::listeHypo* maListe = myBoundary->GetHypo();
+  int numberOfHypo = maListe->length();
+  for (int NumeHypo = 0; NumeHypo< numberOfHypo; NumeHypo++)
+  {
+      std::string nomHypo = std::string((*maListe)[NumeHypo]);
+      InvalideHypo(nomHypo.c_str());
+  }*/
+}
+//=====================================================================================
 void HOMARD_Gen_i::InvalideZone(const char* ZoneName)
 //=====================================================================================
 {
-  MESSAGE( "InvalideZone, ZoneName    = " << ZoneName  );
+  MESSAGE( "InvalideZone : ZoneName    = " << ZoneName  );
   HOMARD::HOMARD_Zone_var myZone = myContextMap[GetCurrentStudyID()]._mesZones[ZoneName];
   if (CORBA::is_nil(myZone))
   {
@@ -251,7 +310,7 @@ void HOMARD_Gen_i::InvalideZone(const char* ZoneName)
 void HOMARD_Gen_i::InvalideHypo(const char* nomHypo)
 //=====================================================================================
 {
-  MESSAGE( "InvalideHypo, nomHypo    = " << nomHypo  );
+  MESSAGE( "InvalideHypo : nomHypo    = " << nomHypo  );
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypo];
   if (CORBA::is_nil(myHypo))
   {
@@ -275,7 +334,7 @@ void HOMARD_Gen_i::InvalideHypo(const char* nomHypo)
 void HOMARD_Gen_i::InvalideIter(const char* nomIter)
 //=====================================================================================
 {
-  MESSAGE("InvalideIter, nomIter    = " << nomIter);
+  MESSAGE("InvalideIter : nomIter    = " << nomIter);
   SetEtatIter(nomIter,false);
   HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[nomIter];
   if (CORBA::is_nil(myIteration))
@@ -297,7 +356,7 @@ void HOMARD_Gen_i::InvalideIter(const char* nomIter)
 
   SALOMEDS::SObject_var aIterSO = SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(myIteration)));
   SALOMEDS::ChildIterator_var  aIter = myCurrentStudy->NewChildIterator(aIterSO);
-  for (; aIter->More(); aIter->Next()) 
+  for (; aIter->More(); aIter->Next())
   {
       SALOMEDS::SObject_var so = aIter->Value();
       SALOMEDS::GenericAttribute_var anAttr;
@@ -337,18 +396,10 @@ void HOMARD_Gen_i::InvalideIter(const char* nomIter)
 }
 //
 //=====================================================================================
-void HOMARD_Gen_i::AssociateHypoZone(const char* ZoneName, const char* nomHypothesis)
+void HOMARD_Gen_i::AssociateHypoZone(const char* nomHypothesis, const char* ZoneName, CORBA::Long TypeUse)
 {
-  MESSAGE ( " AssociateHypoZone, ZoneName= " << ZoneName << ", nomHypo = " << nomHypothesis);
-
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return ;
-  };
+  MESSAGE ( "AssociateHypoZone : nomHypo = " << nomHypothesis << ", ZoneName= " << ZoneName << ", TypeUse = " << TypeUse);
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypothesis];
   ASSERT(!CORBA::is_nil(myHypo));
@@ -367,22 +418,15 @@ void HOMARD_Gen_i::AssociateHypoZone(const char* ZoneName, const char* nomHypoth
   aStudyBuilder->CommitCommand();
 
   myZone->AddHypo(nomHypothesis);
-  myHypo->AddZone(ZoneName);
+  myHypo->AddZone(ZoneName, TypeUse);
+  MESSAGE ( "Fin de AssociateHypoZone");
 };
 
 //=====================================================================================
 void HOMARD_Gen_i::DissociateHypoZone(const char* ZoneName, const char* nomHypothesis)
 {
-  MESSAGE ( " DissociateHypoZone, ZoneName= " << ZoneName << ", nomHypo = " << nomHypothesis);
-
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return ;
-  };
+  MESSAGE ( "DissociateHypoZone : ZoneName= " << ZoneName << ", nomHypo = " << nomHypothesis);
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypothesis];
   ASSERT(!CORBA::is_nil(myHypo));
@@ -402,7 +446,7 @@ void HOMARD_Gen_i::DissociateHypoZone(const char* ZoneName, const char* nomHypot
   {
     SALOMEDS::SObject_var aHypObj = it->Value();
     SALOMEDS::SObject_var ptrObj;
-    if (aHypObj->ReferencedObject(ptrObj)) 
+    if (aHypObj->ReferencedObject(ptrObj))
     {
       if (std::string(ptrObj->GetName()) == std::string(aZoneSO->GetName()))
       {
@@ -421,15 +465,8 @@ void HOMARD_Gen_i::DissociateHypoZone(const char* ZoneName, const char* nomHypot
 //=============================================================================
 void HOMARD_Gen_i::AssociateIterIter(const char* nomIterParent, const char* nomIter)
 {
-  MESSAGE ( "AssociateIterIter, nomIter       = " << nomIter << " nomIterParent = " << nomIterParent);
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return ;
-  };
+  MESSAGE ( "AssociateIterIter : nomIter       = " << nomIter << " nomIterParent = " << nomIterParent);
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Iteration_var myIterationParent = myContextMap[GetCurrentStudyID()]._mesIterations[nomIterParent];
   ASSERT(!CORBA::is_nil(myIterationParent));
@@ -443,16 +480,8 @@ void HOMARD_Gen_i::AssociateIterIter(const char* nomIterParent, const char* nomI
 //===================================================================================
 void HOMARD_Gen_i::AssociateIterHypo(const char* nomIter, const char* nomHypo)
 {
-  MESSAGE("AssociateIterHypo, nomHypo = " << nomHypo << " nomIter = " << nomIter);
-
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return ;
-  };
+  MESSAGE("AssociateIterHypo : nomHypo = " << nomHypo << " nomIter = " << nomIter);
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypo];
   ASSERT(!CORBA::is_nil(myHypo));
@@ -472,7 +501,7 @@ void HOMARD_Gen_i::AssociateIterHypo(const char* nomIter, const char* nomHypo)
   aStudyBuilder->Addreference(aSubSO, aHypoSO);
 
   aStudyBuilder->CommitCommand();
-  
+
   myIteration->SetHypoName(nomHypo);
   myHypo->AddIteration(nomIter);
 };
@@ -490,17 +519,10 @@ CORBA::Boolean HOMARD_Gen_i::VerifieDir(const char* nomDir)
 }
 
 //=============================================================================
-HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char* MeshName, const char* FileName)
+HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char* MeshName, const char* MeshFile)
 {
-  MESSAGE ( "CreateCase, nomCas   = " << nomCas << "MeshName = " << MeshName );
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ( "CreateCase : nomCas = " << nomCas << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
+  IsValidStudy () ;
 
   if ((myContextMap[GetCurrentStudyID()]._mesCas).find(nomCas)!=(myContextMap[GetCurrentStudyID()]._mesCas).end())
   {
@@ -518,15 +540,15 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char*
   myContextMap[GetCurrentStudyID()]._mesCas[nomCas] = myCase;
 
 
-  std::vector<double> LesExtremes =GetBoundingBoxInMedFile(FileName);
+  std::vector<double> LesExtremes =GetBoundingBoxInMedFile(MeshFile);
   HOMARD::extrema_var aSeq = new HOMARD::extrema();
-  if (LesExtremes.size()!=10) { return false; } 
+  if (LesExtremes.size()!=10) { return false; }
   aSeq->length(10);
   for (int i =0; i< LesExtremes.size(); i++)
        aSeq[i]=LesExtremes[i];
   myCase->SetBoundingBox(aSeq);
 
-  std::set<std::string> LesGroupes  =GetListeGroupesInMedFile(FileName);
+  std::set<std::string> LesGroupes  =GetListeGroupesInMedFile(MeshFile);
   HOMARD::ListGroupType_var aSeqGroupe = new HOMARD::ListGroupType;
   aSeqGroupe->length(LesGroupes.size());
   std::set<std::string>::const_iterator it;
@@ -554,14 +576,17 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char*
 
   anIter->SetDirName(DirName.str().c_str());
   anIter->SetName(nomIter.c_str());
-  anIter->SetMeshFile(FileName);
+  anIter->SetMeshFile(MeshFile);
   anIter->SetMeshName(MeshName);
   anIter->SetNumber(0);
 
   AssociateCaseIter (nomCas,nomIter.c_str(),"IterationHomard");
   SetEtatIter(nomIter.c_str(),true);
 //
-  PublishResultInSmesh(FileName, 0);
+  PublishResultInSmesh(MeshFile, 0);
+
+// Valeurs par defaut des filtrages
+  myCase->SetPyram(0);
 
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
@@ -569,14 +594,7 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* nomCas, const char*
 //=============================================================================
 HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::GetCas(const char* nomCas)
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  IsValidStudy () ;
   HOMARD::HOMARD_Cas_var myCase = myContextMap[GetCurrentStudyID()]._mesCas[nomCas];
   if (CORBA::is_nil(myCase))
   {
@@ -586,20 +604,14 @@ HOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::GetCas(const char* nomCas)
       throw SALOME::SALOME_Exception(es);
       return 0;
   };
+
   return HOMARD::HOMARD_Cas::_duplicate(myCase);
 }
 
 //=============================================================================
 HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::GetZone(const char* ZoneName)
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  IsValidStudy () ;
   HOMARD::HOMARD_Zone_var myZone = myContextMap[GetCurrentStudyID()]._mesZones[ZoneName];
   ASSERT(!CORBA::is_nil(myZone));
   return HOMARD::HOMARD_Zone::_duplicate(myZone);
@@ -608,15 +620,9 @@ HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::GetZone(const char* ZoneName)
 //=============================================================================
 HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::GetHypothesis(const char* nomHypothesis)
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
-
+  MESSAGE ( "GetHypothesis : nomHypothesis = " << nomHypothesis );
+  IsValidStudy () ;
+  MESSAGE ( "GetHypothesis : GetCurrentStudyID() = " << GetCurrentStudyID() );
   HOMARD::HOMARD_Hypothesis_var myHypothesis = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypothesis];
   ASSERT(!CORBA::is_nil(myHypothesis));
   return HOMARD::HOMARD_Hypothesis::_duplicate(myHypothesis);
@@ -625,14 +631,7 @@ HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::GetHypothesis(const char* nomHypothe
 //=============================================================================
 HOMARD::HOMARD_Iteration_ptr  HOMARD_Gen_i::GetIteration(const char* nomIteration)
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  IsValidStudy () ;
   HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[nomIteration];
   ASSERT(!CORBA::is_nil(myIteration));
   return HOMARD::HOMARD_Iteration::_duplicate(myIteration);
@@ -640,14 +639,7 @@ HOMARD::HOMARD_Iteration_ptr  HOMARD_Gen_i::GetIteration(const char* nomIteratio
 //=============================================================================
 HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::GetBoundary(const char* nomBoundary)
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Boundary_var myBoundary = myContextMap[GetCurrentStudyID()]._mesBoundarys[nomBoundary];
   ASSERT(!CORBA::is_nil(myBoundary));
@@ -657,15 +649,8 @@ HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::GetBoundary(const char* nomBoundary)
 //=============================================================================
 HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::CreateHypothesis(const char* nomHypothesis)
 {
-  MESSAGE ( "CreateHypothesis, nomHypothesis  = " << nomHypothesis );
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ( "CreateHypothesis : nomHypothesis  = " << nomHypothesis );
+  IsValidStudy () ;
 
   if ((myContextMap[GetCurrentStudyID()]._mesHypotheses).find(nomHypothesis) != (myContextMap[GetCurrentStudyID()]._mesHypotheses).end())
   {
@@ -682,6 +667,11 @@ HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::CreateHypothesis(const char* nomHypo
   SALOMEDS::SObject_var aSO;
   PublishInStudy(myCurrentStudy, aSO, myHypothesis, nomHypothesis);
 
+// Valeurs par defaut des options avancees
+  myHypothesis->SetNivMax(-1);
+  myHypothesis->SetDiamMin(-1.0);
+  myHypothesis->SetAdapInit(0);
+
   return HOMARD::HOMARD_Hypothesis::_duplicate(myHypothesis);
 }
 
@@ -689,15 +679,8 @@ HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::CreateHypothesis(const char* nomHypo
 HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* nomIteration, const char* nomIterParent)
 //============================================================================================================
 {
-  MESSAGE ("CreateIteration, nomIteration  = " << nomIteration << "nomIterParent = " << nomIterParent);
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ("CreateIteration : nomIteration  = " << nomIteration << "nomIterParent = " << nomIterParent);
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Iteration_var myIterationParent = myContextMap[GetCurrentStudyID()]._mesIterations[nomIterParent];
   if (CORBA::is_nil(myIterationParent))
@@ -710,7 +693,7 @@ HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* nomIterat
   };
 
   const char* nomCas = GetCaseName(nomIterParent);
-  MESSAGE ("CreateIteration, nomCas = " << nomCas);
+  MESSAGE ("CreateIteration : nomCas = " << nomCas);
   HOMARD::HOMARD_Cas_var myCase = myContextMap[GetCurrentStudyID()]._mesCas[nomCas];
   if (CORBA::is_nil(myCase))
   {
@@ -761,10 +744,10 @@ HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* nomIterat
 // cas le plus frequent.
 // Si on a plusieurs branches, donc des iterations a meme niveau d'adaptation, utiliser
 // le nombre d'iterations du cas permet d'eviter les collisions.
-   std::stringstream FileName;
+   std::stringstream MeshFile;
    const char* nomDir = myCase->GetDirName();
-   FileName << nomDir << "/maill." << iaux.str() << ".med";
-   myIteration->SetMeshFile(FileName.str().c_str());
+   MeshFile << nomDir << "/maill." << iaux.str() << ".med";
+   myIteration->SetMeshFile(MeshFile.str().c_str());
 
 // Association avec le cas et l'iteration precedente
    std::string label = "IterationHomard_" + std::string(nomIterParent);
@@ -778,15 +761,8 @@ HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* nomIterat
 //=============================================================================
 HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundary(const char* BoundaryName, CORBA::Long BoundaryType)
 {
-  MESSAGE ("BoundaryName  = " << BoundaryName << ", BoundaryType = " << BoundaryType);
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ("CreateBoundary : BoundaryName  = " << BoundaryName << ", BoundaryType = " << BoundaryType);
+  IsValidStudy () ;
 
   if ((myContextMap[GetCurrentStudyID()]._mesBoundarys).find(BoundaryName)!=(myContextMap[GetCurrentStudyID()]._mesBoundarys).end())
   {
@@ -806,24 +782,48 @@ HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundary(const char* BoundaryNam
   SALOMEDS::SObject_var aSO;
   SALOMEDS::SObject_var aResultSO=PublishInStudy(myCurrentStudy, aSO, myBoundary, BoundaryName);
 
-// Limites par defaut pour initialiser en cas de lancement par python
+  return HOMARD::HOMARD_Boundary::_duplicate(myBoundary);
+}
+//=============================================================================
+HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryDi(const char* BoundaryName, const char* MeshName, const char* MeshFile)
+{
+  MESSAGE ("CreateBoundaryDi : BoundaryName  = " << BoundaryName << "MeshName = " << MeshName );
+  HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, 0);
+  myBoundary->SetMeshFile( MeshFile ) ;
+  myBoundary->SetMeshName( MeshName ) ;
 
   return HOMARD::HOMARD_Boundary::_duplicate(myBoundary);
 }
+//=============================================================================
+HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryCylinder(const char* BoundaryName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+                                      CORBA::Double Rayon)
+{
+  MESSAGE ("CreateBoundaryCylinder : BoundaryName  = " << BoundaryName ) ;
+  HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, 1) ;
+  myBoundary->SetCylinder( Xcentre, Ycentre, Zcentre, Xaxis, Yaxis, Zaxis, Rayon ) ;
+
+  return HOMARD::HOMARD_Boundary::_duplicate(myBoundary) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundarySphere(const char* BoundaryName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Rayon)
+{
+  MESSAGE ("CreateBoundarySphere : BoundaryName  = " << BoundaryName ) ;
+  HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, 2) ;
+  myBoundary->SetSphere( Xcentre, Ycentre, Zcentre, Rayon ) ;
+
+  return HOMARD::HOMARD_Boundary::_duplicate(myBoundary) ;
+}
 
 
 //=============================================================================
 HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZone(const char* ZoneName, CORBA::Long ZoneType)
 {
-  MESSAGE ("ZoneName  = " << ZoneName << ", ZoneType = " << ZoneType);
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ("CreateZone : ZoneName  = " << ZoneName << ", ZoneType = " << ZoneType);
+  IsValidStudy () ;
 
   if ((myContextMap[GetCurrentStudyID()]._mesZones).find(ZoneName)!=(myContextMap[GetCurrentStudyID()]._mesZones).end())
   {
@@ -845,24 +845,166 @@ HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZone(const char* ZoneName, CORBA::Lo
 
   return HOMARD::HOMARD_Zone::_duplicate(myZone);
 }
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneBox(const char* ZoneName,
+                                      CORBA::Double Xmini, CORBA::Double Xmaxi,
+                                      CORBA::Double Ymini, CORBA::Double Ymaxi,
+                                      CORBA::Double Zmini, CORBA::Double Zmaxi)
+{
+  MESSAGE ("CreateZoneBox : ZoneName  = " << ZoneName ) ;
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 2) ;
+  myZone->SetBox ( Xmini, Xmaxi, Ymini, Ymaxi, Zmini, Zmaxi) ;
 
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
 //=============================================================================
-CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatMenage)
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneSphere(const char* ZoneName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre, CORBA::Double Rayon)
 {
-  MESSAGE ( "Compute, calcul de " << nomIteration );
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE ("CreateZoneSphere : ZoneName  = " << ZoneName ) ;
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 4) ;
+  myZone->SetSphere( Xcentre, Ycentre, Zcentre, Rayon ) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneCylinder(const char* ZoneName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+                                      CORBA::Double Rayon, CORBA::Double Haut)
+{
+  MESSAGE ("CreateZoneCylinder : ZoneName  = " << ZoneName ) ;
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 5) ;
+  myZone->SetCylinder( Xcentre, Ycentre, Zcentre, Xaxe, Yaxe, Zaxe, Rayon, Haut ) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZonePipe(const char* ZoneName,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+                                      CORBA::Double Rayon, CORBA::Double Haut, CORBA::Double Rayonint)
+{
+  MESSAGE ("CreateZonePipe : ZoneName  = " << ZoneName ) ;
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 7) ;
+  myZone->SetPipe( Xcentre, Ycentre, Zcentre, Xaxe, Yaxe, Zaxe, Rayon, Haut, Rayonint ) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneBox2D(const char* ZoneName,
+                                      CORBA::Double Umini, CORBA::Double Umaxi,
+                                      CORBA::Double Vmini, CORBA::Double Vmaxi,
+                                      CORBA::Long Orient)
+{
+  MESSAGE ("CreateZoneBox2D : ZoneName  = " << ZoneName ) ;
+//   MESSAGE ("Umini = " << Umini << ", Umaxi =" << Umaxi ) ;
+//   MESSAGE ("Vmini = " << Vmini << ", Vmaxi =" << Vmaxi ) ;
+//   MESSAGE ("Orient = " << Orient ) ;
+
+  double Xmini, Xmaxi ;
+  double Ymini, Ymaxi ;
+  double Zmini, Zmaxi ;
+  if ( Orient == 1 )
+  { Xmini = Umini ;
+    Xmaxi = Umaxi ;
+    Ymini = Vmini ;
+    Ymaxi = Vmaxi ;
+    Zmini = 0. ;
+    Zmaxi = 0. ; }
+  else if ( Orient == 2 )
+  { Xmini = 0. ;
+    Xmaxi = 0. ;
+    Ymini = Umini ;
+    Ymaxi = Umaxi ;
+    Zmini = Vmini ;
+    Zmaxi = Vmaxi ; }
+  else if ( Orient == 3 )
+  { Xmini = Vmini ;
+    Xmaxi = Vmaxi ;
+    Ymini = 0. ;
+    Ymaxi = 0. ;
+    Zmini = Umini ;
+    Zmaxi = Umaxi ; }
+  else { ASSERT( Orient >= 1 and Orient <= 3 ) ; }
+
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 10+Orient) ;
+  myZone->SetBox ( Xmini, Xmaxi, Ymini, Ymaxi, Zmini, Zmaxi) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneDisk(const char* ZoneName,
+                                      CORBA::Double Ucentre, CORBA::Double Vcentre,
+                                      CORBA::Double Rayon,
+                                      CORBA::Long Orient)
+{
+  MESSAGE ("CreateZoneDisk : ZoneName  = " << ZoneName ) ;
+  double Xcentre ;
+  double Ycentre ;
+  double Zcentre ;
+  if ( Orient == 1 )
+  { Xcentre = Ucentre ;
+    Ycentre = Vcentre ;
+    Zcentre = 0. ; }
+  else if ( Orient == 2 )
+  { Xcentre = 0. ;
+    Ycentre = Ucentre ;
+    Zcentre = Vcentre ; }
+  else if ( Orient == 3 )
+  { Xcentre = Vcentre ;
+    Ycentre = 0. ;
+    Zcentre = Ucentre ; }
+  else { ASSERT( Orient >= 1 and Orient <= 3 ) ; }
+
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 30+Orient) ;
+  myZone->SetCylinder( Xcentre, Ycentre, Zcentre, 0., 0., 1., Rayon, 1. ) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+//=============================================================================
+HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneDiskWithHole(const char* ZoneName,
+                                      CORBA::Double Ucentre, CORBA::Double Vcentre,
+                                      CORBA::Double Rayon, CORBA::Double Rayonint,
+                                      CORBA::Long Orient)
+{
+  MESSAGE ("CreateZoneDiskWithHole : ZoneName  = " << ZoneName ) ;
+  double Xcentre ;
+  double Ycentre ;
+  double Zcentre ;
+  if ( Orient == 1 )
+  { Xcentre = Ucentre ;
+    Ycentre = Vcentre ;
+    Zcentre = 0. ; }
+  else if ( Orient == 2 )
+  { Xcentre = 0. ;
+    Ycentre = Ucentre ;
+    Zcentre = Vcentre ; }
+  else if ( Orient == 3 )
+  { Xcentre = Vcentre ;
+    Ycentre = 0. ;
+    Zcentre = Ucentre ; }
+  else { ASSERT( Orient >= 1 and Orient <= 3 ) ; }
+
+  HOMARD::HOMARD_Zone_var myZone = CreateZone(ZoneName, 60+Orient) ;
+  myZone->SetPipe( Xcentre, Ycentre, Zcentre, 0., 0., 1., Rayon, 1., Rayonint ) ;
+
+  return HOMARD::HOMARD_Zone::_duplicate(myZone) ;
+}
+
+
+
+
+//=============================================================================
+CORBA::Long HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatMenage)
+{
+  MESSAGE ( "Compute : calcul de " << nomIteration );
+  IsValidStudy () ;
 
   HOMARD::HOMARD_Iteration_var myIteration = myContextMap[GetCurrentStudyID()]._mesIterations[nomIteration];
   ASSERT(!CORBA::is_nil(myIteration));
 
-// on ne calcule pas l iteration 0 
+// on ne calcule pas l iteration 0
   int NumeIter = myIteration->GetNumber();
   if ( NumeIter == 0 )
   {
@@ -870,7 +1012,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       es.type = SALOME::BAD_PARAM;
       es.text = "This iteration is the first of the case and cannot be computed.";
       throw SALOME::SALOME_Exception(es);
-      return 0;
+      return 1;
   };
 
 // on verifie qu il y a une hypothese (erreur improbable);
@@ -879,16 +1021,14 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
   {
       SALOME::ExceptionStruct es;
       es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      es.text= "This iteration  has no associated hypothese";
+      es.text= "This iteration does not have any associated hypothesis.";
       throw SALOME::SALOME_Exception(es);
-      return 0;
+      return 2;
   }
   HOMARD::HOMARD_Hypothesis_var myHypo = myContextMap[GetCurrentStudyID()]._mesHypotheses[nomHypo];
   ASSERT(!CORBA::is_nil(myHypo));
 
 
-
   // A.4. L'iteration parent
   const char* nomIterationParent = myIteration->GetIterParent();
   HOMARD::HOMARD_Iteration_var myIterationParent = myContextMap[GetCurrentStudyID()]._mesIterations[nomIterationParent];
@@ -903,7 +1043,12 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       throw SALOME::SALOME_Exception(es);
       return 0;
       */
-      Compute(nomIterationParent, etatMenage);
+      int codret = Compute(nomIterationParent, etatMenage);
+      if (codret != 0)
+      {
+        // GERALD -- QMESSAGE BOX
+        ASSERT("Pb au calcul de l'iteration precedente" == 0);
+      }
   };
 
   const char* nomCas = myIteration->GetCaseName();
@@ -921,7 +1066,6 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
   std::string siterp1 = saux1.str() ;
   if (NumeIter < 10) { siterp1 = "0" + siterp1 ; }
 
-  // A.3. Hypothese associee
   // B. Les repertoires
   // B.1. Le repertoire du cas
   const char* nomDir = myCase->GetDirName();
@@ -985,7 +1129,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "Directory : " + DirCompute.str() + "is not empty";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 3;
        }
     }
   }
@@ -1042,7 +1186,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "MeshFile : " + std::string(MeshFile) + " already exists ";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 4;
      }
      else
      {
@@ -1055,7 +1199,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
           std::string text = "PB with meshfile destruction ";
           es.text = CORBA::string_dup(text.c_str());
           throw SALOME::SALOME_Exception(es);
-          return false;
+          return 5;
          }
       }
   }
@@ -1063,7 +1207,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
   {
      codret = 0 ;
   };
+
 
   // D.4. Les types de raffinement et de deraffinement
   // Les appels corba sont lourds, il vaut mieux les grouper
@@ -1088,27 +1232,40 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
   if (TypeAdap == 0)
   {
     HOMARD::listeZonesHypo* ListZone = myHypo->GetZones();
-    int numberOfZones = ListZone->length();
+    int numberOfZonesx2 = ListZone->length();
+    int NumZone ;
 
-    for (int NumZone = 0; NumZone< numberOfZones; NumZone++)
+    for (int iaux = 0; iaux< numberOfZonesx2; iaux++)
     {
-      std::string ZoneName = std::string((*ListZone)[NumZone]);
+      std::string ZoneName = std::string((*ListZone)[iaux]);
       MESSAGE ( "... ZoneName = " << ZoneName);
       HOMARD::HOMARD_Zone_var myZone = myContextMap[GetCurrentStudyID()]._mesZones[ZoneName];
       ASSERT(!CORBA::is_nil(myZone));
 
       int ZoneType = myZone->GetZoneType();
-      MESSAGE ( "... ZoneType = " << ZoneType);
-      if (ZoneType == 2) // Cas d un parallelepipede
+      std::string TypeUsestr = std::string((*ListZone)[iaux+1]);
+      int TypeUse = atoi( TypeUsestr.c_str() );
+      MESSAGE ( "... ZoneType = " << ZoneType << ", TypeUse = "<<TypeUse);
+      NumZone = iaux/2 + 1 ;
+      HOMARD::double_array* zone = myZone->GetCoords();
+      if ( ZoneType == 2 or ( ZoneType>=11 and ZoneType <=13 ) ) // Cas d un parallelepipede ou d'un rectangle
       {
-        HOMARD::double_array* zone = myZone->GetBox();
-        myDriver->TexteZone(NumZone+1, ZoneType, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], (*zone)[4], (*zone)[5]);
+        myDriver->TexteZone(NumZone, ZoneType, TypeUse, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], (*zone)[4], (*zone)[5], 0., 0., 0.);
       }
-      else if (ZoneType == 4) // Cas d une sphere
+      else if ( ZoneType == 4 ) // Cas d une sphere
       {
-        HOMARD::double_array* zone = myZone->GetSphere();
-        myDriver->TexteZone(NumZone+1, ZoneType, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], 0., 0.);
+        myDriver->TexteZone(NumZone, ZoneType, TypeUse, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], 0., 0., 0., 0., 0.);
       }
+      else if ( ZoneType == 5 or ( ZoneType>=31 and ZoneType <=33 ) ) // Cas d un cylindre ou d'un disque
+      {
+        myDriver->TexteZone(NumZone, ZoneType, TypeUse, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], (*zone)[4], (*zone)[5], (*zone)[6], (*zone)[7], 0.);
+      }
+      else if ( ZoneType == 7 or ( ZoneType>=61 and ZoneType <=63 ) ) // Cas d un tuyau ou disque perce
+      {
+        myDriver->TexteZone(NumZone, ZoneType, TypeUse, (*zone)[0], (*zone)[1], (*zone)[2], (*zone)[3], (*zone)[4], (*zone)[5], (*zone)[6], (*zone)[7], (*zone)[8]);
+      }
+      else { ASSERT("ZoneType est incorrect." == 0) ; }
+      iaux += 1 ;
     }
   }
   // E.3. Ajout des informations liees aux champs eventuels
@@ -1137,11 +1294,14 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
     double ThreshR = aInfosHypo->ThreshR;
     int TypeThC = aInfosHypo->TypeThC;
     double ThreshC = aInfosHypo->ThreshC;
+//  Saut entre mailles ou non ?
+    int UsField = aInfosHypo->UsField;
+    MESSAGE( ". UsField = " << UsField );
 //  L'usage des composantes
     int UsCmpI = aInfosHypo->UsCmpI;
     MESSAGE( ". UsCmpI = " << UsCmpI );
 //
-    myDriver->TexteField(FieldName, FieldFile, TimeStep, Rank, TypeThR, ThreshR, TypeThC, ThreshC, UsCmpI);
+    myDriver->TexteField(FieldName, FieldFile, TimeStep, Rank, TypeThR, ThreshR, TypeThC, ThreshC, UsField, UsCmpI);
 //
 //  Les composantes
     HOMARD::listeComposantsHypo* mescompo = myHypo->GetListComp();
@@ -1170,42 +1330,79 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
   }
 
   // E.5. Ajout des informations liees a l'eventuel suivi de frontiere
+  // On ecrit d'abord la definition des frontieres, puis les liens avec les groupes
+  std::list<std::string>  ListeBoundaryTraitees ;
   HOMARD::ListBoundaryGroupType* ListBoundaryGroupType = myCase->GetBoundaryGroup();
   int numberOfitems = ListBoundaryGroupType->length();
   MESSAGE ( "... number of string for Boundary+Group = " << numberOfitems);
   int BoundaryOption = 1 ;
   int NumBoundaryAnalytical = 0 ;
   for (int NumBoundary = 0; NumBoundary< numberOfitems; NumBoundary=NumBoundary+2)
+  {
+    std::string BoundaryName = std::string((*ListBoundaryGroupType)[NumBoundary]);
+    MESSAGE ( "... BoundaryName = " << BoundaryName);
+    int A_faire = 1 ;
+    std::list<std::string>::const_iterator it = ListeBoundaryTraitees.begin();
+    while (it != ListeBoundaryTraitees.end())
+    {
+      MESSAGE ( "... BoundaryNameTraitee = " << *it);
+      if ( BoundaryName == *it ) { A_faire = 0 ; }
+      it++;
+    }
+    if ( A_faire == 1 )
+    {
+// Caracteristiques de la frontiere
+      HOMARD::HOMARD_Boundary_var myBoundary = myContextMap[GetCurrentStudyID()]._mesBoundarys[BoundaryName];
+      ASSERT(!CORBA::is_nil(myBoundary));
+      int BoundaryType = myBoundary->GetBoundaryType();
+      MESSAGE ( "... BoundaryType = " << BoundaryType );
+// Ecriture selon le type
+      if (BoundaryType == 0) // Cas d une frontiere discrete
+      {
+        const char* MeshName = myBoundary->GetMeshName() ;
+        const char* MeshFile = myBoundary->GetMeshFile() ;
+        myDriver->TexteBoundaryDi( MeshName, MeshFile);
+        BoundaryOption = BoundaryOption*2 ;
+      }
+      else // Cas d une frontiere analytique
+      {
+        NumBoundaryAnalytical++ ;
+        HOMARD::double_array* coor = myBoundary->GetCoords();
+        if (BoundaryType == 1) // Cas d un cylindre
+        {
+          myDriver->TexteBoundaryAn(BoundaryName, NumBoundaryAnalytical, BoundaryType, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], (*coor)[4], (*coor)[5], (*coor)[6]);
+          BoundaryOption = BoundaryOption*3 ;
+        }
+        else if (BoundaryType == 2) // Cas d une sphere
+        {
+          myDriver->TexteBoundaryAn(BoundaryName, NumBoundaryAnalytical, BoundaryType, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], 0., 0., 0.);
+          BoundaryOption = BoundaryOption*3 ;
+        }
+      }
+// Memorisation du traitement
+      ListeBoundaryTraitees.push_back( BoundaryName );
+    }
+  }
+  NumBoundaryAnalytical = 0 ;
+  for (int NumBoundary = 0; NumBoundary< numberOfitems; NumBoundary=NumBoundary+2)
   {
     std::string BoundaryName = std::string((*ListBoundaryGroupType)[NumBoundary]);
     MESSAGE ( "... BoundaryName = " << BoundaryName);
     HOMARD::HOMARD_Boundary_var myBoundary = myContextMap[GetCurrentStudyID()]._mesBoundarys[BoundaryName];
     ASSERT(!CORBA::is_nil(myBoundary));
-    std::string GroupName = std::string((*ListBoundaryGroupType)[NumBoundary+1]);
-    MESSAGE ( "... GroupName = " << GroupName);
-
     int BoundaryType = myBoundary->GetBoundaryType();
     MESSAGE ( "... BoundaryType = " << BoundaryType );
+//  Recuperation du nom du groupe
+    std::string GroupName = std::string((*ListBoundaryGroupType)[NumBoundary+1]);
+    MESSAGE ( "... GroupName = " << GroupName);
     if (BoundaryType == 0) // Cas d une frontiere discrete
     {
-      const char* MeshName = myBoundary->GetMeshName() ;
-      const char* MeshFile = myBoundary->GetMeshFile() ;
-      myDriver->TexteBoundaryDi( MeshName, MeshFile);
-      BoundaryOption = BoundaryOption*2 ;
-    }
-    else if (BoundaryType == 1) // Cas d un cylindre
-    {
-      NumBoundaryAnalytical++ ;
-      HOMARD::double_array* coor = myBoundary->GetCylinder();
-      myDriver->TexteBoundaryAn(NumBoundaryAnalytical, BoundaryType, GroupName, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], (*coor)[4], (*coor)[5], (*coor)[6]);
-      BoundaryOption = BoundaryOption*3 ;
+      if ( GroupName.size() > 0 ) { myDriver->TexteBoundaryDiGr ( GroupName ) ; }
     }
-    else if (BoundaryType == 2) // Cas d une sphere
+    else // Cas d une frontiere analytique
     {
       NumBoundaryAnalytical++ ;
-      HOMARD::double_array* coor = myBoundary->GetSphere();
-      myDriver->TexteBoundaryAn(NumBoundaryAnalytical, BoundaryType, GroupName, (*coor)[0], (*coor)[1], (*coor)[2], (*coor)[3], 0., 0., 0.);
-      BoundaryOption = BoundaryOption*3 ;
+      myDriver->TexteBoundaryAnGr ( BoundaryName, NumBoundaryAnalytical, GroupName ) ;
     }
   }
   myDriver->TexteBoundaryOption(BoundaryOption);
@@ -1244,6 +1441,16 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       }
     }
   }
+  // E.7. Ajout des options avancees
+  int Pyram = myCase->GetPyram();
+  MESSAGE ( ". Pyram = " << Pyram );
+  int NivMax = myHypo->GetNivMax();
+  MESSAGE ( ". NivMax = " << NivMax );
+  double DiamMin = myHypo->GetDiamMin() ;
+  MESSAGE ( ". DiamMin = " << DiamMin );
+  int AdapInit = myHypo->GetAdapInit();
+  MESSAGE ( ". AdapInit = " << AdapInit );
+  myDriver->TexteAdvanced(Pyram, NivMax, DiamMin, AdapInit);
 
   // F. Ecriture du texte dans le fichier
   if (codret == 0)
@@ -1253,11 +1460,12 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
 
 // G. Execution
 //
-  int codretexec = 1 ;
+  int codretexec = 12 ;
   if (codret == 0)
   {
     codretexec = myDriver->ExecuteHomard();
 //
+    MESSAGE ( "Erreur en executant HOMARD : " << codretexec );
     if (codretexec == 0)
     {
       SetEtatIter(nomIteration,true);
@@ -1297,7 +1505,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
       SALOME::ExceptionStruct es;
       es.type = SALOME::BAD_PARAM;
       std::string text = "Error during the adaptation.\n" ;
-      try 
+      try
       {
           ifstream fichier(MessFile.c_str(), ios::in);
           string ligne;
@@ -1318,8 +1526,7 @@ CORBA::Boolean HOMARD_Gen_i::Compute(const char* nomIteration, CORBA::Long etatM
     delete myDriver;
   }
   //
-  if (codret == 0) { return true; }
-  else { return false; }
+  return codretexec ;
 }
 
 //===========================================================================
@@ -1351,33 +1558,33 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
 // Controle de la non publication d'un objet de meme nom
    if ((!aHypo->_is_nil()) or (!aZone->_is_nil()) or (!aBoundary->_is_nil()))
     {
-         SALOMEDS::Study::ListOfSObject_var listSO = theStudy->FindObjectByName(theName, ComponentDataType());
-         if (listSO->length() >= 1)
-         {
-             MESSAGE("This name "<<theName<<" is already used "<<listSO->length()<<" time(s)");
-             std::cerr <<"This name "<<theName<<" is already used "<<listSO->length()<<" time(s)" << std::endl;
-             aResultSO = listSO[0];
-             return aResultSO._retn();
-         }
+      SALOMEDS::Study::ListOfSObject_var listSO = theStudy->FindObjectByName(theName, ComponentDataType());
+      if (listSO->length() >= 1)
+      {
+          MESSAGE("This name "<<theName<<" is already used "<<listSO->length()<<" time(s)");
+          std::cerr <<"This name "<<theName<<" is already used "<<listSO->length()<<" time(s)" << std::endl;
+          aResultSO = listSO[0];
+          return aResultSO._retn();
+      }
     }
 
   // Caracteristiques de l'etude
-    SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
-    aStudyBuilder->NewCommand();
-     if(!aCase->_is_nil())
-        aResultSO = PublishCaseInStudy(theStudy, aStudyBuilder, aCase, theName);
-     else if(!aHypo->_is_nil())
-        aResultSO = PublishHypotheseInStudy(theStudy, aStudyBuilder, aHypo, theName);
-     else if(!aZone->_is_nil())
-        aResultSO = PublishZoneInStudy(theStudy, aStudyBuilder, aZone, theName);
-     else if(!aBoundary->_is_nil())
-        aResultSO = PublishBoundaryInStudy(theStudy, aStudyBuilder, aBoundary, theName);
+  SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+  aStudyBuilder->NewCommand();
+  if(!aCase->_is_nil())
+    aResultSO = PublishCaseInStudy(theStudy, aStudyBuilder, aCase, theName);
+  else if(!aHypo->_is_nil())
+    aResultSO = PublishHypotheseInStudy(theStudy, aStudyBuilder, aHypo, theName);
+  else if(!aZone->_is_nil())
+    aResultSO = PublishZoneInStudy(theStudy, aStudyBuilder, aZone, theName);
+  else if(!aBoundary->_is_nil())
+    aResultSO = PublishBoundaryInStudy(theStudy, aStudyBuilder, aBoundary, theName);
 
     aStudyBuilder->CommitCommand();
   return aResultSO._retn();
 };
 //=============================================================================
-SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishCaseInStudy(SALOMEDS::Study_ptr theStudy, 
+SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishCaseInStudy(SALOMEDS::Study_ptr theStudy,
                                                        SALOMEDS::StudyBuilder_var aStudyBuilder,
                                                        HOMARD::HOMARD_Cas_ptr theObject, const char* theName)
 {
@@ -1395,20 +1602,20 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishCaseInStudy(SALOMEDS::Study_ptr theSt
   }
 
   SALOMEDS::SComponent_var theFatherHomard = theStudy->FindComponent(ComponentDataType());
-  if (theFatherHomard->_is_nil()) 
+  if (theFatherHomard->_is_nil())
   {
-    MESSAGE("theFatherHomard->_is_nil()");      
+    MESSAGE("theFatherHomard->_is_nil()");
     return aResultSO._retn();
   }
 
   aResultSO = aStudyBuilder->NewObject(theFatherHomard);
-  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "CasHomard", "cas_calcule.png", 
+  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "CasHomard", "cas_calcule.png",
                      _orb->object_to_string(theObject) ) ;
   return aResultSO._retn();
 }
 
 //=============================================================================
-SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theStudy, 
+SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theStudy,
                     SALOMEDS::StudyBuilder_var aStudyBuilder,
                    HOMARD::HOMARD_Zone_ptr theObject, const char* theName)
 {
@@ -1416,18 +1623,18 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theSt
   SALOMEDS::SObject_var aResultSO;
   SALOMEDS::GenericAttribute_var anAttr;
 
-  if (CORBA::is_nil(theObject)) 
+  if (CORBA::is_nil(theObject))
   {
     MESSAGE("HOMARD_Gen_i.cxx::theObject->_is_nil()");
     return aResultSO._retn();
   }
-  if (theStudy->_is_nil()) 
+  if (theStudy->_is_nil())
   {
     MESSAGE("HOMARD_Gen_i.cxx::theStudy->_is_nil()");
     return aResultSO._retn();
   }
   SALOMEDS::SComponent_var theFatherHomard = theStudy->FindComponent(ComponentDataType());
-  if (theFatherHomard->_is_nil()) 
+  if (theFatherHomard->_is_nil())
   {
     MESSAGE("theFatherHomard->_is_nil()");
     return aResultSO._retn();
@@ -1441,28 +1648,63 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishZoneInStudy(SALOMEDS::Study_ptr theSt
   SALOMEDS::SObject_var aSOZone;
   if (!theFatherHomard->FindSubObject(100, aSOZone))
   {
+    MESSAGE("Ajout de la categorie des zones");
     aSOZone = aStudyBuilder->NewObjectToTag(theFatherHomard, 100);
     PublishInStudyAttr(aStudyBuilder, aSOZone, "Zones", "ZoneList", "zone_icone_2.png", NULL ) ;
   }
+  else { MESSAGE("La categorie des zones existe deja."); }
 
   aResultSO = aStudyBuilder->NewObject(aSOZone);
+  const char* icone ;
   switch (ZoneType)
   {
+    case 11 :
+    { }
+    case 12 :
+    { }
+    case 13 :
+    { icone = "boxdxy_2.png" ;
+      break ;
+    }
     case 2 :
-    { PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "ZoneHomard", 
-      "boxdxyz_2.png", _orb->object_to_string(theObject) ) ;
-      break; 
+    { icone = "boxdxyz_2.png" ;
+      break ;
     }
+    case 31 :
+    { }
+    case 32 :
+    { }
+    case 33 :
+    { icone = "disk_2.png" ;
+      break ;
+     }
     case 4 :
-    { PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "ZoneHomard", 
-     "spherepoint_2.png", _orb->object_to_string(theObject) ) ;
-      break; 
+    { icone = "spherepoint_2.png" ;
+      break ;
+    }
+    case 5 :
+    { icone = "cylinderpointvector_2.png" ;
+      break ;
+    }
+    case 61 :
+    { }
+    case 62 :
+    { }
+    case 63 :
+    { icone = "diskwithhole_2.png" ;
+      break ;
+     }
+    case 7 :
+    { icone = "pipe_2.png" ;
+      break ;
     }
   }
+  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "ZoneHomard", icone, _orb->object_to_string(theObject) ) ;
+
   return aResultSO._retn();
 }
 //=============================================================================
-SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr theStudy, 
+SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr theStudy,
                    SALOMEDS::StudyBuilder_var aStudyBuilder,
                    HOMARD::HOMARD_Boundary_ptr theObject, const char* theName)
 {
@@ -1485,35 +1727,41 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishBoundaryInStudy(SALOMEDS::Study_ptr t
   SALOMEDS::SObject_var aSOBoundary;
   if (!theFatherHomard->FindSubObject(101, aSOBoundary))
   {
+    MESSAGE("Ajout de la categorie des boundarys");
     aSOBoundary = aStudyBuilder->NewObjectToTag(theFatherHomard, 101);
     PublishInStudyAttr(aStudyBuilder, aSOBoundary, "Boundaries", "BoundList", "zone_icone_2.png", NULL ) ;
   }
+  else { MESSAGE("La categorie des boundarys existe deja."); }
 
   aResultSO = aStudyBuilder->NewObject(aSOBoundary);
   CORBA::Long BoundaryType = myBoundary->GetBoundaryType();
+//   MESSAGE("BoundaryType : "<<BoundaryType);
+  const char* icone ;
+  const char* value ;
   switch (BoundaryType)
   {
     case 0 :
-    { PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "BoundaryDiHomard", "mesh_tree_mesh.png",
-                          _orb->object_to_string(theObject));
-      break; 
+    { value = "BoundaryDiHomard" ;
+      icone = "mesh_tree_mesh.png" ;
+      break;
     }
     case 1 :
-    { PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "BoundaryAnHomard", "cylinderpointvector_2.png", 
-                          _orb->object_to_string(theObject));
-      break; 
+    { value = "BoundaryAnHomard" ;
+      icone = "cylinderpointvector_2.png" ;
+      break;
     }
     case 2 :
-    { PublishInStudyAttr(aStudyBuilder, aResultSO, theName, "BoundaryAnHomard", "spherepoint_2.png", 
-                          _orb->object_to_string(theObject));
-      break; 
+    { value = "BoundaryAnHomard" ;
+      icone = "spherepoint_2.png" ;
+      break;
     }
   }
+  PublishInStudyAttr(aStudyBuilder, aResultSO, theName, value, icone, _orb->object_to_string(theObject));
   return aResultSO._retn();
 }
 
 //=============================================================================
-SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishHypotheseInStudy(SALOMEDS::Study_ptr theStudy, 
+SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishHypotheseInStudy(SALOMEDS::Study_ptr theStudy,
                    SALOMEDS::StudyBuilder_var aStudyBuilder,
                    HOMARD::HOMARD_Hypothesis_ptr theObject, const char* theName)
 {
@@ -1524,7 +1772,7 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishHypotheseInStudy(SALOMEDS::Study_ptr
   // On recupere le module pere dans l etude
   // On ajoute la categorie des hypotheses dans l etude si necessaire
   SALOMEDS::SComponent_var theFatherHomard = theStudy->FindComponent(ComponentDataType());
-  if (theFatherHomard->_is_nil()) 
+  if (theFatherHomard->_is_nil())
   {
     MESSAGE("theFatherHomard->_is_nil()");
     return aResultSO._retn();
@@ -1532,9 +1780,11 @@ SALOMEDS::SObject_ptr HOMARD_Gen_i::PublishHypotheseInStudy(SALOMEDS::Study_ptr
   SALOMEDS::SObject_var aSOHypothese;
   if (!theFatherHomard->FindSubObject(0, aSOHypothese))
   {
+    MESSAGE("Ajout de la categorie des hypotheses");
     aSOHypothese = aStudyBuilder->NewObjectToTag(theFatherHomard, 0);
     PublishInStudyAttr(aStudyBuilder, aSOHypothese, "Hypothesis", "HypoList","hypotheses.png", NULL);
   }
+  else { MESSAGE("La categorie des hypotheses existe deja."); }
 
 // Creation du resultat dans l'etude
   aResultSO = aStudyBuilder->NewObject(aSOHypothese);
@@ -1584,14 +1834,8 @@ void HOMARD_Gen_i::PublishInStudyAttr(SALOMEDS::StudyBuilder_var aStudyBuilder,
 //=============================================================================
 HOMARD::listeCases* HOMARD_Gen_i::GetAllCases()
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE("GetAllCases");
+  IsValidStudy () ;
 
   HOMARD::listeCases_var ret = new HOMARD::listeCases;
   ret->length(myContextMap[GetCurrentStudyID()]._mesCas.size());
@@ -1609,14 +1853,8 @@ HOMARD::listeCases* HOMARD_Gen_i::GetAllCases()
 //=============================================================================
 HOMARD::listeHypotheses* HOMARD_Gen_i::GetAllHypotheses()
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE("GetAllHypotheses");
+  IsValidStudy () ;
 
   HOMARD::listeHypotheses_var ret = new HOMARD::listeHypotheses;
   ret->length(myContextMap[GetCurrentStudyID()]._mesHypotheses.size());
@@ -1634,14 +1872,8 @@ HOMARD::listeHypotheses* HOMARD_Gen_i::GetAllHypotheses()
 //=============================================================================
 HOMARD::listeZones* HOMARD_Gen_i::GetAllZones()
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE("GetAllZones");
+  IsValidStudy () ;
 
   HOMARD::listeZones_var ret = new HOMARD::listeZones;
   ret->length(myContextMap[GetCurrentStudyID()]._mesZones.size());
@@ -1659,20 +1891,14 @@ HOMARD::listeZones* HOMARD_Gen_i::GetAllZones()
 //=============================================================================
 HOMARD::listeIterations* HOMARD_Gen_i::GetAllIterations()
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE("GetAllIterations");
+  IsValidStudy () ;
 
   HOMARD::listeIterations_var ret = new HOMARD::listeIterations;
   ret->length(myContextMap[GetCurrentStudyID()]._mesIterations.size());
   std::map<std::string, HOMARD::HOMARD_Iteration_var>::const_iterator it;
   int i = 0;
-  for (it  = myContextMap[GetCurrentStudyID()]._mesIterations.begin(); 
+  for (it  = myContextMap[GetCurrentStudyID()]._mesIterations.begin();
   it != myContextMap[GetCurrentStudyID()]._mesIterations.end(); it++)
   {
     ret[i++] = CORBA::string_dup((*it).first.c_str());
@@ -1683,14 +1909,8 @@ HOMARD::listeIterations* HOMARD_Gen_i::GetAllIterations()
 //=============================================================================
 HOMARD::listeBoundarys* HOMARD_Gen_i::GetAllBoundarys()
 {
-  if (CORBA::is_nil(myCurrentStudy))
-  {
-      SALOME::ExceptionStruct es;
-      es.type = SALOME::BAD_PARAM;
-      es.text = "Invalid Study Context ";
-      throw SALOME::SALOME_Exception(es);
-      return 0;
-  };
+  MESSAGE("GetAllBoundarys");
+  IsValidStudy () ;
 
   HOMARD::listeBoundarys_var ret = new HOMARD::listeBoundarys;
   ret->length(myContextMap[GetCurrentStudyID()]._mesBoundarys.size());
@@ -1741,7 +1961,7 @@ void HOMARD_Gen_i::PublishResultInSmesh(const char* NomFich, CORBA::Long IconeTy
   {
 // On verifie que le fichier n est pas deja publie
     SALOMEDS::ChildIterator_var aIter = myCurrentStudy->NewChildIterator(aSmeshSO);
-    for (; aIter->More(); aIter->Next()) 
+    for (; aIter->More(); aIter->Next())
     {
        SALOMEDS::SObject_var  aSO = aIter->Value();
        SALOMEDS::GenericAttribute_var aGAttr;
@@ -1771,9 +1991,9 @@ void HOMARD_Gen_i::PublishResultInSmesh(const char* NomFich, CORBA::Long IconeTy
 
 // On met a jour les attributs AttributeExternalFileDef et AttributePixMap
   SMESH::mesh_array* mesMaillages=aSmeshEngine->CreateMeshesFromMED(NomFich, theStatus);
-  for (int i = 0; i < mesMaillages->length();  i++) 
+  for (int i = 0; i < mesMaillages->length();  i++)
   {
-    MESSAGE( ". Mise a jour des attributs");
+    MESSAGE( ". Mise a jour des attributs du maillage");
     SMESH::SMESH_Mesh_var monMaillage= (*mesMaillages)[i];
     SALOMEDS::SObject_var aSO=SALOMEDS::SObject::_narrow(myCurrentStudy->FindObjectIOR(_orb->object_to_string(monMaillage)));
     SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
@@ -1784,10 +2004,10 @@ void HOMARD_Gen_i::PublishResultInSmesh(const char* NomFich, CORBA::Long IconeTy
     SALOMEDS::AttributePixMap_var anAttr2 = SALOMEDS::AttributePixMap::_narrow(aPixMap);
 //  IconeType = 0 : fichier issu d'une importation
 //  IconeType = 1 : fichier issu d'une execution HOMARD
-    if ( IconeType == 0 )
-    { anAttr2->SetPixMap( "mesh_tree_importedmesh.png" ); }
-    else
-    { anAttr2->SetPixMap( "mesh_tree_mesh.png" ); }
+    const char* icone ;
+    if ( IconeType == 0 ) { icone = "mesh_tree_importedmesh.png" ; }
+    else                  { icone = "mesh_tree_mesh.png" ; }
+    anAttr2->SetPixMap( icone );
   }
 
 }
@@ -1814,7 +2034,7 @@ void HOMARD_Gen_i::DeleteResultInSmesh(const char* NomFich, const char* MeshName
 // On verifie que le fichier est deja publie
   SALOMEDS::StudyBuilder_var myBuilder = myCurrentStudy->NewBuilder();
   SALOMEDS::ChildIterator_var aIter = myCurrentStudy->NewChildIterator(aSmeshSO);
-  for (; aIter->More(); aIter->Next()) 
+  for (; aIter->More(); aIter->Next())
   {
      SALOMEDS::SObject_var  aSO = aIter->Value();
      SALOMEDS::GenericAttribute_var aGAttr;
@@ -1888,6 +2108,20 @@ void HOMARD_Gen_i::PublishFileUnderIteration(const char* NomIter, const char* No
   aStudyBuilder->CommitCommand();
 }
 
+//=====================================================================================
+void HOMARD_Gen_i::IsValidStudy( )
+//=====================================================================================
+{
+  MESSAGE( "IsValidStudy" );
+  if (CORBA::is_nil(myCurrentStudy))
+  {
+    SALOME::ExceptionStruct es;
+    es.type = SALOME::BAD_PARAM;
+    es.text = "Invalid Study Context";
+    throw SALOME::SALOME_Exception(es);
+  };
+  return ;
+}
 
 //===========================================================================
 //
@@ -1897,8 +2131,8 @@ void HOMARD_Gen_i::PublishFileUnderIteration(const char* NomIter, const char* No
 
 //===========================================================================
 SALOMEDS::TMPFile* HOMARD_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent,
-                                      const char* theURL,
-                                      bool isMultiFile)
+                                      const char* theURL,
+                                      CORBA::Boolean isMultiFile)
 {
   MESSAGE (" Save pour theURL = "<< theURL);
   SALOMEDS::TMPFile_var aStreamFile;
@@ -1988,22 +2222,26 @@ SALOMEDS::TMPFile* HOMARD_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent,
     }
   }
   // -> close file
+  MESSAGE ("close file");
   f.close();
 
-  // put temporary files  to the stream
+  // put temporary files to the stream
+  MESSAGE ("put temporary files to the stream");
   aStreamFile = SALOMEDS_Tool::PutFilesToStream(tmpDir.c_str(), aFileSeq.in(), isMultiFile);
 
   // remove temporary files
+  MESSAGE ("remove temporary files");
   if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(tmpDir.c_str(), aFileSeq.in(), true);
 
   // return data stream
+  MESSAGE ("return data stream");
   return aStreamFile._retn();
 };
 
 //===========================================================================
 SALOMEDS::TMPFile* HOMARD_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
-                                           const char* theURL,
-                                           bool isMultiFile)
+                                           const char* theURL,
+                                           CORBA::Boolean isMultiFile)
 {
   // No specific ASCII persistence
   SALOMEDS::TMPFile_var aStreamFile = Save(theComponent, theURL, isMultiFile);
@@ -2014,7 +2252,7 @@ SALOMEDS::TMPFile* HOMARD_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent
 CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
                                   const SALOMEDS::TMPFile& theStream,
                                   const char* theURL,
-                                  bool isMultiFile)
+                                  CORBA::Boolean isMultiFile)
 {
   MESSAGE (" Load pour theURL = "<< theURL);
   SALOMEDS::Study_var aStudy = theComponent->GetStudy();
@@ -2062,6 +2300,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
     std::string bounSignature = HOMARD::GetSignature(HOMARD::Boundary);
     if (line.substr(0, caseSignature.size()) == caseSignature) {
       // re-create case
+      MESSAGE (" Recreation du cas" );
       HOMARD::HOMARD_Cas_var aCase = newCase();
       PortableServer::ServantBase_var aServant = GetServant(aCase);
       HOMARD_Cas_i* aCaseServant = dynamic_cast<HOMARD_Cas_i*>(aServant.in());
@@ -2071,6 +2310,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
       }
     }
     else if (line.substr(0, zoneSignature.size()) == zoneSignature) {
+      MESSAGE (" Recreation de la zone" );
       // re-create zone
       HOMARD::HOMARD_Zone_var aZone = newZone();
       PortableServer::ServantBase_var aServant = GetServant(aZone);
@@ -2082,6 +2322,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
     }
     else if (line.substr(0, iterSignature.size()) == iterSignature) {
       // re-create iteration
+      MESSAGE (" Recreation de l iteration" );
       HOMARD::HOMARD_Iteration_var aIter = newIteration();
       PortableServer::ServantBase_var aServant = GetServant(aIter);
       HOMARD_Iteration_i* aIterServant = dynamic_cast<HOMARD_Iteration_i*>(aServant.in());
@@ -2092,6 +2333,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
     }
     else if (line.substr(0, hypoSignature.size()) == hypoSignature) {
       // re-create hypothesis
+      MESSAGE (" Recreation de l hypothese" );
       HOMARD::HOMARD_Hypothesis_var aHypo = newHypothesis();
       PortableServer::ServantBase_var aServant = GetServant(aHypo);
       HOMARD_Hypothesis_i* aHypoServant = dynamic_cast<HOMARD_Hypothesis_i*>(aServant.in());
@@ -2102,6 +2344,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
     }
     else if (line.substr(0, bounSignature.size()) == bounSignature) {
       // re-create boundary
+      MESSAGE (" Recreation de la frontiere" );
       HOMARD::HOMARD_Boundary_var aBoundary = newBoundary();
       PortableServer::ServantBase_var aServant = GetServant(aBoundary);
       HOMARD_Boundary_i* aBoundaryServant = dynamic_cast<HOMARD_Boundary_i*>(aServant.in());
@@ -2117,7 +2360,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
   f.close();
 
   // Remove temporary files created from the stream
-  if (!isMultiFile) 
+  if (!isMultiFile)
     SALOMEDS_Tool::RemoveTemporaryFiles(tmpDir.c_str(), aFileSeq.in(), true);
 
   return true;
@@ -2127,7 +2370,7 @@ CORBA::Boolean HOMARD_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
 CORBA::Boolean HOMARD_Gen_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
                                        const SALOMEDS::TMPFile& theStream,
                                        const char* theURL,
-                                       bool isMultiFile)
+                                       CORBA::Boolean isMultiFile)
 {
   // No specific ASCII persistence
   return Load(theComponent, theStream, theURL, isMultiFile);
@@ -2202,7 +2445,7 @@ char* HOMARD_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
 };
 
 //===========================================================================
-bool HOMARD_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR) 
+CORBA::Boolean HOMARD_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
 {
   if(CORBA::is_nil(myCurrentStudy))
     return false;
@@ -2232,7 +2475,7 @@ bool HOMARD_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
 };
 
 //===========================================================================
-CORBA::Boolean HOMARD_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) 
+CORBA::Boolean HOMARD_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject)
 {
   // No Copy/Paste support
   return false;
@@ -2325,6 +2568,7 @@ HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::newZone()
 //==========================================================================
 Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
                                        CORBA::Boolean isPublished,
+                                       CORBA::Boolean isMultiFile,
                                        CORBA::Boolean& isValidScript)
 {
    MESSAGE ("Entree dans DumpPython");
@@ -2343,10 +2587,15 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
    aScript += "\"\"\"\n";
    aScript += "__revision__ = \"V1.2\"\n";
    aScript += "import HOMARD\n";
-   aScript += "import salome\n";
+   if( isMultiFile )
+      aScript += "import salome\n";
    aScript += "homard = salome.lcc.FindOrLoadComponent('FactoryServer','HOMARD')\n";
-   aScript += "def RebuildData(theStudy):\n";
-   aScript += "\thomard.SetCurrentStudy(theStudy)\n";
+   if( isMultiFile ) {
+      aScript += "def RebuildData(theStudy):\n";
+      aScript += "\thomard.SetCurrentStudy(theStudy)\n";
+   }
+   else
+      aScript += "\thomard.SetCurrentStudy(salome.myStudy)\n";
 
 
    if (myContextMap[GetCurrentStudyID()]._mesBoundarys.size() > 0)
@@ -2371,8 +2620,8 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
     aScript +=  "\n# =====================";
    }
    std::map<std::string, HOMARD::HOMARD_Zone_var>::const_iterator it_zone;
-   for ( it_zone  = myContextMap[GetCurrentStudyID()]._mesZones.begin(); 
-         it_zone != myContextMap[GetCurrentStudyID()]._mesZones.end(); ++it_zone) 
+   for ( it_zone  = myContextMap[GetCurrentStudyID()]._mesZones.begin();
+         it_zone != myContextMap[GetCurrentStudyID()]._mesZones.end(); ++it_zone)
    {
     HOMARD::HOMARD_Zone_var maZone = (*it_zone).second;
     CORBA::String_var dumpCorbaZone = maZone->GetDumpPython();
@@ -2415,7 +2664,7 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
            std::string mesh0 = cMesh0.in();
            CORBA::String_var cMeshName0= myIteration->GetMeshName();
            std::string meshName0 = cMeshName0.in();
-           dumpCas += meshName0 + std::string("', '")+ mesh0 + std::string("')\n"); 
+           dumpCas += meshName0 + std::string("', '")+ mesh0 + std::string("')\n");
            CORBA::String_var dumpCorbaCase = myCase->GetDumpPython();
            std::string dumpCas2= dumpCorbaCase.in();
 
@@ -2426,8 +2675,8 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
    aScript += "#\n# Creation of the iterations" ;
    aScript += "\n# ==========================";
    std::map<std::string, HOMARD::HOMARD_Iteration_var>::const_iterator it_iter;
-   for (it_iter  = myContextMap[GetCurrentStudyID()]._mesIterations.begin(); 
-        it_iter != myContextMap[GetCurrentStudyID()]._mesIterations.end(); ++it_iter) 
+   for (it_iter  = myContextMap[GetCurrentStudyID()]._mesIterations.begin();
+        it_iter != myContextMap[GetCurrentStudyID()]._mesIterations.end(); ++it_iter)
    {
     HOMARD::HOMARD_Iteration_var aIter = (*it_iter).second;
     CORBA::String_var dumpCorbaIter = aIter->GetDumpPython();
@@ -2435,6 +2684,12 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
     aScript+=dumpIter;
    }
 
+    if( isMultiFile )
+      aScript += "\n\tpass";
+    aScript += "\n";
+
+    if( !isMultiFile ) // remove unnecessary tabulation
+      aScript = RemoveTabulation( aScript );
 
    const size_t aLen = strlen(aScript.c_str());
    char* aBuffer = new char[aLen+1];
@@ -2450,9 +2705,9 @@ Engines::TMPFile* HOMARD_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
 extern "C"
 {
   PortableServer::ObjectId* HOMARDEngine_factory(CORBA::ORB_ptr orb,
-                                                 PortableServer::POA_ptr poa, 
+                                                 PortableServer::POA_ptr poa,
                                                  PortableServer::ObjectId* contId,
-                                                 const char* instanceName, 
+                                                 const char* instanceName,
                                                  const char* interfaceName)
   {
     MESSAGE("PortableServer::ObjectId* HOMARDEngine_factory()");
index b6dff452bfaf98a30649db45dd5b9578e218cbcc..4f646768939bfbbb73b3b35d49e8f0d2288e3746 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_GEN_I_HXX_
 #define _HOMARD_GEN_I_HXX_
 
 class HOMARD_Gen_i:
   public virtual Engines_Component_i,
   public virtual POA_HOMARD::HOMARD_Gen
-{ 
+{
 public:
-  HOMARD_Gen_i(CORBA::ORB_ptr orb,
-               PortableServer::POA_ptr poa,
-               PortableServer::ObjectId* contId, 
-               const char* instanceName, 
-               const char* interfaceName);
+  HOMARD_Gen_i( CORBA::ORB_ptr orb,
+                PortableServer::POA_ptr poa,
+                PortableServer::ObjectId* contId,
+                const char* instanceName,
+                const char* interfaceName );
   virtual ~HOMARD_Gen_i();
-  
+
 
   SALOMEDS::Study_ptr             GetCurrentStudy();
   void                            SetCurrentStudy(SALOMEDS::Study_ptr theStudy);
-  int                             GetCurrentStudyID();
+  CORBA::Long                     GetCurrentStudyID();
 
   HOMARD::HOMARD_Cas_ptr          CreateCase      (const char* nomCas,
                                                    const char* MeshName, const char* FileName);
   HOMARD::HOMARD_Hypothesis_ptr   CreateHypothesis(const char* nomHypothesis);
   HOMARD::HOMARD_Iteration_ptr    CreateIteration (const char* nomIter, const char* nomIterParent);
-  HOMARD::HOMARD_Zone_ptr         CreateZone      (const char* nomZone, CORBA::Long typeZone);
-  HOMARD::HOMARD_Boundary_ptr     CreateBoundary  (const char* nomBoundary, CORBA::Long typeBoundary);
+
+  HOMARD::HOMARD_Zone_ptr         CreateZone (const char* nomZone, CORBA::Long typeZone);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneBox (const char* nomZone,
+                                      CORBA::Double Xmini, CORBA::Double Xmaxi,
+                                      CORBA::Double Ymini, CORBA::Double Ymaxi,
+                                      CORBA::Double Zmini, CORBA::Double Zmaxi);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneSphere (const char* nomZone,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre, CORBA::Double Rayon);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneCylinder (const char* nomZone,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+                                      CORBA::Double Rayon, CORBA::Double Haut);
+  HOMARD::HOMARD_Zone_ptr         CreateZonePipe (const char* nomZone,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
+                                      CORBA::Double Rayon, CORBA::Double Haut, CORBA::Double Rayonint);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneBox2D (const char* nomZone,
+                                      CORBA::Double Umini, CORBA::Double Umaxi,
+                                      CORBA::Double Vmini, CORBA::Double Vmaxi,
+                                      CORBA::Long Orient);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneDisk (const char* nomZone,
+                                      CORBA::Double Ucentre, CORBA::Double Vcentre,
+                                      CORBA::Double Rayon,
+                                      CORBA::Long Orient);
+  HOMARD::HOMARD_Zone_ptr         CreateZoneDiskWithHole (const char* nomZone,
+                                      CORBA::Double Ucentre, CORBA::Double Vcentre,
+                                      CORBA::Double Rayon, CORBA::Double Rayonint,
+                                      CORBA::Long Orient);
+
+  HOMARD::HOMARD_Boundary_ptr     CreateBoundary (const char* nomBoundary, CORBA::Long typeBoundary);
+  HOMARD::HOMARD_Boundary_ptr     CreateBoundaryDi (const char* nomBoundary,
+                                                    const char* MeshName, const char* FileName);
+  HOMARD::HOMARD_Boundary_ptr     CreateBoundaryCylinder (const char* nomBoundary,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
+                                      CORBA::Double Rayon);
+  HOMARD::HOMARD_Boundary_ptr     CreateBoundarySphere (const char* nomBoundary,
+                                      CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
+                                      CORBA::Double Rayon);
 
   HOMARD::HOMARD_Cas_ptr          GetCas        (const char* nomCas);
   HOMARD::HOMARD_Zone_ptr         GetZone       (const char* nomZone);
@@ -54,14 +110,15 @@ public:
                                                     const char* labelIter);
   void                            AssociateIterIter(const char* nomIterParent, const char* nomIter);
   void                            AssociateIterHypo(const char* nomIter, const char* nomHypothesis);
-  void                            AssociateHypoZone(const char* nomZone, const char* nomHypothesis);
+  void                            AssociateHypoZone(const char* nomHypothesis, const char* nomZone, CORBA::Long TypeUse);
   void                            DissociateHypoZone(const char* nomZone, const char* nomHypothesis);
 
+  void                            InvalideBoundary(const char* nomBoundary);
   void                            InvalideZone(const char* nomZone);
   void                            InvalideHypo(const char* nomHypo);
   void                            InvalideIter(const char* nomIter);
 
-  void                            SetEtatIter(const char* nomIter,const bool EtatCalcul);
+  void                            SetEtatIter(const char* nomIter,const CORBA::Boolean EtatCalcul);
 
   HOMARD::listeCases*             GetAllCases();
   HOMARD::listeHypotheses*        GetAllHypotheses();
@@ -70,15 +127,17 @@ public:
   HOMARD::listeBoundarys*         GetAllBoundarys();
 
   char*                           GetCaseName(const char* nomIteration);
-  
-  CORBA::Boolean                  Compute(const char* nomIteration, CORBA::Long etatMenage);
+
+  CORBA::Long                     Compute(const char* nomIteration, CORBA::Long etatMenage);
   CORBA::Boolean                  VerifieDir(const char* nomDir);
-  
+
   void                            PublishResultInSmesh(const char* NomFich, CORBA::Long IconeType);
   void                            DeleteResultInSmesh(const char* NomFich, const char* MeshName);
   void                            PublishFileUnderIteration(const char* NomIter, const char* NomFich,
                                                             const char* Commentaire);
 
+  void                            IsValidStudy();
+
   // ---------------------------------------------------------------
   // next functions are inherited from SALOMEDS::Driver interface
   // ---------------------------------------------------------------
@@ -86,26 +145,26 @@ public:
   // --> Persistence
   virtual SALOMEDS::TMPFile*      Save(SALOMEDS::SComponent_ptr theComponent,
                                        const char* theURL,
-                                       bool isMultiFile);
-  
+                                       CORBA::Boolean isMultiFile);
+
   virtual SALOMEDS::TMPFile*      SaveASCII(SALOMEDS::SComponent_ptr theComponent,
                                             const char* theURL,
-                                            bool isMultiFile);
-  
-  virtual bool                    Load(SALOMEDS::SComponent_ptr theComponent,
+                                            CORBA::Boolean isMultiFile);
+
+  virtual CORBA::Boolean          Load(SALOMEDS::SComponent_ptr theComponent,
                                        const SALOMEDS::TMPFile& theStream,
                                        const char* theURL,
-                                       bool isMultiFile);
+                                       CORBA::Boolean isMultiFile);
 
-  virtual bool                    LoadASCII(SALOMEDS::SComponent_ptr theComponent,
+  virtual CORBA::Boolean          LoadASCII(SALOMEDS::SComponent_ptr theComponent,
                                             const SALOMEDS::TMPFile& theStream,
                                             const char* theURL,
-                                            bool isMultiFile);
+                                            CORBA::Boolean isMultiFile);
 
   virtual void                    Close(SALOMEDS::SComponent_ptr IORSComponent);
-  
+
   virtual char*                   ComponentDataType();
-  
+
   virtual char*                   IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
                                                          const char* IORString,
                                                          CORBA::Boolean isMultiFile,
@@ -115,9 +174,9 @@ public:
                                                          const char* aLocalPersistentID,
                                                          CORBA::Boolean isMultiFile,
                                                          CORBA::Boolean isASCII);
-  
+
   // --> Data publishing
-  virtual bool                    CanPublishInStudy(CORBA::Object_ptr theIOR);
+  virtual CORBA::Boolean          CanPublishInStudy(CORBA::Object_ptr theIOR);
 
   virtual SALOMEDS::SObject_ptr   PublishInStudy(SALOMEDS::Study_ptr theStudy,
                                                  SALOMEDS::SObject_ptr theSObject,
@@ -126,7 +185,7 @@ public:
 
   // --> Copy/Paste
   virtual CORBA::Boolean          CanCopy(SALOMEDS::SObject_ptr theObject);
-  
+
   virtual SALOMEDS::TMPFile*      CopyFrom(SALOMEDS::SObject_ptr theObject,
                                            CORBA::Long& theObjectID);
 
@@ -141,7 +200,7 @@ private:
   void                            addInStudy(SALOMEDS::Study_ptr theStudy);
   SALOMEDS::SObject_ptr           PublishCaseInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
                                                      HOMARD::HOMARD_Cas_ptr theObject, const char* theName);
-  
+
   SALOMEDS::SObject_ptr           PublishHypotheseInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::StudyBuilder_var aStudyBuilder,
                                                      HOMARD::HOMARD_Hypothesis_ptr theObject, const char* theName);
 
@@ -163,6 +222,7 @@ private:
 
   virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
                                        CORBA::Boolean isPublished,
+                                       CORBA::Boolean isMultiFile,
                                        CORBA::Boolean& isValidScript);
 
 
@@ -177,7 +237,7 @@ private:
     std::map<int, PortableServer::ServantBase*>          _idmap;
   };
   typedef std::map<int, StudyContext> ContextMap;
-  
+
   ::HOMARD_Gen*                 myHomard;
   SALOMEDS::Study_var           myCurrentStudy;
   ContextMap                    myContextMap;
index 0118ff5566588c925ee807267dbe9e98b7eb996e..dd84483bd0c9bbf43db762c0187374461385dc49 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Hypothesis_i.hxx"
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Hypothesis.hxx"
@@ -159,6 +178,7 @@ HOMARD::InfosHypo* HOMARD_Hypothesis_i::GetField()
   aInfosHypo->ThreshR    = CORBA::Double( myHomardHypothesis->GetThreshR() );
   aInfosHypo->TypeThC    = CORBA::Long( myHomardHypothesis->GetUnRefThrType() );
   aInfosHypo->ThreshC    = CORBA::Double( myHomardHypothesis->GetThreshC() );
+  aInfosHypo->UsField    = CORBA::Long( myHomardHypothesis->GetUseField() );
   aInfosHypo->UsCmpI     = CORBA::Long( myHomardHypothesis->GetUseCompI() );
   return aInfosHypo;
 }
@@ -191,10 +211,10 @@ void HOMARD_Hypothesis_i::AddIteration( const char* NomIteration )
 }
 
 //=============================================================================
-void  HOMARD_Hypothesis_i::AddZone( const char* NomZone )
+void  HOMARD_Hypothesis_i::AddZone( const char* NomZone, CORBA::Long TypeUse )
 {
   ASSERT( myHomardHypothesis );
-  myHomardHypothesis->AddZone( NomZone );
+  myHomardHypothesis->AddZone( NomZone, TypeUse );
 }
 //=============================================================================
 void  HOMARD_Hypothesis_i::SupprZone      (const char * NomZone)
@@ -244,7 +264,7 @@ void HOMARD_Hypothesis_i::AddComp( const char* NomComposant )
 //=============================================================================
 void HOMARD_Hypothesis_i::SupprComp()
 {
-  ASSERT( myHomardHypothesis );  
+  ASSERT( myHomardHypothesis );
   myHomardHypothesis->SupprComp();
 }
 
@@ -339,6 +359,42 @@ HOMARD::listFieldInterpHypo* HOMARD_Hypothesis_i::GetListFieldInterp()
   }
   return aResult._retn();
 }
+//=============================================================================
+void HOMARD_Hypothesis_i::SetNivMax( CORBA::Long NivMax )
+{
+  ASSERT( myHomardHypothesis );
+  myHomardHypothesis->SetNivMax( NivMax );
+}
+//=============================================================================
+CORBA::Long HOMARD_Hypothesis_i::GetNivMax()
+{
+  ASSERT( myHomardHypothesis );
+  return myHomardHypothesis->GetNivMax();
+}
+//=============================================================================
+void HOMARD_Hypothesis_i::SetDiamMin( CORBA::Double DiamMin )
+{
+  ASSERT( myHomardHypothesis );
+  myHomardHypothesis->SetDiamMin( DiamMin );
+}
+//=============================================================================
+CORBA::Double HOMARD_Hypothesis_i::GetDiamMin()
+{
+  ASSERT( myHomardHypothesis );
+  return myHomardHypothesis->GetDiamMin();
+}
+//=============================================================================
+void HOMARD_Hypothesis_i::SetAdapInit( CORBA::Long AdapInit )
+{
+  ASSERT( myHomardHypothesis );
+  myHomardHypothesis->SetAdapInit( AdapInit );
+}
+//=============================================================================
+CORBA::Long HOMARD_Hypothesis_i::GetAdapInit()
+{
+  ASSERT( myHomardHypothesis );
+  return myHomardHypothesis->GetAdapInit();
+}
 
 //=============================================================================
 std::string HOMARD_Hypothesis_i::Dump() const
index d5268dfeb39e6301d2c8d0821ab379202aa848c5..ea7649a3866e2121f8f652694d2f3cd21c1479ad 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_HYPOTHESIS_I_HXX_
 #define _HOMARD_HYPOTHESIS_I_HXX_
 
 #include CORBA_SERVER_HEADER(HOMARD_Gen)
 #include CORBA_SERVER_HEADER(HOMARD_Hypothesis)
 
+#include "SALOME_Component_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
 #include <string>
 
 class HOMARD_Hypothesis;
 
-class HOMARD_Hypothesis_i: public virtual POA_HOMARD::HOMARD_Hypothesis,
-                          public virtual PortableServer::ServantBase
-{ 
+class HOMARD_Hypothesis_i:
+  public virtual Engines_Component_i,
+  public virtual POA_HOMARD::HOMARD_Hypothesis,
+  public virtual PortableServer::ServantBase
+{
 public:
   HOMARD_Hypothesis_i( CORBA::ORB_ptr orb, HOMARD::HOMARD_Gen_var gen_i );
   HOMARD_Hypothesis_i();
@@ -41,7 +66,7 @@ public:
   HOMARD::InfosHypo*           GetField();
 
   void                         AddIteration( const char* NomIteration );
-  void                         AddZone( const char* NomZone );
+  void                         AddZone( const char* NomZone, CORBA::Long TypeUse );
   void                         SupprZone( const char* NomZone );
   void                         AddComp( const char* NomComposant );
   void                         SupprComp();
@@ -60,6 +85,12 @@ public:
   void                         SupprFieldInterp();
   HOMARD::listFieldInterpHypo* GetListFieldInterp();
 
+  void                         SetNivMax( CORBA::Long NivMax );
+  CORBA::Long                  GetNivMax();
+  void                         SetDiamMin( CORBA::Double DiamMin );
+  CORBA::Double                GetDiamMin();
+  void                         SetAdapInit( CORBA::Long AdapInit );
+  CORBA::Long                  GetAdapInit();
 
   std::string                  Dump() const;
   bool                         Restore( const std::string& stream );
index bbd7b184f9352b0c6133a7974d38928caf4daa3e..a913cf92b39681d6fa52aec3475f57e3e931edd0 100644 (file)
@@ -1,8 +1,29 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Iteration_i.hxx"
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Iteration.hxx"
 #include "HOMARD_DriverTools.hxx"
 
+#include "SALOMEDS_Tool.hxx"
+
 #include "utilities.h"
 
 //=============================================================================
@@ -22,9 +43,9 @@ HOMARD_Iteration_i::HOMARD_Iteration_i()
  */
 //=============================================================================
 HOMARD_Iteration_i::HOMARD_Iteration_i( CORBA::ORB_ptr orb,
-                                       HOMARD::HOMARD_Gen_var engine )
+                                        HOMARD::HOMARD_Gen_var engine )
 {
-  MESSAGE( "HOMARD_Iteration_i" );
+  MESSAGE("constructor");
   _gen_i = engine;
   _orb = orb;
   myHomardIteration = new ::HOMARD_Iteration();
@@ -64,8 +85,6 @@ char* HOMARD_Iteration_i::GetDumpPython()
   return CORBA::string_dup( myHomardIteration->GetDumpPython().c_str() );
 }
 
-//=============================================================================
-
 //=============================================================================
 void HOMARD_Iteration_i::SetEtat( CORBA::Boolean Etat )
 {
@@ -147,10 +166,17 @@ void HOMARD_Iteration_i::AddIteration( const char* NomIter )
 }
 
 //=============================================================================
-CORBA::Boolean  HOMARD_Iteration_i::Compute()
+CORBA::Long  HOMARD_Iteration_i::Compute(CORBA::Long etatMenage)
 {
+  MESSAGE ( "Compute : calcul d'une iteration" );
   ASSERT( myHomardIteration );
-  return  CORBA::Boolean( myHomardIteration->Compute() );
+//
+// Nom de l'iteration
+  char* IterName = GetName() ;
+  MESSAGE ( ". IterName = " << IterName );
+// B. Calcul : on passe par la methode sur l'objet HOMARD
+// Il serait plus elegant de tout faire ici, mais il est complexe de paser tout le contexte
+  return _gen_i->Compute(IterName, etatMenage) ;
 }
 
 //=============================================================================
index 79906e173d5ac5d2ffd723fd24e668e47bc7a59d..859032740583de915e1a674fe620d587ff54d068 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_ITERATION_I_HXX_
 #define _HOMARD_ITERATION_I_HXX_
 
 #include CORBA_SERVER_HEADER(HOMARD_Gen)
 #include CORBA_SERVER_HEADER(HOMARD_Iteration)
 
+#include "SALOME_Component_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
 #include <string>
 
 class HOMARD_Iteration;
 
-class HOMARD_Iteration_i: public virtual POA_HOMARD::HOMARD_Iteration,
-                         public virtual PortableServer::ServantBase
-{ 
+class HOMARD_Iteration_i:
+  public virtual Engines_Component_i,
+  public virtual POA_HOMARD::HOMARD_Iteration,
+  public virtual PortableServer::ServantBase
+{
 public:
-  HOMARD_Iteration_i( CORBA::ORB_ptr orb, HOMARD::HOMARD_Gen_var gen_i );
+  HOMARD_Iteration_i( CORBA::ORB_ptr orb,
+                      HOMARD::HOMARD_Gen_var gen_i );
   HOMARD_Iteration_i();
-  
+
   virtual ~HOMARD_Iteration_i();
 
   void                   SetName( const char* NomIteration );
@@ -58,7 +84,7 @@ public:
   void                   SetHypoName( const char* NomHypo );
   char*                  GetHypoName();
 
-  CORBA::Boolean         Compute();
+  CORBA::Long            Compute(CORBA::Long etatMenage);
 
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );
index 5bee195bdc5b6a583da7344972ccf773a526a5bc..1dbab43d98585999d999ad4171e2a5446b0ba2d1 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HOMARD_Zone_i.hxx"
 #include "HOMARD_Gen_i.hxx"
 #include "HOMARD_Zone.hxx"
@@ -87,11 +106,11 @@ void HOMARD_Zone_i::SetBox( double X0, double X1, double X2, double X3, double X
 }
 
 //=============================================================================
-HOMARD::double_array* HOMARD_Zone_i::GetBox()
+HOMARD::double_array* HOMARD_Zone_i::GetCoords()
 {
   ASSERT( myHomardZone );
   HOMARD::double_array_var aResult = new HOMARD::double_array();
-  std::vector<double> mesCoor = myHomardZone->GetBox();
+  std::vector<double> mesCoor = myHomardZone->GetCoords();
   aResult->length( mesCoor .size() );
   std::vector<double>::const_iterator it;
   int i = 0;
@@ -101,24 +120,27 @@ HOMARD::double_array* HOMARD_Zone_i::GetBox()
 }
 
 //=============================================================================
-void HOMARD_Zone_i::SetSphere( double Xcentre, double Ycentre, double ZCentre, double rayon )
+void HOMARD_Zone_i::SetSphere( double Xcentre, double Ycentre, double Zcentre, double Rayon )
 {
   ASSERT( myHomardZone );
-  myHomardZone->SetSphere( Xcentre, Ycentre, ZCentre, rayon );
+  myHomardZone->SetSphere( Xcentre, Ycentre, Zcentre, Rayon );
 }
 
 //=============================================================================
-HOMARD::double_array* HOMARD_Zone_i::GetSphere()
+void HOMARD_Zone_i::SetCylinder( double Xcentre, double Ycentre, double Zcentre,
+                                 double Xaxis, double Yaxis, double Zaxis,
+                                 double Rayon, double Haut )
 {
   ASSERT( myHomardZone );
-  HOMARD::double_array_var aResult = new HOMARD::double_array();
-  std::vector<double> mesCoor = myHomardZone->GetSphere();
-  aResult->length( mesCoor .size() );
-  std::vector<double>::const_iterator it;
-  int i = 0;
-  for ( it = mesCoor.begin(); it != mesCoor.end(); it++ )
-    aResult[i++] = (*it);
-  return aResult._retn();
+  myHomardZone->SetCylinder( Xcentre, Ycentre, Zcentre, Xaxis, Yaxis, Zaxis, Rayon, Haut );
+}
+//=============================================================================
+void HOMARD_Zone_i::SetPipe( double Xcentre, double Ycentre, double Zcentre,
+                             double Xaxis, double Yaxis, double Zaxis,
+                             double Rayon, double Haut, double Rayonint )
+{
+  ASSERT( myHomardZone );
+  myHomardZone->SetPipe( Xcentre, Ycentre, Zcentre, Xaxis, Yaxis, Zaxis, Rayon, Haut, Rayonint );
 }
 
 //=============================================================================
@@ -146,8 +168,10 @@ HOMARD::double_array* HOMARD_Zone_i::GetLimit()
 //=============================================================================
 void HOMARD_Zone_i::AddHypo( const char* NomHypo )
 {
+  MESSAGE ( " AddHypo, NomHypo= " << NomHypo);
   ASSERT( myHomardZone );
   myHomardZone->AddHypo( NomHypo );
+  MESSAGE ( " FIn de AddHypo");
 }
 
 //=============================================================================
index 1d5e72b6b93739b71a256d81e9139fba70fb5165..63526668ccbdc5b8cace5c5126074905b8aca4da 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef _HOMARD_Zone_I_HXX_
 #define _HOMARD_Zone_I_HXX_
 
 #include CORBA_SERVER_HEADER(HOMARD_Gen)
 #include CORBA_SERVER_HEADER(HOMARD_Zone)
 
+#include "SALOME_Component_i.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
 #include <string>
 
 class HOMARD_Zone;
 
-class HOMARD_Zone_i: public virtual POA_HOMARD::HOMARD_Zone,
-                     public virtual PortableServer::ServantBase
-{ 
+class HOMARD_Zone_i:
+  public virtual Engines_Component_i,
+  public virtual POA_HOMARD::HOMARD_Zone,
+  public virtual PortableServer::ServantBase
+{
 public:
   HOMARD_Zone_i( CORBA::ORB_ptr orb, HOMARD::HOMARD_Gen_var gen_i );
   HOMARD_Zone_i();
-  
+
   virtual ~HOMARD_Zone_i();
 
   void                   SetName( const char* NomZone );
   char*                  GetName();
   char*                  GetDumpPython();
-  
+
   void                   SetZoneType( CORBA::Long ZoneType );
-  
+
   CORBA::Long            GetZoneType();
-  
-  HOMARD::double_array*  GetBox();
-  void                   SetBox( double Xmini, double Xmaxi, 
-                                double Ymini, double Ymaxi, 
-                                double Zmini, double Zmaxi );
-  
-  HOMARD::double_array*  GetSphere();
+
+  HOMARD::double_array*  GetCoords();
+  void                   SetBox( double Xmini, double Xmaxi,
+                                 double Ymini, double Ymaxi,
+                                 double Zmini, double Zmaxi );
+
   void                   SetSphere( double Xcentre, double Ycentre, double ZCentre,
-                                   double rayon );
-  
+                                    double Rayon );
+
+  void                   SetCylinder( double Xcentre, double Ycentre, double ZCentre,
+                                      double Xaxis, double Yaxis, double Zaxis,
+                                      double Rayon, double Haut );
+  void                   SetPipe( double Xcentre, double Ycentre, double ZCentre,
+                                  double Xaxis, double Yaxis, double Zaxis,
+                                  double Rayon, double Haut, double Rayonint );
+
   HOMARD::double_array*  GetLimit();
   void                   SetLimit( double Xincr, double Yincr, double Zincr);
-  
+
   void                   AddHypo( const char *NomHypo );
   void                   SupprHypo( const char *NomHypo );
   HOMARD::listeHypo*     GetHypo();
-  
+
   std::string            Dump() const;
   bool                   Restore( const std::string& stream );
 
 private:
   ::HOMARD_Zone*         myHomardZone;
-  
+
   CORBA::ORB_ptr         _orb;
   HOMARD::HOMARD_Gen_var _gen_i;
 };
index bacc234ad8bca12c48f20a2156af8d6620dd053e..8aab75c352fb6c724f0553d693f2338228b1709e 100644 (file)
@@ -1,9 +1,29 @@
+// Copyright (C) 2011-2012  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
+//
+
 #include "HomardMedCommun.h"
-using namespace std;
+
 #include <iostream>
 #include <cstdlib>
 #include <cmath>
 #include <cstring>
+#include <algorithm>
 
 extern "C" 
 {
@@ -15,69 +35,98 @@ extern "C"
 std::set<std::string> GetListeGroupesInMedFile(const char * aFile)
 // =======================================================================
 {
-   std::set<std::string> ListeGroupes;
-   int MedIdt = MEDouvrir(const_cast<char *>(aFile),MED_LECTURE);
-   if ( MedIdt < 0 ) { return ListeGroupes; };
-
-   char maa[MED_TAILLE_NOM+1];
-   char desc[MED_TAILLE_DESC+1];
-   char nomfam[MED_TAILLE_NOM+1];
-   med_int numfam;
+  std::set<std::string> ListeGroupes;
+  med_idt medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
+  if ( medIdt < 0 ) { return ListeGroupes; };
 
-   med_int mdim;
-   med_maillage type;
-   med_int numMaillage=1;
-   if ( MEDmaaInfo(MedIdt,numMaillage,maa,&mdim,&type,desc) < 0 ) { return ListeGroupes; };
+  char meshname[MED_NAME_SIZE+1];
+  med_int spacedim,meshdim;
+  med_mesh_type meshtype;
+  char descriptionription[MED_COMMENT_SIZE+1];
+  char dtunit[MED_SNAME_SIZE+1];
+  med_sorting_type sortingtype;
+  med_int nstep;
+  med_axis_type axistype;
+  int naxis = MEDmeshnAxis(medIdt,1);
+  char *axisname=new char[naxis*MED_SNAME_SIZE+1];
+  char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
+  med_err aRet = MEDmeshInfo(medIdt,
+                          1,
+                          meshname,
+                          &spacedim,
+                          &meshdim,
+                          &meshtype,
+                          descriptionription,
+                          dtunit,
+                          &sortingtype,
+                          &nstep,
+                          &axistype,
+                          axisname,
+                          axisunit);
+   if ( aRet < 0 ) { return ListeGroupes; };
+   
    med_int nfam, ngro, natt;
-   if ((nfam = MEDnFam(MedIdt,maa)) < 0) { return ListeGroupes; };
-   for (int i=0;i<nfam;i++) 
-   {
-      if ((ngro = MEDnGroupe(MedIdt,maa,i+1)) < 0) 
-      {
-        // GERALD -- QMESSAGE BOX
-        std::cerr << " Error : Families are unreadable" << std::endl;
-        std::cerr << "Pb avec la famille : " << i << std::endl;
-        break;
-      }
-      if (ngro == 0) continue;
-
-      if ((natt = MEDnAttribut(MedIdt,maa,i+1)) < 0) 
-      {
-        // GERALD -- QMESSAGE BOX
-        std::cerr << " Error : Families are unreadable" << std::endl;
-        std::cerr << "Pb avec la famille : " << i << std::endl;
-        break;
-      }
+   if ((nfam = MEDnFamily(medIdt,meshname)) < 0) { return ListeGroupes; };
+   
+  char familyname[MED_NAME_SIZE+1];
+  med_int numfam;
+  for (int i=0;i<nfam;i++) 
+  {
+    if ((ngro = MEDnFamilyGroup(medIdt,meshname,i+1)) < 0) 
+    {
+      // GERALD -- QMESSAGE BOX
+      std::cerr << " Error : Families are unreadable" << std::endl;
+      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
+      break;
+    }
+    if (ngro == 0) continue;
 
-      med_int* attide = (med_int*) malloc(sizeof(med_int)*natt);
-      med_int* attval = (med_int*) malloc(sizeof(med_int)*natt);
-      char*    attdes = (char *)   malloc(MED_TAILLE_DESC*natt+1);
-      char*    gro    = (char*)    malloc(MED_TAILLE_LNOM*ngro+1);
-      if (MEDfamInfo(MedIdt,maa,i+1,nomfam,&numfam,attide,attval,attdes,
-                      &natt,gro,&ngro) < 0) 
-      { 
-        // GERALD -- QMESSAGE BOX
-        std::cerr << " Error : Families are unreadable" << std::endl;
-        std::cerr << "Pb avec la famille : " << i << std::endl;
-         break;
-      }
-      free(attide);
-      free(attval);
-      free(attdes);
-      if ((numfam )> 0) { continue;} // On ne garde que les familles d elts
+    if ((natt = MEDnFamily23Attribute(medIdt,meshname,i+1)) < 0) 
+    {
+      // GERALD -- QMESSAGE BOX
+      std::cerr << " Error : Families are unreadable" << std::endl;
+      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
+      break;
+    }
 
-      for (int j=0;j<ngro;j++) 
-      {
-           char str2[MED_TAILLE_LNOM+1];
-           strncpy(str2,gro+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
-           str2[MED_TAILLE_LNOM] = '\0';
-           ListeGroupes.insert(std::string(str2));
+    med_int* attide = (med_int*) malloc(sizeof(med_int)*natt);
+    med_int* attval = (med_int*) malloc(sizeof(med_int)*natt);
+    char*    attdes = (char *)   malloc(MED_COMMENT_SIZE*natt+1);
+    char*    gro    = (char*)    malloc(MED_LNAME_SIZE*ngro+1);
+    
+    med_err aRet = MEDfamily23Info(medIdt,
+                                meshname,
+                                i+1,
+                                familyname,
+                                attide,
+                                attval,
+                                attdes,
+                                &numfam,
+                                gro);
+    
+    if (aRet < 0) 
+    { 
+      // GERALD -- QMESSAGE BOX
+      std::cerr << " Error : Families are unreadable" << std::endl;
+      std::cerr << "Pb avec la famille : " << i+1 << std::endl;
+        break;
+    }
+    free(attide);
+    free(attval);
+    free(attdes);
+    if ((numfam )> 0) { continue;} // On ne garde que les familles d elts
 
-      }
-      free(gro);
-   }
-   MEDfermer(MedIdt);
-   return ListeGroupes;
+    for (int j=0;j<ngro;j++) 
+    {
+          char str2[MED_LNAME_SIZE+1];
+          strncpy(str2,gro+j*MED_LNAME_SIZE,MED_LNAME_SIZE);
+          str2[MED_LNAME_SIZE] = '\0';
+          ListeGroupes.insert(std::string(str2));
+    }
+    free(gro);
+  }
+  MEDfileClose(medIdt);
+  return ListeGroupes;
 }
 
 // =======================================================================
@@ -92,9 +141,9 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
 
    std::vector<double> LesExtremes;
    
-                               // Ouverture du Fichier Med
-   int MedIdt = MEDouvrir(const_cast<char *>(aFile),MED_LECTURE);
-   if (MedIdt <0) 
+   // Ouverture du Fichier Med
+   med_idt medIdt = MEDfileOpen(aFile,MED_ACC_RDONLY);
+   if (medIdt <0) 
    {
           // GERALD -- QMESSAGE BOX
           std::cerr << "Error : mesh is unreadable" << std::endl;
@@ -102,8 +151,8 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
    }
 
                                 // Le fichier Med est lisible
-                               // Boucle sur les noms de maillage
-   int numberOfMeshes = MEDnMaa(MedIdt) ;
+    // Boucle sur les noms de maillage
+   med_int numberOfMeshes = MEDnMesh(medIdt) ;
    if (numberOfMeshes != 1 ) 
    {
           // GERALD -- QMESSAGE BOX
@@ -111,40 +160,70 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
           return LesExtremes;
    }
 
-   char maa[MED_TAILLE_NOM+1];
-   char desc[MED_TAILLE_DESC+1];
-   char nomcoo[3*MED_TAILLE_PNOM+1];
-   char unicoo[3*MED_TAILLE_PNOM+1];
-   med_maillage type;
-   med_repere rep;
-   med_booleen inonoe,inunoe;
-
-   med_int dim;
-   med_int numMaillage=1;
+  char meshname[MED_NAME_SIZE+1];
+  med_int spacedim,meshdim;
+  med_mesh_type meshtype;
+  char descriptionription[MED_COMMENT_SIZE+1];
+  char dtunit[MED_SNAME_SIZE+1];
+  med_sorting_type sortingtype;
+  med_int nstep;
+  med_axis_type axistype;
+  int naxis = MEDmeshnAxis(medIdt,1);
+  char *axisname=new char[naxis*MED_SNAME_SIZE+1];
+  char *axisunit=new char[naxis*MED_SNAME_SIZE+1];
+  med_err aRet = MEDmeshInfo(medIdt,
+                          1,
+                          meshname,
+                          &spacedim,
+                          &meshdim,
+                          &meshtype,
+                          descriptionription,
+                          dtunit,
+                          &sortingtype,
+                          &nstep,
+                          &axistype,
+                          axisname,
+                          axisunit);
 
-   if (MEDmaaInfo(MedIdt,numMaillage,maa,&dim,&type,desc) < 0) 
+   if (aRet < 0) 
    {
           // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh " << numMaillage << " is unreadable" << std::endl;
+          std::cerr << "Error : mesh is unreadable" << std::endl;
           return LesExtremes;
    }
 
-   med_int nnoe  = MEDnEntMaa(MedIdt,maa,MED_COOR,MED_NOEUD,(med_geometrie_element)0,(med_connectivite)0);
+  med_bool chgt,trsf;
+  med_int nnoe  = MEDmeshnEntity(medIdt,
+                            meshname,
+                            MED_NO_DT,
+                            MED_NO_IT,
+                            MED_NODE,
+                            MED_NO_GEOTYPE,
+                            MED_COORDINATE,
+                            MED_NO_CMODE,
+                            &chgt,
+                            &trsf);
    if ( nnoe < 0) 
    {
           // GERALD -- QMESSAGE BOX
-          std::cerr << "Error : mesh " << numMaillage << " is unreadable" << std::endl;
+          std::cerr << "Error : mesh is unreadable" << std::endl;
           return LesExtremes;
    }
 
-   med_float* coo    = (med_float*) malloc(sizeof(med_float)*nnoe*dim);
-   med_int*   numnoe = (med_int*)   malloc(sizeof(med_int)*nnoe);
-   med_int*   nufano = (med_int*)   malloc(sizeof(med_int)*nnoe);
-   char *     nomnoe = (char*)      malloc(MED_TAILLE_PNOM*nnoe+1);
+  med_float* coo    = (med_float*) malloc(sizeof(med_float)*nnoe*spacedim);
 
-   MEDnoeudsLire(MedIdt,maa,dim,coo,MED_NO_INTERLACE,&rep,
-                      nomcoo,unicoo,nomnoe,&inonoe,numnoe,&inunoe,
-                      nufano,nnoe);
+  aRet = MEDmeshNodeCoordinateRd(medIdt,
+                                      meshname,
+                                      MED_NO_DT,
+                                      MED_NO_IT,
+                                      MED_NO_INTERLACE,
+                                      coo);
+   if ( aRet < 0) 
+   {
+          // GERALD -- QMESSAGE BOX
+          std::cerr << "Error : mesh coordinates are unreadable" << std::endl;
+          return LesExtremes;
+   }
 
    med_float xmin,xmax,ymin,ymax,zmin,zmax;
    
@@ -152,17 +231,17 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
    xmax=coo[0];
    for (int i=1;i<nnoe;i++)
    {
-      xmin = min(xmin,coo[i]);
-      xmax = max(xmax,coo[i]);
+      xmin = std::min(xmin,coo[i]);
+      xmax = std::max(xmax,coo[i]);
    }
 //
-   if (dim > 1)
+   if (spacedim > 1)
    {
        ymin=coo[nnoe]; ymax=coo[nnoe];
        for (int i=nnoe+1;i<2*nnoe;i++)
        {
-           ymin = min(ymin,coo[i]);
-           ymax = max(ymax,coo[i]);
+           ymin = std::min(ymin,coo[i]);
+           ymax = std::max(ymax,coo[i]);
        }
    }
    else
@@ -173,13 +252,13 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
        zmax=0;
    }
 //
-   if (dim > 2)
+   if (spacedim > 2)
    {
        zmin=coo[2*nnoe]; zmax=coo[2*nnoe];
        for (int i=2*nnoe+1;i<3*nnoe;i++)
        {
-           zmin = min(zmin,coo[i]);
-           zmax = max(zmax,coo[i]);
+           zmin = std::min(zmin,coo[i]);
+           zmax = std::max(zmax,coo[i]);
        }
    }
    else
@@ -187,7 +266,7 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
        zmin=0;
        zmax=0;
    }
-   MEDfermer(MedIdt);
+   MEDfileClose(medIdt);
 
    MESSAGE( "_______________________________________");
    MESSAGE( "xmin : " << xmin << " xmax : " << xmax );
@@ -206,8 +285,8 @@ std::vector<double> GetBoundingBoxInMedFile(const char * aFile)
    LesExtremes.push_back(0);
 
 
-   double max1=max ( LesExtremes[1] - LesExtremes[0] , LesExtremes[4] - LesExtremes[3] ) ;
-   double max2=max ( max1 , LesExtremes[7] - LesExtremes[6] ) ;
+   double max1=std::max ( LesExtremes[1] - LesExtremes[0] , LesExtremes[4] - LesExtremes[3] ) ;
+   double max2=std::max ( max1 , LesExtremes[7] - LesExtremes[6] ) ;
    LesExtremes.push_back(max2);
 
 // LesExtremes[0] = Xmini du maillage
index 9f9c65df39ac9b023d207a8c90c7eac9c494104e..e6bac47dd8d75266e1be0c38982702d87835106a 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 #ifndef HOMARDMEDCOMMUN_H
 #define HOMARDMEDCOMMUN_H
 
@@ -5,11 +24,6 @@
 #include <set>
 #include <string>
 
-extern "C"
-{
-#include <med.h>
-}
-
 std::vector<double>    GetBoundingBoxInMedFile( const char * aFile);
 std::set<std::string>  GetListeGroupesInMedFile(const char * aFile);
 
index 121b94108f1dc1b10afa82b65842b81c6a33c4a3..c71252bb027294d77aee9c7d2fff5e15d2f608fa 100644 (file)
@@ -1,25 +1,21 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-#  HOMARD HOMARD_I : idl implementation based on 'HOMARD' unit's calsses
 #  File   : Makefile.in
 #  Author : Paul RASCLE, EDF
 #  Modified by : Alexander BORODIN (OCN) - autotools usage
@@ -58,7 +54,7 @@ libHOMARDEngine_la_CPPFLAGS =                       \
        $(CORBA_CXXFLAGS)                     \
        $(CORBA_INCLUDES)                     \
        $(KERNEL_CXXFLAGS)                    \
-       $(MED2_INCLUDES)                      \
+       $(MED3_INCLUDES)                      \
        $(SMESH_CXXFLAGS)                     \
        $(GEOM_CXXFLAGS)                      \
        -I$(srcdir)/../HOMARD                 \
@@ -67,14 +63,14 @@ libHOMARDEngine_la_CPPFLAGS =                     \
         -I$(GEOM_ROOT_DIR)/include/salome     \
         -I$(SMESH_ROOT_DIR)/include/salome     \
         -I$(MED_ROOT_DIR)/include/salome      \
-       -I$(top_builddir)/salome_adm/unix
+       -I$(top_builddir)/adm_local/unix
 
 
 libHOMARDEngine_la_LDFLAGS  =            \
        ../../idl/libSalomeIDLHOMARD.la  \
        ../HOMARD/libHOMARDImpl.la       \
        $(KERNEL_LDFLAGS)                \
-       $(MED2_LIBS)                     \
+       $(MED3_LIBS)                     \
        -lSalomeContainer                \
        -lSalomeNS                       \
        -lRegistry                       \
@@ -83,4 +79,5 @@ libHOMARDEngine_la_LDFLAGS  =            \
        -lTOOLSDS                        \
        -lSalomeGenericObj               \
         $(SMESH_LDFLAGS)                 \
+       -lSalomeIDLSMESH                 \
         -lSMESHClient
diff --git a/src/HOMARD_I/driver_gen_i.cxx b/src/HOMARD_I/driver_gen_i.cxx
deleted file mode 100644 (file)
index d5fefbe..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-#include <utilities.h>
-#include "driver_gen_i.h"
-
-
-//===========================================================================
-    Driver_Base_Gen_i::Driver_Base_Gen_i(CORBA::ORB_ptr orb,
-                                        PortableServer::POA_ptr poa,
-                                        PortableServer::ObjectId * contId,
-                                        const char *instanceName,
-                                        const char *interfaceName) 
-//     :Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
-  {
-    MESSAGE("Driver_Base_Gen_i::Driver_Base_Gen_i : ");
-  };
-
-//===========================================================================
-  Driver_Base_Gen_i::~Driver_Base_Gen_i()
-  {
-    MESSAGE("Driver_Base_Gen_i::~Driver_Base_Gen_i");
-  };
-
-//===========================================================================
-  CORBA::Boolean Driver_Base_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent,
-                                 const SALOMEDS::TMPFile & theStream,
-                                 const char* theURL,
-                                 bool isMultiFile)
-  {
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::Load");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    return false;
-  };
-
-//===========================================================================
-  CORBA::Boolean Driver_Base_Gen_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
-                                      const SALOMEDS::TMPFile & theStream,
-                                      const char* theURL,
-                                      bool isMultiFile)
-  {
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::LoadASCII");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    return false;
-  };
-
-//===========================================================================
-  char* Driver_Base_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
-                                          const char* aLocalPersistentID,
-                                          CORBA::Boolean isMultiFile,
-                                          CORBA::Boolean isASCII)
-  {
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::LocalPersistentIDToIOR");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    CORBA::String_var aString("");
-    return aString._retn();
-  };
-
-//===========================================================================
-  SALOMEDS::TMPFile* Driver_Base_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent,
-                                     const char* theURL,
-                                     bool isMultiFile)
-  {
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::Save");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0);
-    return aStreamFile._retn();
-  };
-
-//===========================================================================
-  SALOMEDS::TMPFile* Driver_Base_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
-                                          const char* theURL,
-                                          bool isMultiFile)
-  {
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::SaveASCII");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0);
-    return aStreamFile._retn();
-  };
-
-//===========================================================================
-  char* Driver_Base_Gen_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
-                                          const char* IORString,
-                                          CORBA::Boolean isMultiFile,
-                                          CORBA::Boolean isASCII)
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::IORToLocalPersistentID");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    CORBA::String_var aString("");
-    return aString._retn();
-  };
-
-
-//===========================================================================
-  void Driver_Base_Gen_i::Close(SALOMEDS::SComponent_ptr theComponent)
-  {
-    MESSAGE("------------------------");
-    MESSAGE("Driver_Base_Gen_i::Close");
-    MESSAGE("------------------------");
-  };
-
-//===========================================================================
-  char* Driver_Base_Gen_i::ComponentDataType()
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::ComponentDataType");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    return CORBA::string_dup("J aurais du nommer mon type prefere");
-  };
-
-//===========================================================================
-  bool Driver_Base_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR) 
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::CanPublishInStudy");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    return false;
-  };
-
-//===========================================================================
-  SALOMEDS::SObject_ptr Driver_Base_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
-                                                  SALOMEDS::SObject_ptr theSObject,
-                                                  CORBA::Object_ptr theObject,
-                                                  const char* theName)
-    throw (SALOME::SALOME_Exception)
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::PublishInStudy");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    SALOMEDS::SObject_var aResultSO;
-    return aResultSO._retn();
-  };
-
-//===========================================================================
-  CORBA::Boolean Driver_Base_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) 
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::CanCopy");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    //return false;
-    return true;
-  };
-
-//===========================================================================
-  SALOMEDS::TMPFile* Driver_Base_Gen_i::CopyFrom(SALOMEDS::SObject_ptr theObject,
-                                            CORBA::Long& theObjectID)
-{
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::CopyFrom");
-    MESSAGE("Should be implemented");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    MESSAGE("--------------------------------------");
-    SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0);
-    return aStreamFile._retn();
-};
-
-//===========================================================================
-  SALOMEDS::SObject_ptr Driver_Base_Gen_i::PasteInto( const SALOMEDS::TMPFile & theStream,
-                                                     CORBA::Long theObjectID,
-                                                     SALOMEDS::SObject_ptr theSObject)
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::PasteInto");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    SALOMEDS::SObject_var aResultSO;
-    return aResultSO._retn();
-  };
-
-//===========================================================================
-   CORBA::Boolean  Driver_Base_Gen_i::CanPaste ( const char *theComponentName,
-                                                CORBA::Long theObjectID)
-  {
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("Driver_Base_Gen_i::CanPaste");
-    MESSAGE("Should be implemented");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    MESSAGE("-----------------------------------------");
-    return false;
-  };
-
-  
diff --git a/src/HOMARD_I/driver_gen_i.h b/src/HOMARD_I/driver_gen_i.h
deleted file mode 100644 (file)
index 06a3a11..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef __DRIVER_BAS_GEN_I_H__
-#define __DRIVER_BAS_GEN_I_H__
-
-#include "SALOME_Component_i.hxx"
-#include "SALOME_NamingService.hxx"
-
-#include CORBA_CLIENT_HEADER(SALOMEDS)
-
-
-//---------------------------------------------------------
-  class Driver_Base_Gen_i :
-         public virtual POA_SALOMEDS::Driver
-//---------------------------------------------------------
-  {
-
-
-    Driver_Base_Gen_i();
-  public:
-    Driver_Base_Gen_i(CORBA::ORB_ptr orb,
-                     PortableServer::POA_ptr poa,
-                     PortableServer::ObjectId * contId,
-                     const char *instanceName,
-                     const char *interfaceName);
-
-
-    virtual ~Driver_Base_Gen_i();
-
-    //---------------------------------------------
-    // inherited methods from SALOMEDS::Driver
-    //---------------------------------------------
-
-    //virtual SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
-     SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
-                                   const char* theURL,
-                                   bool isMultiFile);
-
-    virtual SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
-                                        const char* theURL,
-                                        bool isMultiFile);
-
-    virtual bool Load(SALOMEDS::SComponent_ptr,
-                     const SALOMEDS::TMPFile &,
-                     const char* theURL,
-                     bool isMultiFile);
-
-    virtual bool LoadASCII(SALOMEDS::SComponent_ptr,
-                          const SALOMEDS::TMPFile &,
-                          const char* theURL,
-                          bool isMultiFile);
-
-    virtual void Close(SALOMEDS::SComponent_ptr IORSComponent);
-
-    virtual char* ComponentDataType();
-
-    virtual char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
-                                        const char* IORString,
-                                        CORBA::Boolean isMultiFile,
-                                        CORBA::Boolean isASCII);
-
-    virtual char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
-                                        const char* aLocalPersistentID,
-                                        CORBA::Boolean isMultiFile,
-                                        CORBA::Boolean isASCII);
-
-    virtual bool CanPublishInStudy(CORBA::Object_ptr theIOR);
-
-    virtual SALOMEDS::SObject_ptr PublishInStudy
-                             (SALOMEDS::Study_ptr theStudy,
-                             SALOMEDS::SObject_ptr theSObject,
-                             CORBA::Object_ptr theObject,
-                             const char* theName) 
-                               throw (SALOME::SALOME_Exception);
-
-    virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
-
-    virtual SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, 
-                                CORBA::Long& theObjectID);
-
-    virtual CORBA::Boolean CanPaste(const char* theComponentName, 
-                            CORBA::Long theObjectID);
-
-    virtual SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
-                                   CORBA::Long theObjectID,
-                                   SALOMEDS::SObject_ptr theObject);
-  };
-#endif
index e5d2ac8da30ec9416e6823674539f30c2dc1b116..d8e9f312d7e8e92a3e2d3ec5147cb1e6e8588a40 100644 (file)
@@ -1,25 +1,21 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-#  HOMARD_SWIG : binding of C++ omplementaion with Python
 #  File   : Makefile.in
 #  Author : Nicolas REJNERI, Paul RASCLE
 #  Modified by : Alexander BORODIN (OCN) - autotools usage
index fe29d76daefc0574ebc47dfb0007100e85377f4c..9b1125e4d99241880750c80a85ea1881606a1e98 100644 (file)
@@ -1,3 +1,26 @@
+# Copyright (C) 2011-2012  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
+#
+#  File   : Makefile.in
+#  Author : Nicolas REJNERI, Paul RASCLE
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : HOMARD
+
 import salome
 homard=salome.lcc.FindOrLoadComponent("FactoryServer","HOMARD")
 import os
index 3eb14582168029cd14f8e944db2e3e6061c586a7..05011893c0fbcb43d20fa5368e6f977fd68a85bf 100644 (file)
@@ -1,3 +1,26 @@
+# Copyright (C) 2011-2012  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
+#
+#  File   : Makefile.in
+#  Author : Nicolas REJNERI, Paul RASCLE
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : HOMARD
+
 import salome
 salome.salome_init()
 
index bf86722664e9722a0ff34dfca97d207b1fc2a8da..3c137dafef20fa1521a9f87df892e4814463e002 100644 (file)
@@ -1,3 +1,26 @@
+# Copyright (C) 2011-2012  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
+#
+#  File   : Makefile.in
+#  Author : Nicolas REJNERI, Paul RASCLE
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : HOMARD
+
 """
 
 """
index 6ec5d6d01f48f555cfba1ce583d8e474fbaab1de..1ae4a823ad35e0c23f1deece5401d19c832464e4 100644 (file)
@@ -1,25 +1,21 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
 #
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-#  HOMARD_SWIG : binding of C++ omplementaion with Python
 #  File   : Makefile.in
 #  Author : Nicolas REJNERI, Paul RASCLE
 #  Modified by : Alexander BORODIN (OCN) - autotools usage
index 2cc7e284e5f2980ad77eb92c1c862aed7bb1be63..94110abb253b5aa4c0d2f775aabd05e00527572b 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2011-2012  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
+//
+
 %module libHOMARD_Swig
 
 
index 61e5565f9889755d82b887e10dcf0550211c2fae..7ea558eb22bd3d42a1ad459d6f1ded791a11359f 100755 (executable)
@@ -1,23 +1,20 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
 #
-#  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
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : Makefile.in
 #  Author : (CEA)
index ed66236a24cef7e1ea8d4072eae2c4fab524a54a..d52be622f60d7028cac122c4d11307e1e31c4c73 100644 (file)
@@ -1,37 +1,53 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2011-2012  CEA/DEN, EDF R&D
 #
-#  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 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.
 #
-#  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
+# 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
 #
+
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 
 dist_salomeres_DATA =   \
      test_1.pdf \
+     test_1.en.pdf \
      test_1.py \
      test_1.00.med \
      test_1.01.med \
      test_1.02.med \
      test_1.apad.03.bilan \
      test_2.pdf \
+     test_2.en.pdf \
      test_2.py \
      test_2.00.med \
      test_2.fr.med \
-     test_2.apad.03.bilan 
+     test_2.apad.03.bilan \
+     test_3.pdf \
+     test_3.en.pdf \
+     test_3.py \
+     test_3.00.med \
+     test_3.fr.med \
+     test_3.apad.02.bilan
+
+EXTRA_DIST += \
+     test_1.odt \
+     test_1.en.odt \
+     test_1.png \
+     test_2.odt \
+     test_2.en.odt \
+     test_2.png \
+     test_3.odt \
+     test_3.en.odt \
+     test_3.png
index 767d4f62247468d3c7f1d2cfd52c5e96e66a6089..316e14050d754d42c8730519febf8b27a25e4c31 100644 (file)
Binary files a/tests/test_1.00.med and b/tests/test_1.00.med differ
index 91d7fb34bbe958237b8879e3e1c2c3c814fc24ed..661ce2318de22e2d90edbbe4e9f04c47f660e412 100644 (file)
Binary files a/tests/test_1.01.med and b/tests/test_1.01.med differ
index 4e94dcdd0af04c636bac25ccb2aac39ffc334dbd..1a9688c14bf74071b709a0673dd5c67b875cfb2a 100644 (file)
Binary files a/tests/test_1.02.med and b/tests/test_1.02.med differ
diff --git a/tests/test_1.en.odt b/tests/test_1.en.odt
new file mode 100644 (file)
index 0000000..a728ba7
Binary files /dev/null and b/tests/test_1.en.odt differ
diff --git a/tests/test_1.en.pdf b/tests/test_1.en.pdf
new file mode 100644 (file)
index 0000000..a0642bc
Binary files /dev/null and b/tests/test_1.en.pdf differ
index 578a8f13c6f0d58df89aff8343c8f5a1a2d6396e..257405ff43e0b34f4816e4685c295905c85124d4 100644 (file)
Binary files a/tests/test_1.odt and b/tests/test_1.odt differ
index 1aaaa2cd93c0ee4d75b7874bbe62573e323a1e92..d663a40a47df5bb05f0260faa85806f0fa3f47a9 100644 (file)
Binary files a/tests/test_1.pdf and b/tests/test_1.pdf differ
index abbd6d93889c9e8192b3f4b2156e3d07060fce5c..01a0776825db36ce2242c18ac0102844016c762d 100644 (file)
@@ -1,10 +1,28 @@
 # -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2012  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
+#
 """
 Python script for HOMARD
 Copyright EDF-R&D 2010
 Test test_1
 """
-__revision__ = "V1.2"
+__revision__ = "V1.6"
 
 ######################################################################################
 Test_Name = "test_1"
@@ -32,68 +50,84 @@ def homard_exec(theStudy):
 Python script for HOMARD
 Copyright EDF-R&D 2010
   """
-  homard.SetCurrentStudy(theStudy)
+  error = 0
 #
-# Creation of the zones
-# =====================
-# Creation of the  box Zone_1
-  Zone_1 = homard.CreateZone('Zone_1', 2)
-  Zone_1.SetBox(-0.01, 1.01, -0.01, 0.4, -0.01, 0.6)
+  while not error :
+  #
+    homard.SetCurrentStudy(theStudy)
+  #
+  # Creation of the zones
+  # =====================
+  # Creation of the box Zone_1
+    Zone_1 = homard.CreateZoneBox('Zone_1', -0.01, 1.01, -0.01, 0.4, -0.01, 0.6)
 
-# Creation of the  sphere Zone_2
-  Zone_2 = homard.CreateZone('Zone_2', 4)
-  Zone_2.SetSphere(0.5, 0.6, 0.7, 0.75)
-#
-# Creation of the hypotheses
-# ==========================
-# Creation of the hypothesis Zones_1_et_2
-  Zones_1_et_2 = homard.CreateHypothesis('Zones_1_et_2')
-  Zones_1_et_2.SetAdapRefinUnRef(0, 1, 0)
-  homard.AssociateHypoZone('Zone_1', 'Zones_1_et_2')
-  homard.AssociateHypoZone('Zone_2', 'Zones_1_et_2')
-
-# Creation of the hypothesis a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM = homard.CreateHypothesis('a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetAdapRefinUnRef(1, 1, 0)
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetField('RESU____ERRE_ELEM_SIGM__________')
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetUseComp(0)
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.AddComp('ERREST')
-  a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetRefinThr(3, 10.1)
-#
-# Creation of the cases
-# =====================
-  # Creation of the case zzzz121b
-  Case_1 = homard.CreateCase('zzzz121b', 'MAILL', os.path.join(Rep_Test, Test_Name + '.00.med'))
-  Case_1.SetDirName(Rep_Test_Resu)
-  Case_1.SetConfType(1)
-#
-# Creation of the iterations
-# ==========================
-# Creation of the iteration I1
-  I1 = homard.CreateIteration('I1', Case_1.GetIter0Name() )
-  I1.SetMeshName('M1')
-  I1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
-  I1.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.00.med'))
-  I1.SetTimeStepRank( 1, 1)
-  homard.AssociateIterHypo('I1', 'a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
-  result1 = homard.Compute('I1', 1)
+  # Creation of the sphere Zone_2
+    Zone_2 = homard.CreateZoneSphere('Zone_2', 0.5, 0.6, 0.7, 0.75)
+  #
+  # Creation of the hypotheses
+  # ==========================
+  # Creation of the hypothesis a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM = homard.CreateHypothesis('a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetAdapRefinUnRef(1, 1, 0)
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetField('RESU____ERRE_ELEM_SIGM__________')
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetUseComp(0)
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.AddComp('ERREST')
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetRefinThr(3, 10.1)
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.SetTypeFieldInterp(2)
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.AddFieldInterp('RESU____DEPL____________________')
+    a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM.AddFieldInterp('RESU____ERRE_ELEM_SIGM__________')
+  # Creation of the hypothesis Zones_1_et_2
+    Zones_1_et_2 = homard.CreateHypothesis('Zones_1_et_2')
+    Zones_1_et_2.SetAdapRefinUnRef(0, 1, 0)
+    homard.AssociateHypoZone('Zones_1_et_2', 'Zone_1', 1)
+    homard.AssociateHypoZone('Zones_1_et_2', 'Zone_2', 1)
+  #
+  # Creation of the cases
+  # =====================
+    # Creation of the case zzzz121b
+    Case_1 = homard.CreateCase('zzzz121b', 'MAILL', os.path.join(Rep_Test, Test_Name + '.00.med'))
+    Case_1.SetDirName(Rep_Test_Resu)
+    Case_1.SetConfType(1)
+  #
+  # Creation of the iterations
+  # ==========================
+  # Creation of the iteration I1
+    I1 = homard.CreateIteration('I1', Case_1.GetIter0Name() )
+    I1.SetMeshName('M1')
+    I1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+    I1.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.00.med'))
+    I1.SetTimeStepRank(1, 1)
+    homard.AssociateIterHypo('I1', 'a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
+    error = I1.Compute(1)
+    if error :
+      error = 1
+      break
 
-# Creation of the iteration I2
-  I2 = homard.CreateIteration('I2', 'I1')
-  I2.SetMeshName('M2')
-  I2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
-  I2.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.01.med'))
-  I2.SetTimeStepRank( 1, 1)
-  homard.AssociateIterHypo('I2', 'a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
-  result2 = homard.Compute('I2', 1)
+  # Creation of the iteration I2
+    I2 = homard.CreateIteration('I2', 'I1')
+    I2.SetMeshName('M2')
+    I2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+    I2.SetFieldFile(os.path.join(Rep_Test, Test_Name + '.01.med'))
+    I2.SetTimeStepRank(1, 1)
+    homard.AssociateIterHypo('I2', 'a10_1pc_de_mailles_a_raffiner_sur_ERRE_ELEM_SIGM')
+    error = I2.Compute(1)
+    if error :
+      error = 2
+      break
 
-# Creation of the iteration I3
-  I3 = homard.CreateIteration('I3', 'I2')
-  I3.SetMeshName('M3')
-  I3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
-  homard.AssociateIterHypo('I3', 'Zones_1_et_2')
-  result3 = homard.Compute('I3', 1)
-  return result1*result2*result3
+  # Creation of the iteration I3
+    I3 = homard.CreateIteration('I3', 'I2')
+    I3.SetMeshName('M3')
+    I3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
+    homard.AssociateIterHypo('I3', 'Zones_1_et_2')
+    error = I3.Compute(1)
+    if error :
+      error = 3
+      break
+  #
+    break
+  #
+    return error
 
 ######################################################################################
 
@@ -102,11 +136,11 @@ homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
 # Exec of HOMARD-SALOME
 #
 try :
-  result=homard_exec(salome.myStudy)
-  if (result != True):
-      raise Exception('Pb in homard_exec')
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
 except :
-  raise Exception('Pb in homard_exec')
+  raise Exception('Pb in homard_exec at iteration %d' %error_main )
   sys.exit(1)
 #
 # Test of the result
@@ -116,12 +150,14 @@ test_file_suff = "apad.0" + s_iter_test_file + ".bilan"
 rep_test_file = "I0" + s_iter_test_file
 #
 test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
+mess_error_ref = "\nReference file: " + test_file
 try :
   file = open (test_file, "r")
   mess_ref = file.readlines()
   file.close()
 except :
-  raise Exception('Reference file does not exist.')
+  mess_error = mess_error_ref + "\nThis file does not exist.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 #
 test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
@@ -130,12 +166,16 @@ if os.path.isfile (test_file) :
    mess = file.readlines()
    file.close()
 else :
-  raise Exception('Result file does not exist.')
+  mess_error  = "\nResult file: " + test_file
+  mess_error += "\nThis file does not exist.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 
 nblign = len(mess_ref)
 if ( len(mess) != nblign ):
-  raise Exception('The number of lines of the files are not the same.')
+  mess_error = mess_error_ref +  "\nResult file: " + test_file
+  mess_error += "\nThe number of lines of the files are not the same.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 
 for num in range(nblign) :
index 05e3849b89285c6543707c81a6a77dc8e0eafe19..b4ada0fe318f08b18780453432dd5aa8d98f47f1 100644 (file)
Binary files a/tests/test_2.00.med and b/tests/test_2.00.med differ
diff --git a/tests/test_2.en.odt b/tests/test_2.en.odt
new file mode 100644 (file)
index 0000000..44de3cf
Binary files /dev/null and b/tests/test_2.en.odt differ
diff --git a/tests/test_2.en.pdf b/tests/test_2.en.pdf
new file mode 100644 (file)
index 0000000..75a9e87
Binary files /dev/null and b/tests/test_2.en.pdf differ
index 48ceb7d05a5c08266f5f816c948a4adc0883851f..33315ed5eff5506f08d214ee1c407ce653200950 100644 (file)
Binary files a/tests/test_2.fr.med and b/tests/test_2.fr.med differ
index 76858ccb33d6042ef6cdb18e044d5d8f3d6ead9a..03c6177820a1dc066299effcfd8f150316ac17bd 100644 (file)
Binary files a/tests/test_2.odt and b/tests/test_2.odt differ
index 62a67c0bae782a140a3a9ab789aa8e29a2ff47ae..0a058f33fcfed12dd810c2a2ea3437745e781c41 100644 (file)
Binary files a/tests/test_2.pdf and b/tests/test_2.pdf differ
index 1762c1b3eea6b37ea8347f492ebf55ae1610a225..dced743d92d5653a911bbc6dfbab39136732d117 100644 (file)
Binary files a/tests/test_2.png and b/tests/test_2.png differ
index 5ff9f386d699e6870524a3daedd394b2015d2909..60110999e3f946842d042cd86512658433118bda 100644 (file)
@@ -1,10 +1,28 @@
 # -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2012  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
+#
 """
 Python script for HOMARD
 Copyright EDF-R&D 2010
 Test test_2
 """
-__revision__ = "V1.2"
+__revision__ = "V1.5"
 
 ######################################################################################
 Test_Name = "test_2"
@@ -32,59 +50,73 @@ def homard_exec(theStudy):
 Python script for HOMARD
 Copyright EDF-R&D 2010
   """
-  homard.SetCurrentStudy(theStudy)
-#
-# Creation of the boundaries
-# ==========================
-# Creation of the boundaries Boundary_1
-  Boundary_1 = homard.CreateBoundary('internal_boundary', 0)
-  Boundary_1.SetMeshFile(os.path.join(Rep_Test, Test_Name + '.fr.med'))
-  Boundary_1.SetMeshName('plaque')
+  error = 0
 #
-# Creation of the hypotheses
-# ==========================
-# Creation of the hypothesis Hypo_1
-  Hypo_1 = homard.CreateHypothesis('Hypo_1')
-  Hypo_1.SetAdapRefinUnRef(-1, 1, 0)
-  Hypo_1.AddGroup('BANDE                                                                           ')
-  Hypo_1.AddGroup('EG                                                                              ')
+  while not error :
+  #
+    homard.SetCurrentStudy(theStudy)
+  #
+  # Creation of the boundaries
+  # ==========================
+  # Creation of the discrete boundary Boundary_1
+    Boundary_1 = homard.CreateBoundaryDi('internal_boundary', 'plaque', os.path.join(Rep_Test, Test_Name + '.fr.med'))
+  #
+  # Creation of the hypotheses
+  # ==========================
+  # Creation of the hypothesis Hypo_1
+    Hypo_1 = homard.CreateHypothesis('Hypo_1')
+    Hypo_1.SetAdapRefinUnRef(-1, 1, 0)
+    Hypo_1.AddGroup('EG')
+    Hypo_1.AddGroup('BANDE')
 
-# Creation of the hypothesis Hypo_2
-  Hypo_2 = homard.CreateHypothesis('Hypo_2')
-  Hypo_2.SetAdapRefinUnRef(-1, 1, 0)
-  Hypo_2.AddGroup('M_D                                                                             ')
-#
-# Creation of the cases
-# =====================
-  # Creation of the case Case_1
-  Case_1 = homard.CreateCase('Case_1', 'PLAQUE_0', os.path.join(Rep_Test, Test_Name + '.00.med'))
-  Case_1.SetDirName(Rep_Test_Resu)
-  Case_1.SetConfType(1)
-  Case_1.AddBoundaryGroup( 'internal_boundary', ' ' )
-#
-# Creation of the iterations
-# ==========================
-# Creation of the iteration Iter_1
-  Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name() )
-  Iter_1.SetMeshName('PLAQUE_1')
-  Iter_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
-  homard.AssociateIterHypo('Iter_1', 'Hypo_1')
-  result1 = homard.Compute('Iter_1', 1)
+  # Creation of the hypothesis Hypo_2
+    Hypo_2 = homard.CreateHypothesis('Hypo_2')
+    Hypo_2.SetAdapRefinUnRef(-1, 1, 0)
+    Hypo_2.AddGroup('M_D')
+  #
+  # Creation of the cases
+  # =====================
+    # Creation of the case Case_1
+    Case_1 = homard.CreateCase('Case_1', 'PLAQUE_0', os.path.join(Rep_Test, Test_Name + '.00.med'))
+    Case_1.SetDirName(Rep_Test_Resu)
+    Case_1.SetConfType(1)
+    Case_1.AddBoundaryGroup('internal_boundary', '')
+  #
+  # Creation of the iterations
+  # ==========================
+  # Creation of the iteration Iter_1
+    Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name() )
+    Iter_1.SetMeshName('PLAQUE_1')
+    Iter_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+    homard.AssociateIterHypo('Iter_1', 'Hypo_1')
+    error = Iter_1.Compute(1)
+    if error :
+      error = 1
+      break
 
-# Creation of the iteration Iter_2
-  Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
-  Iter_2.SetMeshName('PLAQUE_2')
-  Iter_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
-  homard.AssociateIterHypo('Iter_2', 'Hypo_1')
-  result2 = homard.Compute('Iter_2', 1)
+  # Creation of the iteration Iter_2
+    Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+    Iter_2.SetMeshName('PLAQUE_2')
+    Iter_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+    homard.AssociateIterHypo('Iter_2', 'Hypo_1')
+    error = Iter_2.Compute(1)
+    if error :
+      error = 2
+      break
 
-# Creation of the iteration Iter_3
-  Iter_3 = homard.CreateIteration('Iter_3', 'Iter_2')
-  Iter_3.SetMeshName('PLAQUE_3')
-  Iter_3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
-  homard.AssociateIterHypo('Iter_3', 'Hypo_2')
-  result3 = homard.Compute('Iter_3', 1)
-  return result1*result2*result3
+  # Creation of the iteration Iter_3
+    Iter_3 = homard.CreateIteration('Iter_3', 'Iter_2')
+    Iter_3.SetMeshName('PLAQUE_3')
+    Iter_3.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.03.med'))
+    homard.AssociateIterHypo('Iter_3', 'Hypo_2')
+    error = Iter_3.Compute(1)
+    if error :
+      error = 3
+      break
+  #
+    break
+  #
+    return error
 
 ######################################################################################
 
@@ -93,11 +125,11 @@ homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
 # Exec of HOMARD-SALOME
 #
 try :
-  result=homard_exec(salome.myStudy)
-  if (result != True):
-      raise Exception('Pb in homard_exec')
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
 except :
-  raise Exception('Pb in homard_exec')
+  raise Exception('Pb in homard_exec at iteration %d' %error_main )
   sys.exit(1)
 #
 # Test of the result
@@ -107,12 +139,14 @@ test_file_suff = "apad.0" + s_iter_test_file + ".bilan"
 rep_test_file = "I0" + s_iter_test_file
 #
 test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
+mess_error_ref = "\nReference file: " + test_file
 try :
   file = open (test_file, "r")
   mess_ref = file.readlines()
   file.close()
 except :
-  raise Exception('Reference file does not exist.')
+  mess_error = mess_error_ref + "\nThis file does not exist.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 #
 test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
@@ -121,12 +155,16 @@ if os.path.isfile (test_file) :
    mess = file.readlines()
    file.close()
 else :
-  raise Exception('Result file does not exist.')
+  mess_error  = "\nResult file: " + test_file
+  mess_error += "\nThis file does not exist.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 
 nblign = len(mess_ref)
 if ( len(mess) != nblign ):
-  raise Exception('The number of lines of the files are not the same.')
+  mess_error = mess_error_ref +  "\nResult file: " + test_file
+  mess_error += "\nThe number of lines of the files are not the same.\n"
+  raise Exception(mess_error)
   sys.exit(2)
 
 for num in range(nblign) :
diff --git a/tests/test_3.00.med b/tests/test_3.00.med
new file mode 100644 (file)
index 0000000..c76b750
Binary files /dev/null and b/tests/test_3.00.med differ
diff --git a/tests/test_3.apad.02.bilan b/tests/test_3.apad.02.bilan
new file mode 100644 (file)
index 0000000..c89aabd
--- /dev/null
@@ -0,0 +1,62 @@
+
+
+ANALYSE DU MAILLAGE
+===================
+
+     Maillage apres adaptation                         
+     MOYEU                                                                           
+     Date de creation : mardi 1 fevrier 2011 a 17 h 21 mn 12 s          
+     Dimension : 3
+     Degre : 1
+     C'est un maillage obtenu apres      2 adaptations.
+     Le niveau minimum actif est   :     2
+     Le niveau maximum atteint est :     2
+
+         Direction    |       Unite       |  Minimum   |  Maximum
+     ---------------------------------------------------------------
+     x                | m                 | -36.603    |  536.60    
+     y                | m                 | -75.000    |  125.00    
+     z                | m                 | -125.00    |  75.000    
+
+
+   NOMBRE D'ENTITES DU CALCUL
+   ==========================
+
+
+     ************************************************************
+     *                      Noeuds                              *
+     ************************************************************
+     * Nombre total                                *       3710 *
+     ************************************************************
+
+     ************************************************************
+     *                      Segments                            *
+     ************************************************************
+     * Nombre total                                *        156 *
+     * . dont aretes isolees                       *          0 *
+     * . dont aretes de bord de regions 2D         *          0 *
+     * . dont aretes internes aux faces/volumes    *        156 *
+     ************************************************************
+
+     ************************************************************
+     *                      Triangles                           *
+     ************************************************************
+     * Nombre total                                *       3232 *
+     * . dont triangles de regions 2D              *          0 *
+     * . dont triangles de bord                    *       3232 *
+     * . dont triangles internes aux volumes       *          0 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *          0 *
+     * . du niveau   2                             *       3232 *
+     ************************************************************
+
+     ************************************************************
+     *                      Tetraedres                          *
+     ************************************************************
+     * Nombre total                                *      17280 *
+     ************************************************************
+     * . du niveau   0                             *          0 *
+     * . du niveau   1                             *          0 *
+     * . du niveau   2                             *      17280 *
+     ************************************************************
diff --git a/tests/test_3.en.odt b/tests/test_3.en.odt
new file mode 100644 (file)
index 0000000..83d4bd2
Binary files /dev/null and b/tests/test_3.en.odt differ
diff --git a/tests/test_3.en.pdf b/tests/test_3.en.pdf
new file mode 100644 (file)
index 0000000..7b1f6e3
Binary files /dev/null and b/tests/test_3.en.pdf differ
diff --git a/tests/test_3.fr.med b/tests/test_3.fr.med
new file mode 100644 (file)
index 0000000..99b15ca
Binary files /dev/null and b/tests/test_3.fr.med differ
diff --git a/tests/test_3.odt b/tests/test_3.odt
new file mode 100644 (file)
index 0000000..a3f0c93
Binary files /dev/null and b/tests/test_3.odt differ
diff --git a/tests/test_3.pdf b/tests/test_3.pdf
new file mode 100644 (file)
index 0000000..c05d06f
Binary files /dev/null and b/tests/test_3.pdf differ
diff --git a/tests/test_3.png b/tests/test_3.png
new file mode 100644 (file)
index 0000000..19c94e8
Binary files /dev/null and b/tests/test_3.png differ
diff --git a/tests/test_3.py b/tests/test_3.py
new file mode 100644 (file)
index 0000000..5e7cdcc
--- /dev/null
@@ -0,0 +1,181 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2011-2012  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
+#
+"""
+Python script for HOMARD
+Copyright EDF-R&D 2011
+Test test_3
+"""
+__revision__ = "V1.3"
+
+######################################################################################
+Test_Name = "test_3"
+n_iter_test_file = 2
+######################################################################################
+import os
+import sys
+import tempfile
+import HOMARD
+import salome
+#
+pathHomard=os.getenv('HOMARD_ROOT_DIR')
+Rep_Test = os.path.join(pathHomard,"share/salome/resources/homard")
+Rep_Test_Resu = tempfile.mktemp()
+os.mkdir(Rep_Test_Resu)
+
+salome.salome_init()
+import iparameters
+ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
+ipar.append("AP_MODULES_LIST", "Homard")
+######################################################################################
+######################################################################################
+def homard_exec(theStudy):
+  """
+Python script for HOMARD
+Copyright EDF-R&D 2010
+  """
+  error = 0
+#
+  while not error :
+#
+    homard.SetCurrentStudy(theStudy)
+#
+# Creation of the boundaries
+# ==========================
+# Creation of the discrete boundary
+    Boundary_1 = homard.CreateBoundaryDi('courbes', 'COURBES', os.path.join(Rep_Test, Test_Name + '.fr.med'))
+#
+# Creation of the external cylinder
+    Boundary_2 = homard.CreateBoundaryCylinder('cyl_ext', 50.0, 25., -25., 1., 0., 0., 100.)
+#
+# Creation of the internal cylinder
+    Boundary_3 = homard.CreateBoundaryCylinder('cyl_int', 50.0, 25., -25., 1., 0., 0., 50.)
+#
+# Creation of the first sphere
+    Boundary_4 = homard.CreateBoundarySphere('sphere_1', 50.0, 25., -25., 100.)
+#
+# Creation of the second sphere
+    Boundary_5 = homard.CreateBoundarySphere('sphere_2', 450.0, 25., -25., 100.)
+#
+# Creation of the hypotheses
+# ==========================
+# Uniform refinement
+    Hypo = homard.CreateHypothesis('Hypo')
+    Hypo.SetAdapRefinUnRef(-1, 1, 0)
+#
+# Creation of the cases
+# =====================
+# Creation of the case Case_1
+    Case_1 = homard.CreateCase('Case_1', 'MOYEU', os.path.join(Rep_Test, Test_Name + '.00.med'))
+    Case_1.SetDirName(Rep_Test_Resu)
+    Case_1.SetConfType(1)
+    Case_1.AddBoundaryGroup('courbes', '')
+    Case_1.AddBoundaryGroup('cyl_ext', 'EXT')
+    Case_1.AddBoundaryGroup('cyl_int', 'INT')
+    Case_1.AddBoundaryGroup('sphere_1', 'END_1')
+    Case_1.AddBoundaryGroup('sphere_2', 'END_2')
+#
+# Creation of the iterations
+# ==========================
+# Creation of the iteration Iter_1
+    Iter_1 = homard.CreateIteration('Iter_1', Case_1.GetIter0Name() )
+    Iter_1.SetMeshName('MOYEU_1')
+    Iter_1.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.01.med'))
+    homard.AssociateIterHypo('Iter_1', 'Hypo')
+    error = Iter_1.Compute(1)
+    if error :
+      error = 1
+      break
+
+# Creation of the iteration Iter_2
+    Iter_2 = homard.CreateIteration('Iter_2', 'Iter_1')
+    Iter_2.SetMeshName('MOYEU_2')
+    Iter_2.SetMeshFile(os.path.join(Rep_Test_Resu, 'maill.02.med'))
+    homard.AssociateIterHypo('Iter_2', 'Hypo')
+    error = Iter_2.Compute(1)
+    if error :
+      error = 2
+      break
+#
+    break
+#
+  return error
+
+######################################################################################
+
+homard = salome.lcc.FindOrLoadComponent('FactoryServer', 'HOMARD')
+#
+# Exec of HOMARD-SALOME
+#
+try :
+  error_main = homard_exec(salome.myStudy)
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+except :
+  if error_main :
+    raise Exception('Pb in homard_exec at iteration %d' %error_main )
+  sys.exit(1)
+#
+# Test of the result
+#
+s_iter_test_file = str(n_iter_test_file)
+test_file_suff = "apad.0" + s_iter_test_file + ".bilan"
+rep_test_file = "I0" + s_iter_test_file
+#
+test_file = os.path.join(Rep_Test, Test_Name + "." + test_file_suff)
+mess_error_ref = "\nReference file: " + test_file
+try :
+  file = open (test_file, "r")
+  mess_ref = file.readlines()
+  file.close()
+except :
+  mess_error = mess_error_ref + "\nThis file does not exist.\n"
+  raise Exception(mess_error)
+  sys.exit(2)
+#
+test_file = os.path.join(Rep_Test_Resu, rep_test_file, test_file_suff)
+if os.path.isfile (test_file) :
+   file = open (test_file, "r")
+   mess = file.readlines()
+   file.close()
+else :
+  mess_error  = "\nResult file: " + test_file
+  mess_error += "\nThis file does not exist.\n"
+  raise Exception(mess_error)
+  sys.exit(2)
+
+nblign = len(mess_ref)
+if ( len(mess) != nblign ):
+  mess_error = mess_error_ref +  "\nResult file: " + test_file
+  mess_error += "\nThe number of lines of the files are not the same.\n"
+  raise Exception(mess_error)
+  sys.exit(2)
+
+for num in range(nblign) :
+   if (( "creation" not in mess_ref[num] ) and ( mess_ref[num] != mess[num])) :
+       message_erreur = "\nRefe : " + mess_ref[num]
+       message_erreur += "Test : " + mess[num][:-1]
+       message_erreur += "\nThe test is different from the reference."
+       raise Exception(message_erreur)
+       sys.exit(10)
+#
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+  iparameters.getSession().restoreVisualState(1)
+