]> SALOME platform Git repositories - plugins/hexoticplugin.git/commitdiff
Salome HOME
Merge from V6_main_20120808 08Aug12
authorvsr <vsr@opencascade.com>
Thu, 9 Aug 2012 11:56:21 +0000 (11:56 +0000)
committervsr <vsr@opencascade.com>
Thu, 9 Aug 2012 11:56:21 +0000 (11:56 +0000)
64 files changed:
AUTHORS
ChangeLog
HexoticPLUGIN_version.h.in
INSTALL
Makefile.am
NEWS
adm_local/Makefile.am
adm_local/unix/Makefile.am
adm_local/unix/config_files/Makefile.am
adm_local/unix/config_files/check_BLSURFPLUGIN.m4 [new file with mode: 0644]
adm_local/unix/config_files/check_Hexotic.m4
adm_local/unix/config_files/check_HexoticPLUGIN.m4
adm_local/unix/make_common_starter.am
bin/Makefile.am
bin/VERSION.in
build_cmake [new file with mode: 0755]
build_cmake.bat [new file with mode: 0644]
build_configure
clean_configure
configure.ac
doc/Makefile.am [new file with mode: 0644]
doc/salome/Makefile.am [new file with mode: 0644]
doc/salome/gui/HexoticPLUGIN/Makefile.am [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/doxyfile.in [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/doxyfile_py.in [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/images/head.png [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/images/hexotic_parameters.png [new file with mode: 0644]
doc/salome/gui/HexoticPLUGIN/input/hexotic_hypo.doc [new file with mode: 0644]
doc/salome/gui/HexoticPLUGIN/input/hexoticplugin_python_intarface.doc [new file with mode: 0644]
doc/salome/gui/HexoticPLUGIN/input/index.doc [new file with mode: 0644]
doc/salome/gui/HexoticPLUGIN/static/doxygen.css [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/static/footer.html [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/static/header.html.in [new file with mode: 0755]
doc/salome/gui/HexoticPLUGIN/static/header_py.html.in [new file with mode: 0644]
doc/salome/gui/Makefile.am [new file with mode: 0644]
idl/HexoticPlugin_Algorithm.idl
idl/Makefile.am
resources/HexoticPLUGIN.xml
resources/HexoticPlugin.xml [deleted file]
resources/Makefile.am
resources/SalomeApp.xml
resources/mesh_tree_algo_Hexotic.png
resources/mesh_tree_hypo_Hexotic.png
src/GUI/HexoticPLUGIN_images.ts
src/GUI/HexoticPLUGIN_msg_en.ts
src/GUI/HexoticPLUGIN_msg_fr.ts [new file with mode: 0755]
src/GUI/HexoticPluginGUI.cxx
src/GUI/HexoticPluginGUI.h [new file with mode: 0755]
src/GUI/HexoticPluginGUI_HypothesisCreator.cxx
src/GUI/HexoticPluginGUI_HypothesisCreator.h
src/GUI/Makefile.am
src/HexoticPlugin/HexoticPLUGINDC.py [new file with mode: 0644]
src/HexoticPlugin/HexoticPlugin_Defs.hxx [new file with mode: 0755]
src/HexoticPlugin/HexoticPlugin_Hexotic.cxx
src/HexoticPlugin/HexoticPlugin_Hexotic.hxx
src/HexoticPlugin/HexoticPlugin_Hexotic_i.cxx
src/HexoticPlugin/HexoticPlugin_Hexotic_i.hxx
src/HexoticPlugin/HexoticPlugin_Hypothesis.cxx
src/HexoticPlugin/HexoticPlugin_Hypothesis.hxx
src/HexoticPlugin/HexoticPlugin_Hypothesis_i.cxx
src/HexoticPlugin/HexoticPlugin_Hypothesis_i.hxx
src/HexoticPlugin/HexoticPlugin_i.cxx
src/HexoticPlugin/Makefile.am
src/Makefile.am

diff --git a/AUTHORS b/AUTHORS
index b8578ac18b5000df479463b105616052640f3dd5..cc18fd65cf836295e4c3c50fe6b3a975bf89e423 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008 OPEN CASCADE, CEA/DEN, EDF R&D
+# 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
@@ -16,6 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ---
 #
 # File   : AUTHORS
index 6b675c762c4dd9b90031e6f10160560dfd26ad44..403e65762fd3af5d893b305d62ce66e8946fafb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008 OPEN CASCADE, CEA/DEN, EDF R&D
+# 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
@@ -16,6 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ---
 #
 # File   : ChangeLog
index b5df797dacc07a1d13168b18f7725e6047bc6b28..c6eae56d79bd2330082b5a748639998c25229029 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPLUGIN_version.h
 // Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -30,5 +31,6 @@
 
 #define HEXOTICPLUGIN_VERSION_STR "@VERSION@"
 #define HEXOTICPLUGIN_VERSION     @XVERSION@
+#define HEXOTICPLUGIN_DEVELOPMENT @VERSION_DEV@
 
 #endif // __HEXOTICPLUGIN_VERSION_H__
diff --git a/INSTALL b/INSTALL
index 592ed4763790a9776e41f778e41377f66081e008..a477b88d545b286a14dd4af337809a17b7fd6f0c 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008 OPEN CASCADE, CEA/DEN, EDF R&D
+# 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
@@ -16,6 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ---
 #
 # File   : INSTALL
index 7814626f4ef5fa7f5d40ff940c708749ff16268d..f13ae523f5e40d0d89fbb69358bafe3dc33b1aef 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -30,19 +31,25 @@ if HEXOTICPLUGIN_ENABLE_GUI
                     -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
                     -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
                     -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files
+#                    -I ${BLSURFPLUGIN_ROOT_DIR}/adm_local/unix/config_files
 else !HEXOTICPLUGIN_ENABLE_GUI
   ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \
                     -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
                     -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
                     -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
                     -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files
+#                    -I ${BLSURFPLUGIN_ROOT_DIR}/adm_local/unix/config_files
+endif
+
+if HEXOTICPLUGIN_ENABLE_BLSURFPLUGIN
+  ACLOCAL_AMFLAGS += -I ${BLSURFPLUGIN_ROOT_DIR}/adm_local/unix/config_files
 endif
 
-SUBDIRS = idl adm_local resources src bin
+SUBDIRS = idl adm_local resources src bin doc
 
-DIST_SUBDIRS = idl adm_local resources src bin 
+DIST_SUBDIRS = idl adm_local resources src bin doc
 
-DISTCLEANFILES = a.out aclocal.m4 configure
+DISTCLEANFILES = a.out aclocal.m4 configure hack_libtool
 
 salomeinclude_DATA = HexoticPLUGIN_version.h
 
diff --git a/NEWS b/NEWS
index 6a0b1eb2647b79da5e3da220a3a150529febf69c..d22503a457d5cc6e70b570851d41dd6b4efc6337 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008 OPEN CASCADE, CEA/DEN, EDF R&D
+# 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
@@ -16,6 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 # ---
 #
 # File   : NEWS
index 3f9a07d4b6b3027ed43f4df8f028aed0c8eeeada..4e4788099e594fe367e2d970b1c7d90beba778a8 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
index f70a09ef543274fb1549e47a2dc25655180d82fa..55a47ce7e41a7f1d271acc0bd06cfd8f39d96c57 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
index ca830f1840bd450b5b61c36a96907adf3865f290..8c8519398a7c27ce72c7a28b46e1c02d2586b400 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -25,4 +26,5 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 dist_admlocalm4_DATA =         \
        check_Hexotic.m4        \
-       check_HexoticPLUGIN.m4
+       check_HexoticPLUGIN.m4  \
+       check_BLSURFPLUGIN.m4
diff --git a/adm_local/unix/config_files/check_BLSURFPLUGIN.m4 b/adm_local/unix/config_files/check_BLSURFPLUGIN.m4
new file mode 100644 (file)
index 0000000..1f963bc
--- /dev/null
@@ -0,0 +1,76 @@
+dnl Copyright (C) 2007-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
+
+dnl  File   : check_BLSURFPLUGIN.m4
+dnl  Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
+dnl
+AC_DEFUN([CHECK_BLSURFPLUGIN],[
+
+AC_CHECKING(for BLSURF mesh plugin)
+
+BLSURFplugin_ok=no
+
+BLSURFPLUGIN_LDFLAGS=""
+BLSURFPLUGIN_CXXFLAGS=""
+
+AC_ARG_WITH(BLSURFplugin,
+      --with-BLSURFplugin=DIR  root directory path of BLSURF mesh plugin installation,
+      BLSURFPLUGIN_DIR="$withval",BLSURFPLUGIN_DIR="")
+
+if test "x$BLSURFPLUGIN_DIR" = "x" ; then
+
+# no --with-BLSURFplugin option used
+
+  if test "x$BLSURFPLUGIN_ROOT_DIR" != "x" ; then
+
+    # SALOME_ROOT_DIR environment variable defined
+    BLSURFPLUGIN_DIR=$BLSURFPLUGIN_ROOT_DIR
+
+  else
+
+    # search Salome binaries in PATH variable
+    AC_PATH_PROG(TEMP, libBLSURFEngine.so)
+    if test "x$TEMP" != "x" ; then
+      BLSURFPLUGIN_DIR=`dirname $TEMP`
+    fi
+
+  fi
+
+fi
+
+if test -f ${BLSURFPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libBLSURFEngine.so  ; then
+  BLSURFplugin_ok=yes
+  AC_MSG_RESULT(Using BLSURF mesh plugin distribution in ${BLSURFPLUGIN_DIR})
+
+  if test "x$BLSURFPLUGIN_ROOT_DIR" == "x" ; then
+    BLSURFPLUGIN_ROOT_DIR=${BLSURFPLUGIN_DIR}
+  fi
+  BLSURFPLUGIN_CXXFLAGS=-I${BLSURFPLUGIN_ROOT_DIR}/include/salome
+  BLSURFPLUGIN_LDFLAGS="-L${BLSURFPLUGIN_ROOT_DIR}/lib${LIB_LOCATION_SUFFIX}/salome -lBLSURFEngine"
+else
+  AC_MSG_WARN("Cannot find compiled BLSURF mesh plugin distribution")
+fi
+  
+AC_MSG_RESULT(for BLSURF mesh plugin: $BLSURFplugin_ok)
+
+AC_SUBST(BLSURFPLUGIN_ROOT_DIR)
+AC_SUBST(BLSURFPLUGIN_LDFLAGS)
+AC_SUBST(BLSURFPLUGIN_CXXFLAGS)
+])dnl
index 42e643131ed8863dd33a01815093c4beff795585..ec17b4766998a28fd6747758f70e0085444e9a61 100755 (executable)
@@ -1,24 +1,25 @@
-dnl  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+dnl Copyright (C) 2007-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
+
 dnl  File   : check_Hexotic.m4
 dnl  Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
-
+dnl
 AC_DEFUN([CHECK_HEXOTIC],[
 
 AC_REQUIRE([AC_PROG_CXX])dnl
index 2e5c5d6ddcc54c9c3c1f4e8600d277a4523b24e0..6d66388ad44261443f5ad974abeaa3fbd04b0b66 100644 (file)
@@ -1,24 +1,25 @@
-dnl  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+dnl Copyright (C) 2007-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
+
 dnl  File   : check_HexoticPLUGIN.m4
 dnl  Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
-
+dnl
 AC_DEFUN([CHECK_HEXOTICPLUGIN],[
 
 AC_CHECKING(for Hexotic mesh plugin)
@@ -29,36 +30,46 @@ HexoticPLUGIN_LDFLAGS=""
 HexoticPLUGIN_CXXFLAGS=""
 
 AC_ARG_WITH(Hexoticplugin,
-           [  --with-Hexoticplugin=DIR root directory path of Hexotic mesh plugin installation ])
+      --with-Hexoticplugin=DIR  root directory path of Hexotic mesh plugin installation,
+      HexoticPLUGIN_DIR="$withval",HexoticPLUGIN_DIR="")
 
-if test "$with_Hexoticplugin" != "no" ; then
-    if test "$with_Hexoticplugin" == "yes" || test "$with_Hexoticplugin" == "auto"; then
-       if test "x$HexoticPLUGIN_ROOT_DIR" != "x" ; then
-            HexoticPLUGIN_DIR=$HexoticPLUGIN_ROOT_DIR
-        fi
-    else
-        HexoticPLUGIN_DIR="$with_Hexoticplugin"
-    fi
+if test "x$HexoticPLUGIN_DIR" = "x" ; then
+
+# no --with-Hexoticplugin option used
+
+  if test "x$HexoticPLUGIN_ROOT_DIR" != "x" ; then
+
+    # SALOME_ROOT_DIR environment variable defined
+    HexoticPLUGIN_DIR=$HexoticPLUGIN_ROOT_DIR
 
-    if test "x$HexoticPLUGIN_DIR" != "x" ; then
-       if test -f ${HexoticPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libHexoticEngine.so ; then
-           Hexoticplugin_ok=yes
-           AC_MSG_RESULT(Using Hexotic mesh plugin distribution in ${HexoticPLUGIN_DIR})
-           HexoticPLUGIN_ROOT_DIR=${HexoticPLUGIN_DIR}
-           HexoticPLUGIN_LDFLAGS=-L${HexoticPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome
-           HexoticPLUGIN_CXXFLAGS=-I${HexoticPLUGIN_DIR}/include/salome
-       else
-           AC_MSG_WARN("Cannot find compiled Hexotic mesh plugin distribution")
-       fi
-    else
-       AC_MSG_WARN("Cannot find compiled Hexotic mesh plugin distribution")
+  else
+
+    # search Salome binaries in PATH variable
+    AC_PATH_PROG(TEMP, libHexoticEngine.so)
+    if test "x$TEMP" != "x" ; then
+      HexoticPLUGIN_DIR=`dirname $TEMP`
     fi
+
+  fi
+
 fi
 
-AC_MSG_RESULT(for Hexotic mesh plugin: $Hexoticplugin_ok)
+if test -f ${HexoticPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libHexoticEngine.so  ; then
+  Hexoticplugin_ok=yes
+  AC_MSG_RESULT(Using Hexotic mesh plugin distribution in ${HexoticPLUGIN_DIR})
 
-AC_SUBST(HexoticPLUGIN_ROOT_DIR)
-AC_SUBST(HexoticPLUGIN_LDFLAGS)
-AC_SUBST(HexoticPLUGIN_CXXFLAGS)
+  if test "x$HexoticPLUGIN_ROOT_DIR" == "x" ; then
+    HexoticPLUGIN_ROOT_DIR=${HexoticPLUGIN_DIR}
+  fi
+  HexoticPLUGIN_CXXFLAGS+=-I${HexoticPLUGIN_ROOT_DIR}/include/salome
+  HexoticPLUGIN_LDFLAGS+=-L${HexoticPLUGIN_ROOT_DIR}/lib${LIB_LOCATION_SUFFIX}/salome
+  AC_SUBST(HexoticPLUGIN_ROOT_DIR)
+  AC_SUBST(HexoticPLUGIN_LDFLAGS)
+  AC_SUBST(HexoticPLUGIN_CXXFLAGS)
+else
+  AC_MSG_WARN("Cannot find compiled Hexotic mesh plugin distribution")
+fi
+  
+AC_MSG_RESULT(for Hexotic mesh plugin: $Hexoticplugin_ok)
  
 ])dnl
index 56185e37c8a6b94ee2c6de6dd28f3c3d1db16d9f..623dfe5a5f596047303a3b56019ba658403f2e02 100644 (file)
@@ -1,25 +1,34 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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   : make_common_starter.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
 # ---
+# ============================================================
+# The following is to avoid PACKAGE_... env variable
+# redefinition compilation warnings
+# ============================================================
+#
+AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h
+AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h
+
 # ============================================================
 # This file defines the common definitions used in several
 # Makefile. This file must be included, if needed, by the file
index 4af71442138f300620512ddc1969e476c1369457..24e249a5c3b0700452f4e00dc365ca6f3d0d09b7 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
index 603250d9b509dd3a4c55fc63fb887dc83ce56c67..d872cc8e1662ec13992f7ce836bf5b538a97b434 100755 (executable)
@@ -1 +1,4 @@
-THIS IS SALOME - HexoticPLUGIN VERSION: @VERSION@
+[SALOME HexoticPLUGIN] : @VERSION@
+[DEVELOPMENT]          : @VERSION_DEV@
+[DESCRIPTION]          : DISTENE Hexotic meshing plug-in for SALOME Mesh module
+
diff --git a/build_cmake b/build_cmake
new file mode 100755 (executable)
index 0000000..166d83a
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+# 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
+#
+
+CURRENT_DIR=`pwd`
+CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+cd ${CONF_DIR}
+python $KERNEL_ROOT_DIR/salome_adm/cmake_files/am2cmake.py --hexoticplugin
+status=$?
+cd ${CURRENT_DIR}
+exit $status
diff --git a/build_cmake.bat b/build_cmake.bat
new file mode 100644 (file)
index 0000000..5f803d4
--- /dev/null
@@ -0,0 +1,20 @@
+@REM Copyright (C) 2007-2012  CEA/DEN, EDF R&D
+@REM
+@REM This library is free software; you can redistribute it and/or
+@REM modify it under the terms of the GNU Lesser General Public
+@REM License as published by the Free Software Foundation; either
+@REM version 2.1 of the License.
+@REM
+@REM This library is distributed in the hope that it will be useful,
+@REM but WITHOUT ANY WARRANTY; without even the implied warranty of
+@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+@REM Lesser General Public License for more details.
+@REM
+@REM You should have received a copy of the GNU Lesser General Public
+@REM License along with this library; if not, write to the Free Software
+@REM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+@REM
+@REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+@REM
+
+%PYTHONBIN% %KERNEL_ROOT_DIR%\salome_adm\cmake_files\am2cmake.py --hexoticplugin\r
index 259312938123a56b396657f305d44ebc055dafec..5f2a133ece6668b0e82bc4ac3a7dd5ac706395d9 100755 (executable)
@@ -1,22 +1,23 @@
 #!/bin/bash
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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   : build_configure
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -24,7 +25,6 @@
 #
 ORIG_DIR=`pwd`
 CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
-HEXOTICPLUGIN_WITH_GUI="yes"
 
 ########################################################################
 # Test if the KERNEL_ROOT_DIR is set correctly
@@ -41,28 +41,6 @@ fi
 #    exit
 #fi
 
-for option
-do
-  case $option in
-      -with-gui | --with-gui)
-          HEXOTICPLUGIN_WITH_GUI="yes"
-          break;;
-      -without-gui | --without-gui | -with-gui=no | --with-gui=no)
-          HEXOTICPLUGIN_WITH_GUI="no"
-          break;;
-  esac
-done
-
-########################################################################
-# Test if the GUI_ROOT_DIR is set correctly
-
-if test ${HEXOTICPLUGIN_WITH_GUI} = yes; then
-    if test ! -d "${GUI_ROOT_DIR}"; then
-        echo "failed : GUI_ROOT_DIR variable is not correct !"
-        exit
-    fi
-fi
-
 ########################################################################
 # Test if the MED_ROOT_DIR is set correctly
 
@@ -91,52 +69,48 @@ cd ${CONF_DIR}
 ABS_CONF_DIR=`pwd`
 
 #######################################################################
-# Update configure.ac script: to set HEXOTICPLUGIN_WITH_GUI variable
-sed -e s/HEXOTICPLUGIN_WITH_GUI=[a-z]*/HEXOTICPLUGIN_WITH_GUI=${HEXOTICPLUGIN_WITH_GUI}/g configure.ac > configure.tmp
-mv -f configure.tmp configure.ac
-
-mkdir -p salome_adm/unix/config_files
-#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files
-#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix
-
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix
-
-#cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-#cp -f ${MED_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-#cp -f ${GEOM_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-#cp -f ${SMESH_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-
-# remove KERNEL deprecated configure files
-#for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
-#    check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \
-#    check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing
-#    do
-#      rm -f salome_adm/unix/config_files/${deprecated}
-#    done
-                     
 
 # ____________________________________________________________________
 # 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
 #   autom4te.cache (directory)
-echo "====================================================== aclocal"
-
-if test ${HEXOTICPLUGIN_WITH_GUI} = yes; then
-  aclocal -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 ${MED_ROOT_DIR}/adm_local/unix/config_files \
-          -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
-          -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
+echo "======================================================= aclocal"
+
+if test -d "${GUI_ROOT_DIR}"; then
+  if test -d "${BLSURFPLUGIN_ROOT_DIR}"; then
+    aclocal -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 ${MED_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${BLSURFPLUGIN_ROOT_DIR}/adm_local/unix/config_files || exit 1
+  else
+    aclocal -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 ${MED_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
+  fi
 else
-  aclocal -I adm_local/unix/config_files \
-          -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
-          -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
-          -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
-          -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
+  if test -d "${BLSURFPLUGIN_ROOT_DIR}"; then
+    aclocal -I adm_local/unix/config_files \
+            -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+            -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${BLSURFPLUGIN_ROOT_DIR}/adm_local/unix/config_files || exit 1
+  else
+    aclocal -I adm_local/unix/config_files \
+            -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+            -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
+            -I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
+  fi
 fi
 
 # ____________________________________________________________________
@@ -145,10 +119,10 @@ fi
 # 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
-#echo "====================================================== libtoolize"
+#   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
 
@@ -168,11 +142,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 8f003668b298e183291e6c87c9d5eaec98d5581e..999766990ba91f4c4ad13ba183df5f177d0bd77f 100755 (executable)
@@ -1,22 +1,23 @@
 #!/bin/bash
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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   : clean_configure
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -28,10 +29,5 @@ find . -name "*.pyc" -print -exec rm {} \;
 
 # ... 
 
-find bin -name Makefile.in | xargs rm -f
-find doc -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
+find . -name Makefile.in | xargs rm -f
+( cd adm_local/unix/config_files && rm -f config.* depcomp install-sh ltmain.sh missing py-compile )
index 9ae08a216e8e4c3176347515f345d1064b956b84..96a5f16b81b8c4e6166e3970308a02408af5f701 100644 (file)
@@ -1,35 +1,38 @@
 #!/bin/bash
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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   : configure.ac
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
 # ---
 #
-AC_INIT([Salome2 Project HexoticPLUGIN module], [5.1.0], [webmaster.salome@opencascade.com], [SalomeHexoticPLUGIN])
-AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
+AC_INIT([Salome2 Project HexoticPLUGIN module], [6.5.0], [webmaster.salome@opencascade.com], [SalomeHexoticPLUGIN])
+AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([-Wno-portability])
 
 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=hexoticplugin
@@ -92,7 +95,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='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/install-sh
+      INSTALL='\${KERNEL_ROOT_DIR}'/adm_local/unix/config_files/install-sh
       ;;
 esac
 
@@ -152,7 +155,15 @@ dnl testing MPICH
 dnl ---------------------------------------------
 dnl
 
-CHECK_MPICH
+dnl CHECK_MPICH
+
+echo
+echo ---------------------------------------------
+echo testing MPI
+echo ---------------------------------------------
+echo
+
+CHECK_MPI
 
 echo
 echo ---------------------------------------------
@@ -228,11 +239,34 @@ AC_SUBST_FILE(CORBA)
 corba=make_$ORB
 CORBA=adm_local/unix/$corba
 
-HEXOTICPLUGIN_WITH_GUI=yes
+echo
+echo ---------------------------------------------
+echo Testing GUI
+echo ---------------------------------------------
+echo
+
+CHECK_GUI_MODULE
 
-AM_CONDITIONAL(HEXOTICPLUGIN_ENABLE_GUI, [test "${HEXOTICPLUGIN_WITH_GUI}" = "yes"])
+gui_ok=no
+if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then 
+  gui_ok=yes
+fi
+
+AM_CONDITIONAL(HEXOTICPLUGIN_ENABLE_GUI, [test "${gui_ok}" = "yes"])
+
+if test "${SalomeGUI_need}" == "yes"; then
+  if test "${FullGUI_ok}" != "yes"; then
+    AC_MSG_WARN(For configure HexoticPLUGIN module necessary full GUI!)
+  fi
+elif test "${SalomeGUI_need}" == "auto"; then
+  if test "${FullGUI_ok}" != "yes"; then
+    AC_MSG_WARN(Full GUI not found. Build will be done without GUI!)
+  fi
+elif test "${SalomeGUI_need}" == "no"; then
+  echo Build without GUI option has been chosen
+fi
 
-if test "${HEXOTICPLUGIN_WITH_GUI}" = "yes"; then
+if test "${gui_ok}" = "yes"; then
     echo
     echo ---------------------------------------------
     echo testing openGL
@@ -248,35 +282,15 @@ if test "${HEXOTICPLUGIN_WITH_GUI}" = "yes"; then
     echo
 
     CHECK_QT
+fi
 
-    echo
-    echo ---------------------------------------------
-    echo testing VTK
-    echo ---------------------------------------------
-    echo
-
-    CHECK_VTK
-
-    echo
-    echo ---------------------------------------------
-    echo Testing GUI
-    echo ---------------------------------------------
-    echo
-
-    CHECK_SALOME_GUI
-
-    echo
-    echo ---------------------------------------------
-    echo Testing full GUI
-    echo ---------------------------------------------
-    echo
+echo
+echo ---------------------------------------------
+echo testing VTK
+echo ---------------------------------------------
+echo
 
-    CHECK_CORBA_IN_GUI
-    if test "x${CORBA_IN_GUI}" != "xyes"; then
-      echo "failed : For configure HexoticPLUGIN module necessary full GUI !"
-      exit
-    fi
-fi
+CHECK_VTK
 
 echo
 echo ---------------------------------------------
@@ -342,6 +356,18 @@ echo
 
 CHECK_SMESH
 
+echo
+echo ---------------------------------------------
+echo Testing BLSURFPlugin
+echo ---------------------------------------------
+echo
+
+CHECK_BLSURFPLUGIN
+if test "${BLSURFplugin_ok}" = "yes"; then
+  AC_DEFINE(WITH_BLSURFPLUGIN)
+fi
+AM_CONDITIONAL(HEXOTICPLUGIN_ENABLE_BLSURFPLUGIN, [test "${BLSURFplugin_ok}" = "yes"])
+
 echo
 echo ---------------------------------------------
 echo Summary
@@ -350,13 +376,15 @@ echo
 
 #AM_CONDITIONAL( USE_GFORTRAN, [test "$F77" = "gfortran"])
 
-if test "${HEXOTICPLUGIN_WITH_GUI}" = "yes"; then
-variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok SMesh_ok SalomeGUI_ok"
-opt_variables="Hexotic_ok"
-fi
-if test "${HEXOTICPLUGIN_WITH_GUI}" = "no"; then
-variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok SMesh_ok"
-opt_variables="Hexotic_ok"
+if test "${gui_ok}" = "yes"; then
+  variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok SMesh_ok gui_ok"
+  opt_variables="Hexotic_ok BLSURFplugin_ok"
+elif test "${SalomeGUI_need}" != "no"; then
+  variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok SMesh_ok gui_ok"
+  opt_variables="Hexotic_ok BLSURFplugin_ok"
+else
+  variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok SMesh_ok"
+  opt_variables="Hexotic_ok BLSURFplugin_ok"
 fi
 
 echo
@@ -392,6 +420,9 @@ else
    AC_SUBST(SETX) SETX="set -x"
 fi
 
+dnl Build with SMESH cancel compute feature
+AC_DEFINE(WITH_SMESH_CANCEL_COMPUTE)
+
 dnl copy shells and utilities contained in the bin directory
 dnl excluding .in files (treated in AC-OUTPUT below) and CVS
 dnl directory
@@ -407,22 +438,40 @@ 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 \
-  ./adm_local/Makefile \
-  ./adm_local/unix/Makefile \
-  ./adm_local/unix/config_files/Makefile \
-  ./bin/VERSION \
-  ./bin/Makefile \
-  ./idl/Makefile \
-  ./resources/Makefile \
-  ./src/Makefile \
-  ./src/HexoticPlugin/Makefile \
-  ./src/GUI/Makefile \
-  ./HexoticPLUGIN_version.h \
+  adm_local/Makefile \
+  adm_local/unix/Makefile \
+  adm_local/unix/config_files/Makefile \
+  bin/VERSION \
+  bin/Makefile \
+  idl/Makefile \
+  resources/Makefile \
+  src/Makefile \
+  src/HexoticPlugin/Makefile \
+  src/GUI/Makefile \
+  HexoticPLUGIN_version.h \
+  doc/Makefile \
+  doc/salome/Makefile \
+  doc/salome/gui/Makefile \
+  doc/salome/gui/HexoticPLUGIN/Makefile \
+  doc/salome/gui/HexoticPLUGIN/doxyfile \
+  doc/salome/gui/HexoticPLUGIN/doxyfile_py \
+  doc/salome/gui/HexoticPLUGIN/static/header.html \
+  doc/salome/gui/HexoticPLUGIN/static/header_py.html \
   Makefile \
 ])
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644 (file)
index 0000000..570ccb2
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# -* Makefile *- 
+# Author : Patrick GOLDBRONN (CEA)
+# Date : 30/11/2001
+# Modified by : Alexander BORODIN (OCN) - autotools usage
+# $Header$
+# source path
+#
+SUBDIRS = salome
+
+usr_docs:
+       (cd salome && $(MAKE) $(AM_MAKEFLAGS) usr_docs)
+
+docs: usr_docs
\ No newline at end of file
diff --git a/doc/salome/Makefile.am b/doc/salome/Makefile.am
new file mode 100644 (file)
index 0000000..9ded0be
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# -* Makefile *- 
+# Author : Patrick GOLDBRONN (CEA)
+# Date : 30/11/2001
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+# $Header:
+#
+SUBDIRS = gui
+SUBDIRSGUI = gui
+
+usr_docs:
+       @@SETX@; for d in $(SUBDIRSGUI); do     \
+          (cd $$d && $(MAKE) $@) || exit 1;    \
+       done;
+
+docs: usr_docs
\ No newline at end of file
diff --git a/doc/salome/gui/HexoticPLUGIN/Makefile.am b/doc/salome/gui/HexoticPLUGIN/Makefile.am
new file mode 100755 (executable)
index 0000000..7c980d3
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#  File   : Makefile.in
+#  Author : Vasily Rusyaev (Open Cascade NN)
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : doc
+#
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+EXTRA_DIST += images input static/footer.html static/doxygen.css
+
+guidocdir = $(docdir)/gui/HexoticPLUGIN
+guidoc_DATA = images/head.png
+
+
+usr_docs: doxyfile
+       echo "===========================================" ;                    \
+       echo "Generating Python interface documentation";                       \
+       echo "===========================================" ;                    \
+       $(DOXYGEN) doxyfile_py                                                  \
+       echo "===========================================" ;                    \
+       echo "Generating GUI documentation" ;                                   \
+       echo "===========================================" ;                    \
+       $(DOXYGEN) doxyfile ;
+
+docs: usr_docs
+
+clean-local:
+       @for filen in `find . -maxdepth 1` ; do                 \
+         case $${filen} in                                     \
+           ./Makefile | ./doxyfile | ./doxyfile_py ) ;;        \
+           . | .. | ./static ) ;;                              \
+           *) echo "Removing $${filen}" ; rm -rf $${filen} ;;  \
+         esac ;                                                \
+       done ;
+
+install-data-local: usr_docs
+       $(INSTALL) -d $(DESTDIR)$(guidocdir)
+       @for filen in `find . -maxdepth 1` ; do                                                 \
+         case $${filen} in                                                                     \
+           ./Makefile | ./doxyfile | ./doxyfile_py ) ;;                                        \
+           ./doxyfile.bak | ./doxyfile_py.bak ) ;;                                             \
+           . | .. | ./static ) ;;                                                              \
+           *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(guidocdir) ;; \
+         esac ;                                                                                \
+       done ;
+       cp -rp $(srcdir)/images/head.png $(DESTDIR)$(guidocdir)/hexoticpluginpy_doc/ ;
+
+uninstall-local:
+       rm -rf $(DESTDIR)$(guidocdir)
+
diff --git a/doc/salome/gui/HexoticPLUGIN/doxyfile.in b/doc/salome/gui/HexoticPLUGIN/doxyfile.in
new file mode 100755 (executable)
index 0000000..cb13c4b
--- /dev/null
@@ -0,0 +1,80 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME      = "SALOME HexoticPLUGIN User's Guide"
+OUTPUT_DIRECTORY  = .
+CREATE_SUBDIRS   = NO
+OUTPUT_LANGUAGE   = English
+TAB_SIZE          = 5
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET             = NO
+WARNINGS          = YES
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT             = @srcdir@/input
+FILE_PATTERNS     = *.doc
+EXCLUDE           = 
+IMAGE_PATH        = @srcdir@/images
+EXAMPLE_PATH      = 
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML     = YES
+HTML_OUTPUT       = .
+HTML_HEADER       = @builddir@/static/header.html
+HTML_FOOTER       = @srcdir@/static/footer.html
+HTML_STYLESHEET   = @srcdir@/static/doxygen.css
+TOC_EXPAND        = YES
+DISABLE_INDEX     = NO
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH    = 300
+
+#---------------------------------------------------------------------------
+#SORT related options
+#---------------------------------------------------------------------------
+SORT_GROUP_NAMES = NO
+
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX    = NO
+EXTRA_PACKAGES    = amsmath
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF      = NO
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+#rnv: 07.04.2011 Workaround for the doxygen 1.7.3:
+#because it wrongly defines location of the html files for search.
+TAGFILES          = hexoticpluginpy_doc.tag=../HexoticPLUGIN/hexoticpluginpy_doc
+SEARCHENGINE      = YES
\ No newline at end of file
diff --git a/doc/salome/gui/HexoticPLUGIN/doxyfile_py.in b/doc/salome/gui/HexoticPLUGIN/doxyfile_py.in
new file mode 100755 (executable)
index 0000000..3735e28
--- /dev/null
@@ -0,0 +1,159 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME HexoticPLUGIN User's Guide"
+OUTPUT_DIRECTORY       = .
+CREATE_SUBDIRS        = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = NO
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 5
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = YES
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = NO
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+EXCLUDE_SYMLINKS       = NO
+EXAMPLE_RECURSIVE      = NO
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT             = @top_srcdir@/src/HexoticPlugin/HexoticPLUGINDC.py
+FILE_PATTERNS     = 
+IMAGE_PATH        = @srcdir@/images
+RECURSIVE         = NO
+EXAMPLE_PATH      =
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML     = YES
+HTML_OUTPUT       = hexoticpluginpy_doc
+HTML_HEADER       = @builddir@/static/header_py.html
+HTML_FOOTER       = @srcdir@/static/footer.html
+HTML_STYLESHEET   = @srcdir@/static/doxygen.css
+TOC_EXPAND        = YES
+DISABLE_INDEX     = NO
+GENERATE_TREEVIEW = NO
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX    = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF      = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = NO
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = NO
+CLASS_GRAPH            = NO
+COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = NO
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = NO
+DIRECTORY_GRAPH        = NO
+DOT_IMAGE_FORMAT       = jpg
+DOT_FONTNAME           = Arial
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = NO
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+GENERATE_TAGFILE  = hexoticpluginpy_doc.tag
+SEARCHENGINE           = YES
\ No newline at end of file
diff --git a/doc/salome/gui/HexoticPLUGIN/images/head.png b/doc/salome/gui/HexoticPLUGIN/images/head.png
new file mode 100755 (executable)
index 0000000..307d9ef
Binary files /dev/null and b/doc/salome/gui/HexoticPLUGIN/images/head.png differ
diff --git a/doc/salome/gui/HexoticPLUGIN/images/hexotic_parameters.png b/doc/salome/gui/HexoticPLUGIN/images/hexotic_parameters.png
new file mode 100644 (file)
index 0000000..40abfed
Binary files /dev/null and b/doc/salome/gui/HexoticPLUGIN/images/hexotic_parameters.png differ
diff --git a/doc/salome/gui/HexoticPLUGIN/input/hexotic_hypo.doc b/doc/salome/gui/HexoticPLUGIN/input/hexotic_hypo.doc
new file mode 100644 (file)
index 0000000..d42d1f8
--- /dev/null
@@ -0,0 +1,39 @@
+/*!
+
+\page hexotic_hypo_page Hexotic Parameters hypothesis
+
+\n Hexotic Parameters hypothesis works only with <b>Hexotic</b> 
+algorithm. This algorithm is a commercial software.
+\n To get a licence, visit http://www.distene.com/corp/eval-distene.html
+
+\image html hexotic_parameters.png
+
+<ul>
+<li><b>Name</b> - allows to define the name of the hypothesis (Hexotic 
+Parameters by default).</li>
+
+<li><b>Nb. Hexes Min Level</b> - allows defining the minimal level of recursive partitioning on the initial octree cube.</li>
+
+<li><b>Nb. Hexes Max Level</b> - allows defining the maximal level of recursive partitioning on the initial octree cube.</li>
+
+<li><b>Salome Quadrangles</b> - not documented.</li>
+
+<li><b>Generate smooth meshes no ridges</b> - specifies that the mesher can ignore ridges. A ridge is a geometrical entity (a sharp edge). The resulting meshes will have better quality elements, at the price of "smoothing" out the geometry.
+</li>
+
+<li><b>Authorize invalid elements</b> - specifies that the mesher must conform as much as possible to the geometry (especially the sharp edges). The resulting meshes may contain invalid elements (but with positive volumes: for example, three vertices of an hexahedron on the same edge), for the benefit of better geometry accuracy.
+</li>
+
+<li><b>Sharp angle threshold in degrees</b> - specifies the angle between two triangles above which the hex mesher will consider the edge common to these two triangles as being a "ridge". A ridge is a geometrical entity (a sharp edge) which has to be kept as it is in the final hex mesh.The default value is 60 (degrees).<br>If you raise this value, the hex mesher will detect less ridges, and the final solid mesh will therefore be smoother. On the other hand, if you reduce this value, more ridges will be detected and the algorithm will face harder situations to conform to.
+</li>
+
+<li><b>Number of threads</b> - specifies the number of threads to be used (this should be the number of cores or processors of a shared memory parallel architecture).
+</li>
+
+<li><b>Working directory</b> - specifies the directory where the input/output files will be created.
+</li>
+</ul>
+
+\note If BLSURF is used as 2D algo, and if a GMF file is defined as output file (using SetGMFFile(my2Dmesh.mesh)), then Hexotic will use this file as input.
+This allows to avoid the reconstruction of the GMF file from the SMESH structure and can improve the global computation time.
+*/
diff --git a/doc/salome/gui/HexoticPLUGIN/input/hexoticplugin_python_intarface.doc b/doc/salome/gui/HexoticPLUGIN/input/hexoticplugin_python_intarface.doc
new file mode 100644 (file)
index 0000000..cb13cae
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+
+\page hexoticplugin_python_intarface_page Python Interface
+
+Python package \ref HexoticPLUGINDC "HexoticPLUGIN" defines several classes, destined for creation of the 3D meshes.
+
+Documentation for HexoticPLUGIN package is available in linear form grouped by classes, declared in the HexoticPLUGINDC.py file.
+
+*/
diff --git a/doc/salome/gui/HexoticPLUGIN/input/index.doc b/doc/salome/gui/HexoticPLUGIN/input/index.doc
new file mode 100644 (file)
index 0000000..331bf18
--- /dev/null
@@ -0,0 +1,19 @@
+/*!
+
+\mainpage Introduction to HexoticPLUGIN
+
+\n \b HexoticPLUGIN plugin is destined for:
+
+
+<ul>
+<li>Meshing 3D geometric entities.</li>
+<li>Generating 3D meshes from 2D meshes, working without geometrical objects.</li>
+</ul>
+
+To manage parameters of the HexoticPLUGIN use \subpage hexotic_hypo_page.
+
+Also all HexoticPLUGIN functionalities are accessible via
+\subpage hexoticplugin_python_intarface_page "HexoticPLUGIN Python interface".
+
+
+*/
diff --git a/doc/salome/gui/HexoticPLUGIN/static/doxygen.css b/doc/salome/gui/HexoticPLUGIN/static/doxygen.css
new file mode 100755 (executable)
index 0000000..7a2dcbd
--- /dev/null
@@ -0,0 +1,836 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+       font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+       font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+       font-size: 150%;
+}
+
+h2 {
+       font-size: 120%;
+}
+
+h3 {
+       font-size: 100%;
+}
+
+dt {
+       font-weight: bold;
+}
+
+div.multicol {
+       -moz-column-gap: 1em;
+       -webkit-column-gap: 1em;
+       -moz-column-count: 3;
+       -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+       margin-top: 2px;
+}
+
+p.endli {
+       margin-bottom: 0px;
+}
+
+p.enddd {
+       margin-bottom: 4px;
+}
+
+p.endtd {
+       margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+       font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+       background-color: #EBEFF6;
+       border: 1px solid #A3B4D7;
+       text-align: center;
+       margin: 2px;
+       padding: 2px;
+}
+
+div.qindex, div.navpath {
+       width: 100%;
+       line-height: 140%;
+}
+
+div.navtab {
+       margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+       color: #3D578C;
+       font-weight: normal;
+       text-decoration: none;
+}
+
+.contents a:visited {
+       color: #4665A2;
+}
+
+a:hover {
+       text-decoration: underline;
+}
+
+a.qindex {
+       font-weight: bold;
+}
+
+a.qindexHL {
+       font-weight: bold;
+       background-color: #9CAFD4;
+       color: #ffffff;
+       border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+       font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+       color: #4665A2;
+}
+
+a.codeRef {
+       color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+       margin-left: -1cm;
+}
+
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 105%;
+}
+
+pre.fragment {
+       border: 1px solid #C4CFE5;
+       background-color: #FBFCFD;
+       padding: 4px 6px;
+       margin: 4px 8px 4px 2px;
+       overflow: auto;
+       word-wrap: break-word;
+       font-size:  9pt;
+       line-height: 125%;
+}
+
+div.ah {
+       background-color: black;
+       font-weight: bold;
+       color: #ffffff;
+       margin-bottom: 3px;
+       margin-top: 3px;
+       padding: 0.2em;
+       border: solid thin #333;
+       border-radius: 0.5em;
+       -webkit-border-radius: .5em;
+       -moz-border-radius: .5em;
+       box-shadow: 2px 2px 3px #999;
+       -webkit-box-shadow: 2px 2px 3px #999;
+       -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+       background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+       background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       font-weight: bold;
+}
+
+div.version {
+       border:1px solid #0000FF;
+        color: #CCCCCC;
+       font-family: Arial, Helvetica, sans-serif;
+       font-size: 9pt;
+       text-align: center;
+       width:100px;
+       -moz-border-radius: 8px;
+       margin: 5px;
+}
+                    
+div.footer1 {
+    background-color: #DFE5F1;
+    border: 1px solid #AAAAAA;
+    font-family: Arial, Helvetica, sans-serif;
+    font-size: 11px;
+    padding: 10px;
+    margin-top: 15px;
+}
+           
+
+div.groupText {
+       margin-left: 16px;
+       font-style: italic;
+}
+
+body {
+       background: white;
+       color: black;
+        margin: 0;
+}
+
+div.contents {
+       margin-top: 10px;
+       margin-left: 10px;
+       margin-right: 10px;
+}
+
+td.indexkey {
+       background-color: #EBEFF6;
+       font-weight: bold;
+       border: 1px solid #C4CFE5;
+       margin: 2px 0px 2px 0;
+       padding: 2px 10px;
+}
+
+td.indexvalue {
+       background-color: #EBEFF6;
+       border: 1px solid #C4CFE5;
+       padding: 2px 10px;
+       margin: 2px 0px;
+}
+
+tr.memlist {
+       background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+       text-align: center;
+}
+
+img.formulaDsp {
+       
+}
+
+img.formulaInl {
+       vertical-align: middle;
+}
+
+div.center {
+       text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+       border: 0px;
+}
+
+address.footer {
+       text-align: right;
+       padding-right: 12px;
+}
+
+img.footer {
+       border: 0px;
+       vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+       color: #008000
+}
+
+span.keywordtype {
+       color: #604020
+}
+
+span.keywordflow {
+       color: #e08000
+}
+
+span.comment {
+       color: #800000
+}
+
+span.preprocessor {
+       color: #806020
+}
+
+span.stringliteral {
+       color: #002080
+}
+
+span.charliteral {
+       color: #008080
+}
+
+span.vhdldigit { 
+       color: #ff00ff 
+}
+
+span.vhdlchar { 
+       color: #000000 
+}
+
+span.vhdlkeyword { 
+       color: #700070 
+}
+
+span.vhdllogic { 
+       color: #ff0000 
+}
+
+/* @end */
+
+/*
+.search {
+       color: #003399;
+       font-weight: bold;
+}
+
+form.search {
+       margin-bottom: 0px;
+       margin-top: 0px;
+}
+
+input.search {
+       font-size: 75%;
+       color: #000080;
+       font-weight: normal;
+       background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+       font-size: 75%;
+}
+
+.dirtab {
+       padding: 4px;
+       border-collapse: collapse;
+       border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+       background: #EBEFF6;
+       font-weight: bold;
+}
+
+hr {
+       height: 0px;
+       border: none;
+       border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+       height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+       border-spacing: 0px;
+       padding: 0px;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+       background-color: #F9FAFC;
+       border: none;
+       margin: 4px;
+       padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+       padding: 0px 8px 4px 8px;
+       color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+       border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memTemplParams {
+       color: #4665A2;
+        white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+       font-size: 80%;
+       color: #4665A2;
+       font-weight: normal;
+       margin-left: 9px;
+}
+
+.memnav {
+       background-color: #EBEFF6;
+       border: 1px solid #A3B4D7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+
+.memitem {
+       padding: 0;
+       margin-bottom: 10px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 8px;
+        border-top-left-radius: 8px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* opera specific markup */
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+.paramkey {
+       text-align: right;
+}
+
+.paramtype {
+       white-space: nowrap;
+}
+
+.paramname {
+       color: #602020;
+       white-space: nowrap;
+}
+.paramname em {
+       font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+        border-spacing: 6px 2px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+
+
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+       font-family: sans-serif;
+       margin: 0px;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+       font-size: 9pt;
+       font-weight: bold;
+       margin: 5px;
+}
+
+.directory h3 {
+       margin: 0px;
+       margin-top: 1em;
+       font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice.  Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+       height: 61px;
+       background-repeat: no-repeat;
+       background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+       display: none;
+}
+*/
+
+.directory > h3 {
+       margin-top: 0;
+}
+
+.directory p {
+       margin: 0px;
+       white-space: nowrap;
+}
+
+.directory div {
+       display: none;
+       margin: 0px;
+}
+
+.directory img {
+       vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+       font-size: 100%;
+       font-weight: bold;
+}
+
+.directory-alt h3 {
+       margin: 0px;
+       margin-top: 1em;
+       font-size: 11pt;
+}
+
+.directory-alt > h3 {
+       margin-top: 0;
+}
+
+.directory-alt p {
+       margin: 0px;
+       white-space: nowrap;
+}
+
+.directory-alt div {
+       display: none;
+       margin: 0px;
+}
+
+.directory-alt img {
+       vertical-align: -30%;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+}
+
+address {
+       font-style: normal;
+       color: #2A3D61;
+}
+
+table.doxtable {
+       border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+       border: 1px solid #2D4068;
+       padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+       background-color: #374F7F;
+       color: #FFFFFF;
+       font-size: 110%;
+       padding-bottom: 4px;
+       padding-top: 5px;
+       text-align:left;
+}
+
+.tabsearch {
+       top: 0px;
+       left: 10px;
+       height: 36px;
+       background-image: url('tab_b.png');
+       z-index: 101;
+       overflow: hidden;
+       font-size: 13px;
+}
+
+.navpath ul
+{
+       font-size: 11px;
+       background-image:url('tab_b.png');
+       background-repeat:repeat-x;
+       height:30px;
+       line-height:30px;
+       color:#8AA0CC;
+       border:solid 1px #C2CDE4;
+       overflow:hidden;
+       margin:0px;
+       padding:0px;
+}
+
+.navpath li
+{
+       list-style-type:none;
+       float:left;
+       padding-left:10px;
+       padding-right:15px;
+       background-image:url('bc_s.png');
+       background-repeat:no-repeat;
+       background-position:right;
+       color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+       height:32px;
+       display:block;
+       text-decoration: none;
+       outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+       color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+       float: right;
+       font-size: 8pt;
+       padding-right: 5px;
+       width: 50%;
+       text-align: right;
+}       
+
+div.summary a
+{
+       white-space: nowrap;
+}
+
+div.ingroups
+{
+       font-size: 8pt;
+       padding-left: 5px;
+       width: 50%;
+       text-align: left;
+}
+
+div.ingroups a
+{
+       white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+       background-color: #F9FAFC;
+       margin:  0px;
+       border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+       padding: 5px 5px 5px 10px;
+}
+
+.title {
+        font-size: 150%;
+        font-weight: bold;
+        margin: 10px 2px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+{
+        border-left:4px solid;
+        padding: 0 0 0 6px;
+}
+
+dl.note
+{
+        border-color: #D0D000;
+}
+
+dl.warning, dl.attention
+{
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        border-color: #505050;
+}
+
+dl.todo
+{
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        border-color: #C08050;
+}
+
+#projectlogo
+{
+       text-align: center;
+       vertical-align: bottom;
+       border-collapse: separate;
+}
+#projectlogo img
+{ 
+       border: 0px none;
+}
+#projectname
+{
+        background-color: #175783;
+        border: 1px solid;
+        height: 80px;
+       background-repeat: no-repeat;
+/*     font: 300% arial,sans-serif;*/
+       margin: 0px;
+       padding: 0px;
+}
+    
+#projectbrief
+{
+       font: 120% arial,sans-serif;
+       margin: 0px;
+       padding: 0px;
+}
+
+#projectnumber
+{
+       font: 50% arial,sans-serif;
+       margin: 0px;
+       padding: 0px;
+}
+
+#titlearea
+{
+        background: url("head.png");
+        background-color: #175783;
+        border: 1px solid;
+        height: 80px;
+        background-repeat: no-repeat;
+       padding: 0px;
+       margin: 0px;
+       width: 100%;
+       border-bottom: 1px solid #5373B4;
+}
+
diff --git a/doc/salome/gui/HexoticPLUGIN/static/footer.html b/doc/salome/gui/HexoticPLUGIN/static/footer.html
new file mode 100755 (executable)
index 0000000..4c89a2b
--- /dev/null
@@ -0,0 +1,12 @@
+    <li class="footer"></li>
+   </ul>
+ </div>
+ <div class="footer1">
+ <div style="text-align: center;">
+ Copyright &copy; 2007-2012  CEA/DEN, EDF R&amp;D, OPEN CASCADE<br>
+ Copyright &copy; 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&amp;D, LEG, PRINCIPIA R&amp;D, BUREAU VERITAS<br>
+ </div>
+ </div>
+</body>
+</html>
+               
\ No newline at end of file
diff --git a/doc/salome/gui/HexoticPLUGIN/static/header.html.in b/doc/salome/gui/HexoticPLUGIN/static/header.html.in
new file mode 100755 (executable)
index 0000000..4571b43
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>$title</title>
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+$treeview
+$search
+$mathjax
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div id="top"><!-- do not remove this div! -->
+<div id="titlearea"><div align="right"><div class="version">Version: @VERSION@</div></div></div>
+
+</div>
diff --git a/doc/salome/gui/HexoticPLUGIN/static/header_py.html.in b/doc/salome/gui/HexoticPLUGIN/static/header_py.html.in
new file mode 100644 (file)
index 0000000..61414bb
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>$title</title>
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+$treeview
+$search
+$mathjax
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div id="top"><!-- do not remove this div! -->
+<div id="titlearea"><div align="right"><div class="version">Version: @VERSION@</div></div></div>
+<div align="bottom-left"><a href=../index.html>Home</a></div>
+
+</div>
diff --git a/doc/salome/gui/Makefile.am b/doc/salome/gui/Makefile.am
new file mode 100644 (file)
index 0000000..9f88ae0
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#  File   : Makefile.in
+#  Author : Vasily Rusyaev (Open Cascade NN)
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : doc
+#
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+SUBDIRS = HexoticPLUGIN
+
+usr_docs:
+       (cd HexoticPLUGIN && $(MAKE) $(AM_MAKEFLAGS) usr_docs)
+
+docs: usr_docs
index 094dd8c0edb6773a141b0cecee3394a539402c71..66bb491e71559823a7f054870525abf275087947 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Algorithm.idl
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -60,6 +61,12 @@ module HexoticPlugin
    
     void SetHexoticSharpAngleThreshold(in long value);
     long GetHexoticSharpAngleThreshold();
+   
+    void SetHexoticNbProc(in long value);
+    long GetHexoticNbProc();
+
+    void SetHexoticWorkingDirectory(in string path) raises (SALOME::SALOME_Exception);
+    string GetHexoticWorkingDirectory();
   };
 };
 
index 7112189b7669c86f89097777c6929598de292b8c..cea2378c235b128b84c306ee6b1d748a0771c48e 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -29,6 +30,8 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 BASEIDL_FILES = HexoticPlugin_Algorithm.idl
 
+BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py)
+
 # This variable defines the files to be installed
 dist_salomeidl_DATA = $(BASEIDL_FILES)
 
@@ -47,7 +50,6 @@ libSalomeIDLHexoticPLUGIN_la_CPPFLAGS =\
        $(SMESH_CXXFLAGS) \
        @CORBA_CXXFLAGS@ \
        @CORBA_INCLUDES@ \
-       -I$(top_builddir)/salome_adm/unix \
        -I$(top_builddir)/idl
 
 libSalomeIDLHexoticPLUGIN_la_LDFLAGS = -no-undefined -version-info=0:0:0
@@ -72,8 +74,7 @@ IDLCXXFLAGS = \
        -I$(top_builddir)/idl/salome \
        -I$(KERNEL_ROOT_DIR)/idl/salome \
        -I$(GEOM_ROOT_DIR)/idl/salome \
-       -I$(SMESH_ROOT_DIR)/idl/salome \
-       -I$(top_builddir)/salome_adm/unix
+       -I$(SMESH_ROOT_DIR)/idl/salome
 IDLPYFLAGS  = \
        @IDLPYFLAGS@ \
        -I$(KERNEL_ROOT_DIR)/idl/salome \
@@ -93,9 +94,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 HexoticPlugin ; 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
@@ -109,7 +116,7 @@ mostlyclean-local:
        @for dep in $^ dummy; do \
          if [ $$dep != "dummy" ]; then \
            echo Building dependencies for $$dep; \
-           $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome -I$(GEOM_ROOT_DIR)/idl/salome -I$(SMESH_ROOT_DIR)/idl/salome -I$(top_builddir)/salome_adm/unix $$dep 2>/dev/null | \
+           $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome -I$(GEOM_ROOT_DIR)/idl/salome -I$(SMESH_ROOT_DIR)/idl/salome $$dep 2>/dev/null | \
            sed 's/\.o/\SK.cc/' >>$@; \
          fi; \
        done ;
index 7600da0bb4dbc958814cbc2fc12d563566ee2f88..fe30c321f40fd485451f7e188f1c5a37d92f00ae 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='us-ascii'?>
 <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+  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
 <meshers>
 
 <meshers-group name="Hexotic"
-               resources="HexoticPlugin"
+               resources="HexoticPLUGIN"
                server-lib="HexoticEngine"
                gui-lib="HexoticPluginGUI">
   <hypotheses>
     <hypothesis type="Hexotic_Parameters"
-               label-id="Hexotic Parameters"
-               icon-id="mesh_hypo_Hexotic.png"
-               need-geom="false"
-               dim="3"/>
+    label-id="Hexotic Parameters"
+    icon-id="mesh_hypo_Hexotic.png"
+    dim="3"/>
   </hypotheses>
   <algorithms>
+
     <algorithm type="Hexotic_3D"
-               label-id="Hexotic"
+               label-id="Hexahedron (Hexotic)"
                icon-id="mesh_algo_Hexotic.png"
                hypos="Hexotic_Parameters"
                input="TRIA,QUAD"
-              need-geom="false"
-               dim="3"/>
+               need-geom="false"
+               dim="3">
+      <python-wrap>
+        <algo>Hexotic_3D=Hexahedron(algo=smesh.Hexotic)</algo>
+        <hypo>Hexotic_Parameters=MinMaxQuad(SetHexesMinLevel(),SetHexesMaxLevel(),SetHexoticQuadrangles())</hypo>
+      </python-wrap>
+    </algorithm>
+
   </algorithms>
 </meshers-group>
 
diff --git a/resources/HexoticPlugin.xml b/resources/HexoticPlugin.xml
deleted file mode 100644 (file)
index ae50699..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
-<!--
-  Copyright (C) 2007-2008  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
-
--->
-
-<!--  GUI customization for Hexotic Plugin  -->
-
-<meshers>
-
-<meshers-group name="Hexotic"
-               resources="HexoticPlugin"
-               server-lib="HexoticEngine"
-               gui-lib="HexoticPluginGUI">
-  <hypotheses>
-    <hypothesis type="Hexotic_Parameters"
-               label-id="Hexotic Parameters"
-               icon-id="mesh_hypo_Hexotic.png"
-               dim="3"/>
-  </hypotheses>
-  <algorithms>
-    <algorithm type="Hexotic_3D"
-               label-id="Hexotic"
-               icon-id="mesh_algo_Hexotic.png"
-               hypos="Hexotic_Parameters"
-               input="TRIA,QUAD"
-               dim="3"/>
-  </algorithms>
-</meshers-group>
-
-</meshers>
index 97fb79e8b4e2254e88edc81e2edb79e11fe21a88..8bc42a8a12aac17120ae98fc166a3c78ff061388 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -25,7 +26,6 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 dist_salomeres_DATA =                  \
        HexoticPLUGIN.xml               \
-       HexoticPlugin.xml               \
        SalomeApp.xml
 
 if HEXOTICPLUGIN_ENABLE_GUI
index 4d07b893da999cc59376dcdc2c923bd9ce195af7..0e8c74247a42ce8423bf1aaebc92aaf594bcb1ac 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+  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
@@ -26,4 +26,7 @@
     <!-- Default SMESH module plugins -->
     <parameter name="plugins" value="NETGENPlugin,GHS3DPlugin,HexoticPLUGIN"/>
   </section>
+  <section name="smesh_help" >
+    <parameter name="Plug-ins/Hexotic plugin User's Guide" value="${HexoticPLUGIN_ROOT_DIR}/share/doc/salome/gui/HexoticPLUGIN/index.html"/>
+  </section>
 </document>
index 092eae3c049d4e0190e7bee44dd45172f8234d25..d5417e3387cae4f01dadac22c56a95832fd28592 100755 (executable)
Binary files a/resources/mesh_tree_algo_Hexotic.png and b/resources/mesh_tree_algo_Hexotic.png differ
index cd813c86ac35ddd35ad0169fc285870902fbb093..d5417e3387cae4f01dadac22c56a95832fd28592 100644 (file)
Binary files a/resources/mesh_tree_hypo_Hexotic.png and b/resources/mesh_tree_hypo_Hexotic.png differ
index 5fb7ac6a59bc4d599956ff126b3dd7dfadfd137e..e70321e86c42d1bd8fddc220b775b6ef7b2b05e2 100644 (file)
@@ -1,25 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<!--
-  Copyright (C) 2007-2008  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
-
--->
-<TS version="1.1" >
+<TS version="2.0" language="en_US">
     <context>
         <name>@default</name>
         <message>
index b3f4e611764cdd7ad8ffd53d13f5fb9be585c75f..362823cbf01335825086614e4035af19544f3168 100644 (file)
@@ -1,58 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<!--
-  Copyright (C) 2007-2008  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
-
--->
-<TS version="1.1" >
-    <context>
-        <name>@default</name>
-        <message>
-            <source>Hexotic_3D_HYPOTHESIS</source>
-            <translation>Hexotic 3D</translation>
-        </message>
-        <message>
-            <source>Hexotic_3D_TITLE</source>
-            <translation>Hypothesis Construction</translation>
-        </message>
-        <message>
-            <source>Hexotic_HEXES_MAX_LEVEL</source>
-            <translation>Nb. Hexes Max Level</translation>
-        </message>
-        <message>
-            <source>Hexotic_HEXES_MIN_LEVEL</source>
-            <translation>Nb. Hexes Min Level</translation>
-        </message>
-        <message>
-            <source>Hexotic_IGNORE_RIDGES</source>
-            <translation>Generate smooth meshes no ridges</translation>
-        </message>
-        <message>
-            <source>Hexotic_INVALID_ELEMENTS</source>
-            <translation>Authorize invalid elements</translation>
-        </message>
-        <message>
-            <source>Hexotic_QUADRANGLES</source>
-            <translation>Salome Quadrangles</translation>
-        </message>
-        <message>
-            <source>Hexotic_SHARP_ANGLE_THRESHOLD</source>
-            <translation>Sharp angle threshold in degrees</translation>
-        </message>
-    </context>
+<TS version="2.0" language="en_US">
+<context>
+    <name>@default</name>
+    <message>
+        <source>Hexotic_3D_HYPOTHESIS</source>
+        <translation>Hexotic 3D</translation>
+    </message>
+    <message>
+        <source>Hexotic_3D_TITLE</source>
+        <translation>Hypothesis Construction</translation>
+    </message>
+    <message>
+        <source>Hexotic_HEXES_MAX_LEVEL</source>
+        <translation>Nb. Hexes Max Level</translation>
+    </message>
+    <message>
+        <source>Hexotic_HEXES_MIN_LEVEL</source>
+        <translation>Nb. Hexes Min Level</translation>
+    </message>
+    <message>
+        <source>Hexotic_IGNORE_RIDGES</source>
+        <translation>Generate smooth meshes no ridges</translation>
+    </message>
+    <message>
+        <source>Hexotic_INVALID_ELEMENTS</source>
+        <translation>Authorize invalid elements</translation>
+    </message>
+    <message>
+        <source>Hexotic_QUADRANGLES</source>
+        <translation>Salome Quadrangles</translation>
+    </message>
+    <message>
+        <source>Hexotic_SHARP_ANGLE_THRESHOLD</source>
+        <translation>Sharp angle threshold in degrees</translation>
+    </message>
+    <message>
+        <source>Hexotic_NB_PROC</source>
+        <translation>Number of threads</translation>
+    </message>
+    <message>
+        <source>Hexotic_WORKING_DIR</source>
+        <translation>Working directory</translation>
+    </message>
+    <message>
+        <source>Hexotic_SELECT_DIR</source>
+        <translation>...</translation>
+    </message>
+</context>
 </TS>
diff --git a/src/GUI/HexoticPLUGIN_msg_fr.ts b/src/GUI/HexoticPLUGIN_msg_fr.ts
new file mode 100755 (executable)
index 0000000..73770b5
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+    <name>@default</name>
+    <message>
+        <source>Hexotic_3D_HYPOTHESIS</source>
+        <translation>Hexotic 3D</translation>
+    </message>
+    <message>
+        <source>Hexotic_3D_TITLE</source>
+        <translation>Construction de l&apos;hypothèse</translation>
+    </message>
+    <message>
+        <source>Hexotic_HEXES_MAX_LEVEL</source>
+        <translation>Nb. des hexagones: niveau max</translation>
+    </message>
+    <message>
+        <source>Hexotic_HEXES_MIN_LEVEL</source>
+        <translation>Nb. des hexagones: niveau min</translation>
+    </message>
+    <message>
+        <source>Hexotic_IGNORE_RIDGES</source>
+        <translation>Générer des maillages lisses sans crête</translation>
+    </message>
+    <message>
+        <source>Hexotic_INVALID_ELEMENTS</source>
+        <translation>Autoriser des éléments invalides</translation>
+    </message>
+    <message>
+        <source>Hexotic_QUADRANGLES</source>
+        <translation>Quadrangles Salomé</translation>
+    </message>
+    <message>
+        <source>Hexotic_SHARP_ANGLE_THRESHOLD</source>
+        <translation>Seuil d&apos;un angle aigu en degrés</translation>
+    </message>
+    <message>
+        <source>Hexotic_NB_PROC</source>
+        <translation>Nombre de process</translation>
+    </message>
+    <message>
+        <source>Hexotic_WORKING_DIR</source>
+        <translation>Répertoire de travail</translation>
+    </message>
+    <message>
+        <source>Hexotic_SELECT_DIR</source>
+        <translation>...</translation>
+    </message>
+</context>
+</TS>
index 2116d537106a90ffa7b8e457693b8f0ecfa32d2c..a45ce2f9b8e29615e14f2b74c4f8547e8bfd12fc 100755 (executable)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPluginGUI.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -30,6 +31,7 @@
 //=============================================================================
 extern "C"
 {
+  HEXOTICPLUGIN_GUI_EXPORT
   SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator( const QString& aHypType )
   {
     SMESHGUI_GenericHypothesisCreator* aCreator = NULL;
diff --git a/src/GUI/HexoticPluginGUI.h b/src/GUI/HexoticPluginGUI.h
new file mode 100755 (executable)
index 0000000..5c928b7
--- /dev/null
@@ -0,0 +1,31 @@
+// 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   : HexoticPluginGUI.h
+//
+
+#ifdef WIN32
+  #if defined HEXOTICPLUGIN_GUI_EXPORTS || defined HexoticPluginGUI_EXPORTS 
+    #define HEXOTICPLUGIN_GUI_EXPORT __declspec( dllexport )
+  #else
+    #define HEXOTICPLUGIN_GUI_EXPORT __declspec( dllimport )
+  #endif
+#else
+  #define HEXOTICPLUGIN_GUI_EXPORT
+#endif
index c09ae4f31a0287b8c7a16fe5b5d67642acaa7c65..a1ba5a4d55ef7fc9e83e2ab201965922910a98e5 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPluginGUI_HypothesisCreator.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -30,6 +31,7 @@
 
 #include <SUIT_Session.h>
 #include <SUIT_ResourceMgr.h>
+#include <SUIT_FileDlg.h>
 #include <SalomeApp_Tools.h>
 #include <QtxIntSpinBox.h>
 
@@ -40,6 +42,7 @@
 #include <QLineEdit>
 #include <QLabel>
 #include <QCheckBox>
+#include <QPushButton>
 
 enum Fineness {
   VeryCoarse,
@@ -73,8 +76,8 @@ QFrame* HexoticPluginGUI_HypothesisCreator::buildFrame()
 {
   QFrame* fr = new QFrame( 0 );
   QVBoxLayout* lay = new QVBoxLayout( fr );
-  lay->setMargin( 5 );
-  lay->setSpacing( 0 );
+  lay->setMargin( 0 );
+  lay->setSpacing( 6 );
 
   QGroupBox* GroupC1 = new QGroupBox( tr( "SMESH_ARGUMENTS" ), fr );
   lay->addWidget( GroupC1 );
@@ -86,46 +89,63 @@ QFrame* HexoticPluginGUI_HypothesisCreator::buildFrame()
   int row = 0;
   myName = 0;
   if( isCreation() ) {
-    l->addWidget( new QLabel( tr( "SMESH_NAME" ), GroupC1 ), row, 0, 1, 1 );
+    l->addWidget( new QLabel( tr( "SMESH_NAME" ), GroupC1 ), row, 0, 1, 2 );
     myName = new QLineEdit( GroupC1 );
-    l->addWidget( myName, row++, 1, 1, 1 );
+    l->addWidget( myName, row++, 2, 1, 1 );
+    myName->setMinimumWidth( 150 );
   }
 
   HexoticPlugin::HexoticPlugin_Hypothesis_var h =
   HexoticPlugin::HexoticPlugin_Hypothesis::_narrow( initParamsHypothesis() );
   
-  l->addWidget( new QLabel( tr( "Hexotic_HEXES_MIN_LEVEL" ), GroupC1 ), row, 0, 1, 1 );
+  l->addWidget( new QLabel( tr( "Hexotic_HEXES_MIN_LEVEL" ), GroupC1 ), row, 0, 1, 2 );
   myHexesMinLevel = new QtxIntSpinBox( GroupC1 );
-  // myHexesMinLevel->setMinimum( 3 );
-  myHexesMinLevel->setMinimum( h->GetHexesMinLevel() );
+  myHexesMinLevel->setMinimum( 3 );
+  //myHexesMinLevel->setMinimum( h->GetHexesMinLevel() );
   myHexesMinLevel->setMaximum( 10 );
   myHexesMinLevel->setSingleStep( 1 );
-  l->addWidget( myHexesMinLevel, row++, 1, 1, 1 );
+  l->addWidget( myHexesMinLevel, row++, 2, 1, 1 );
   
-  l->addWidget( new QLabel( tr( "Hexotic_HEXES_MAX_LEVEL" ), GroupC1 ), row, 0, 1, 1 );
+  l->addWidget( new QLabel( tr( "Hexotic_HEXES_MAX_LEVEL" ), GroupC1 ), row, 0, 1, 2 );
   myHexesMaxLevel = new QtxIntSpinBox( GroupC1 );
   myHexesMaxLevel->setMinimum( 3 );
   myHexesMaxLevel->setMaximum( 10 );
   myHexesMaxLevel->setSingleStep( 1 );
-  l->addWidget( myHexesMaxLevel, row++, 1, 1, 1 );
+  l->addWidget( myHexesMaxLevel, row++, 2, 1, 1 );
 
   myHexoticQuadrangles = new QCheckBox( tr( "Hexotic_QUADRANGLES" ), GroupC1 );
-  l->addWidget( myHexoticQuadrangles, row++, 0, 1, 2 );
+  l->addWidget( myHexoticQuadrangles, row++, 0, 1, 3 );
   myIs3D = true;
 
   myHexoticIgnoreRidges = new QCheckBox( tr( "Hexotic_IGNORE_RIDGES" ), GroupC1 );
-  l->addWidget( myHexoticIgnoreRidges, row++, 0, 1, 2 );
+  l->addWidget( myHexoticIgnoreRidges, row++, 0, 1, 3 );
 
   myHexoticInvalidElements = new QCheckBox( tr( "Hexotic_INVALID_ELEMENTS" ), GroupC1 );
-  l->addWidget( myHexoticInvalidElements, row++, 0, 1, 2 );
+  l->addWidget( myHexoticInvalidElements, row++, 0, 1, 3 );
 
-  l->addWidget( new QLabel( tr( "Hexotic_SHARP_ANGLE_THRESHOLD" ), GroupC1 ), row, 0, 1, 1 );
+  l->addWidget( new QLabel( tr( "Hexotic_SHARP_ANGLE_THRESHOLD" ), GroupC1 ), row, 0, 1, 2 );
   myHexoticSharpAngleThreshold = new QtxIntSpinBox( GroupC1 );
   myHexoticSharpAngleThreshold->setMinimum( 0 );
   myHexoticSharpAngleThreshold->setMaximum( 90 );
   myHexoticSharpAngleThreshold->setSingleStep( 1 );
-  l->addWidget( myHexoticSharpAngleThreshold, row++, 1, 1, 1 );
-
+  l->addWidget( myHexoticSharpAngleThreshold, row++, 2, 1, 1 );
+
+  l->addWidget( new QLabel( tr( "Hexotic_NB_PROC" ), GroupC1 ), row, 0, 1, 2 );
+  myHexoticNbProc = new QtxIntSpinBox( GroupC1 );
+  myHexoticNbProc->setMinimum( 1 );
+  myHexoticNbProc->setMaximum( 256 );
+  myHexoticNbProc->setSingleStep( 1 );
+  l->addWidget( myHexoticNbProc, row++, 2, 1, 1 );
+
+  l->addWidget( new QLabel( tr( "Hexotic_WORKING_DIR" ), GroupC1 ), row, 0, 1, 1 );
+  QPushButton* dirBtn = new QPushButton( tr( "Hexotic_SELECT_DIR" ), GroupC1 );
+  dirBtn->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
+  l->addWidget( dirBtn, row, 1, 1, 1 );  
+  myHexoticWorkingDir = new QLineEdit( GroupC1 );
+  l->addWidget( myHexoticWorkingDir, row++, 2, 1, 1 );
+
+  connect( dirBtn,                  SIGNAL( clicked() ),       this, SLOT( onDirBtnClicked() ) );
+  
   return fr;
 }
 
@@ -147,6 +167,9 @@ void HexoticPluginGUI_HypothesisCreator::retrieveParams() const
   myHexesMinLevel->setEnabled(true);
   myHexesMaxLevel->setEnabled(true);
   myHexoticSharpAngleThreshold->setEnabled(true);
+  
+  myHexoticNbProc->setValue( data.myHexoticNbProc );
+  myHexoticWorkingDir->setText( data.myHexoticWorkingDir );
 }
 
 QString HexoticPluginGUI_HypothesisCreator::storeParams() const
@@ -162,6 +185,8 @@ QString HexoticPluginGUI_HypothesisCreator::storeParams() const
   valStr += tr("Hexotic_IGNORE_RIDGES")  + " = " + QString::number( data.myHexoticIgnoreRidges ) + "; ";
   valStr += tr("Hexotic_INVALID_ELEMENTS")  + " = " + QString::number( data.myHexoticInvalidElements ) + "; ";
   valStr += tr("Hexotic_SHARP_ANGLE_THRESHOLD") + " = " + QString::number( data.myHexoticSharpAngleThreshold ) + "; ";
+  valStr += tr("Hexotic_NB_PROC") + " = " + QString::number( data.myHexoticNbProc ) + "; ";
+  valStr += tr("Hexotic_WORKING_DIR") + " = " + data.myHexoticWorkingDir + "; ";
 
   return valStr;
 }
@@ -179,6 +204,8 @@ bool HexoticPluginGUI_HypothesisCreator::readParamsFromHypo( HexoticHypothesisDa
   h_data.myHexoticIgnoreRidges = h->GetHexoticIgnoreRidges();
   h_data.myHexoticInvalidElements = h->GetHexoticInvalidElements();
   h_data.myHexoticSharpAngleThreshold = h->GetHexoticSharpAngleThreshold();
+  h_data.myHexoticNbProc = h->GetHexoticNbProc();
+  h_data.myHexoticWorkingDir = h->GetHexoticWorkingDirectory();
 
   return true;
 }
@@ -200,6 +227,8 @@ bool HexoticPluginGUI_HypothesisCreator::storeParamsToHypo( const HexoticHypothe
     h->SetHexoticIgnoreRidges( h_data.myHexoticIgnoreRidges );
     h->SetHexoticInvalidElements( h_data.myHexoticInvalidElements );
     h->SetHexoticSharpAngleThreshold( h_data.myHexoticSharpAngleThreshold );
+    h->SetHexoticNbProc( h_data.myHexoticNbProc );
+    h->SetHexoticWorkingDirectory( h_data.myHexoticWorkingDir.toLatin1().constData() );
   }
   catch(const SALOME::SALOME_Exception& ex)
   {
@@ -218,6 +247,8 @@ bool HexoticPluginGUI_HypothesisCreator::readParamsFromWidgets( HexoticHypothesi
   h_data.myHexoticIgnoreRidges = myHexoticIgnoreRidges->isChecked();
   h_data.myHexoticInvalidElements = myHexoticInvalidElements->isChecked();
   h_data.myHexoticSharpAngleThreshold = myHexoticSharpAngleThreshold->value();
+  h_data.myHexoticNbProc = myHexoticNbProc->value();
+  h_data.myHexoticWorkingDir = myHexoticWorkingDir->text();
 
   return true;
 }
@@ -237,3 +268,15 @@ QString HexoticPluginGUI_HypothesisCreator::type() const
 {
   return myIs3D ? tr( "Hexotic_3D_HYPOTHESIS" ) : tr( "Hexotic_3D_HYPOTHESIS" ); // ??? 3D/2D ???
 }
+
+QString HexoticPluginGUI_HypothesisCreator::helpPage() const
+{
+  return "hexotic_hypo_page.html";
+}
+
+void HexoticPluginGUI_HypothesisCreator::onDirBtnClicked()
+{
+  QString dir = SUIT_FileDlg::getExistingDirectory( dlg(), myHexoticWorkingDir->text(), QString() );
+  if ( !dir.isEmpty() )
+    myHexoticWorkingDir->setText( dir );
+}
index 50858cd03fd9c7af3886c2623c8118bdc8ad4c12..21cdcd4deeda447af5cb0b77d3650970f33fe164 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPluginGUI_HypothesisCreator.h
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -24,6 +25,8 @@
 #ifndef HexoticPLUGINGUI_HypothesisCreator_H
 #define HexoticPLUGINGUI_HypothesisCreator_H
 
+#include "HexoticPluginGUI.h"
+
 #include <SMESHGUI_Hypotheses.h>
 
 class QtxIntSpinBox;
@@ -38,12 +41,14 @@ typedef struct
   bool     myHexoticInvalidElements;
   bool     myHexoticIgnoreRidges;
   int      myHexoticSharpAngleThreshold;
+  int      myHexoticNbProc;
+  QString  myHexoticWorkingDir;
 } HexoticHypothesisData;
 
 /*!
  * \brief Class for creation of Hexotic hypotheses
 */
-class HexoticPluginGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
+class HEXOTICPLUGIN_GUI_EXPORT HexoticPluginGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
 {
   Q_OBJECT
 
@@ -52,6 +57,7 @@ public:
   virtual ~HexoticPluginGUI_HypothesisCreator();
 
   virtual bool checkParams() const;
+  virtual QString  helpPage() const;
 
 protected:
   virtual QFrame*  buildFrame    ();
@@ -61,6 +67,9 @@ protected:
   virtual QString  caption() const;
   virtual QPixmap  icon() const;
   virtual QString  type() const;
+  
+protected slots:
+  void             onDirBtnClicked();
 
 private:
   bool readParamsFromHypo( HexoticHypothesisData& ) const;
@@ -75,6 +84,8 @@ private:
  QCheckBox*       myHexoticIgnoreRidges;
  QCheckBox*       myHexoticInvalidElements;
  QtxIntSpinBox*   myHexoticSharpAngleThreshold;
+ QtxIntSpinBox*   myHexoticNbProc;
+ QLineEdit*       myHexoticWorkingDir;
 
  bool             myIs3D;
 };
index 04c1c775d4322d9ceb1271c086075c4345db62ee..2aba1301643529c930869787f63f60621856a4a6 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -31,6 +32,7 @@ lib_LTLIBRARIES = libHexoticPluginGUI.la
 
 dist_libHexoticPluginGUI_la_SOURCES =          \
        HexoticPluginGUI.cxx                    \
+       HexoticPluginGUI.h                      \
        HexoticPluginGUI_HypothesisCreator.h    \
        HexoticPluginGUI_HypothesisCreator.cxx
 
@@ -55,15 +57,17 @@ libHexoticPluginGUI_la_CPPFLAGS =   \
        $(CORBA_CXXFLAGS)               \
        $(CORBA_INCLUDES)               \
        -I$(srcdir)/../HexoticPlugin    \
-       -I$(top_builddir)/idl           \
-       -I$(top_builddir)/salome_adm/unix
+       -I$(top_builddir)/idl
 
-libHexoticPluginGUI_la_LDFLAGS =               \
-       ../HexoticPlugin/libHexoticEngine.la    \
-       ${SMESH_LDFLAGS} -lSMESH                \
-       $(CAS_KERNEL)
+libHexoticPluginGUI_la_LDFLAGS =                          \
+       ../HexoticPlugin/libHexoticEngine.la               \
+       ${SMESH_LDFLAGS} -lSMESH                           \
+       $(CAS_KERNEL)                                      \
+       $(GUI_LDFLAGS) -lsuit -lqtx -lSalomeApp            \
+       $(QT_LIBS)
 
 # resources files
-nodist_salomeres_DATA =                        \
+nodist_salomeres_DATA =                \
        HexoticPLUGIN_images.qm \
-       HexoticPLUGIN_msg_en.qm
+       HexoticPLUGIN_msg_en.qm \
+       HexoticPLUGIN_msg_fr.qm
diff --git a/src/HexoticPlugin/HexoticPLUGINDC.py b/src/HexoticPlugin/HexoticPLUGINDC.py
new file mode 100644 (file)
index 0000000..92bdd68
--- /dev/null
@@ -0,0 +1,54 @@
+# 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
+#
+
+from smesh import Mesh_Algorithm, AssureGeomPublished
+
+# import HexoticPlugin module if possible
+noHexoticPlugin = 0
+try:
+    import HexoticPlugin
+except ImportError:
+    noHexoticPlugin = 1
+    pass
+
+Hexotic = "Hexotic_3D"
+
+
+## Defines a hexahedron 3D algorithm
+#
+class Hexotic_Algorithm(Mesh_Algorithm):
+
+    meshMethod = "Hexahedron"
+    algoType   = Hexotic
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        if noHexoticPlugin: print "Warning: HexoticPlugin module unavailable"
+        self.Create(mesh, geom, Hexotic, "libHexoticEngine.so")
+        pass
+
+    ## Defines "MinMaxQuad" hypothesis to give three hexotic parameters
+    def MinMaxQuad(self, min=3, max=8, quad=True):
+        self.params = self.Hypothesis("Hexotic_Parameters", [], "libHexoticEngine.so",
+                                      UseExisting=0)
+        self.params.SetHexesMinLevel(min)
+        self.params.SetHexesMaxLevel(max)
+        self.params.SetHexoticQuadrangles(quad)
+        return self.params
diff --git a/src/HexoticPlugin/HexoticPlugin_Defs.hxx b/src/HexoticPlugin/HexoticPlugin_Defs.hxx
new file mode 100755 (executable)
index 0000000..9830771
--- /dev/null
@@ -0,0 +1,36 @@
+// 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      : HexoticPlugin_Defs.hxx
+//
+#ifndef _HexoticPlugin_DEFS_HXX_
+#define _HexoticPlugin_DEFS_HXX_
+
+#ifdef WIN32
+  #if defined HEXOTICPLUGIN_EXPORTS || defined HexoticEngine_EXPORTS
+    #define HEXOTICPLUGIN_EXPORT __declspec( dllexport )
+  #else
+    #define HEXOTICPLUGIN_EXPORT __declspec( dllimport )
+  #endif
+#else
+  #define HEXOTICPLUGIN_EXPORT
+#endif
+
+#endif
index fd3d01c87ad8894139910833cfde3b9afcd471b7..ceba57e252e9f47cfed7af6013815e8567874ff1 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hexotic.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
 
 #include <SMESH_Gen.hxx>
 #include <SMESHDS_Mesh.hxx>
+#include <SMESHDS_GroupBase.hxx>
 #include <SMESH_ControlsDef.hxx>
+#include <SMESH_MesherHelper.hxx>
+#include "SMESH_HypoFilter.hxx"
+#include <SMESH_File.hxx>
 
 #include <list>
 #include <cstdlib>
 #include <iostream>
 
+#include <Standard_ProgramError.hxx>
+
 #include <BRepClass3d_SolidClassifier.hxx>
 #include <Bnd_Box.hxx>
 #include <BRepBndLib.hxx>
 #include <TColStd_Array1OfReal.hxx>
 #include <BRepExtrema_DistShapeShape.hxx>
 
+static void removeFile( const TCollection_AsciiString& fileName )
+{
+  try {
+    OSD_File( fileName ).Remove();
+  }
+  catch ( Standard_ProgramError ) {
+    MESSAGE("Can't remove file: " << fileName.ToCString() << " ; file does not exist or permission denied");
+  }
+}
+
 //=============================================================================
 /*!
  *  
@@ -78,10 +95,17 @@ HexoticPlugin_Hexotic::HexoticPlugin_Hexotic(int hypId, int studyId, SMESH_Gen*
   _name = "Hexotic_3D";
   _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type
 //   _onlyUnaryInput = false;
+  _requireShape = false;
   _iShape=0;
   _nbShape=0;
   _hexoticFilesKept=false;
   _compatibleHypothesis.push_back("Hexotic_Parameters");
+#ifdef WITH_BLSURFPLUGIN
+  _blsurfHypo = NULL;
+#endif
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  _compute_canceled = false;
+#endif
 }
 
 //=============================================================================
@@ -95,6 +119,37 @@ HexoticPlugin_Hexotic::~HexoticPlugin_Hexotic()
   MESSAGE("HexoticPlugin_Hexotic::~HexoticPlugin_Hexotic");
 }
 
+
+#ifdef WITH_BLSURFPLUGIN
+bool HexoticPlugin_Hexotic::CheckBLSURFHypothesis( SMESH_Mesh&         aMesh,
+                                                   const TopoDS_Shape& aShape )
+{
+  // MESSAGE("HexoticPlugin_Hexotic::CheckBLSURFHypothesis");
+  _blsurfHypo = NULL;
+
+  std::list<const SMESHDS_Hypothesis*>::const_iterator itl;
+  const SMESHDS_Hypothesis* theHyp;
+
+  // If a BLSURF hypothesis is applied, get it
+  SMESH_HypoFilter blsurfFilter;
+  blsurfFilter.Init( blsurfFilter.HasName( "BLSURF_Parameters" ));
+  std::list<const SMESHDS_Hypothesis *> appliedHyps;
+  aMesh.GetHypotheses( aShape, blsurfFilter, appliedHyps, false );
+
+  if ( appliedHyps.size() > 0 ) {
+    itl = appliedHyps.begin();
+    theHyp = (*itl); // use only the first hypothesis
+    std::string hypName = theHyp->GetName();
+    if (hypName == "BLSURF_Parameters") {
+      _blsurfHypo = static_cast<const BLSURFPlugin_Hypothesis*> (theHyp);
+      ASSERT(_blsurfHypo);
+      return true;
+    }
+  }
+  return false;
+}
+#endif
+
 //=============================================================================
 /*!
  *  
@@ -111,7 +166,7 @@ bool HexoticPlugin_Hexotic::CheckHypothesis( SMESH_Mesh&
   std::list<const SMESHDS_Hypothesis*>::const_iterator itl;
   const SMESHDS_Hypothesis* theHyp;
 
-  const std::list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
+  const std::list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape, false);
   int nbHyp = hyps.size();
   if (!nbHyp) {
     aStatus = SMESH_Hypothesis::HYP_OK;
@@ -129,7 +184,11 @@ bool HexoticPlugin_Hexotic::CheckHypothesis( SMESH_Mesh&
   }
   else
     aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-
+  
+#ifdef WITH_BLSURFPLUGIN
+  CheckBLSURFHypothesis(aMesh, aShape);
+#endif
+  
   return aStatus == SMESH_Hypothesis::HYP_OK;
 }
 
@@ -142,11 +201,11 @@ static TopoDS_Shape findShape(SMDS_MeshNode**     t_Node,
                               TopoDS_Shape        aShape,
                               const TopoDS_Shape* t_Shape,
                               double**            t_Box,
-                              const int           nShape) {
-  double *pntCoor;
+                              const int           nShape)
+{
+  double pntCoor[3];
   int iShape, nbNode = 8;
 
-  pntCoor = new double[3];
   for ( int i=0; i<3; i++ ) {
     pntCoor[i] = 0;
     for ( int j=0; j<nbNode; j++ ) {
@@ -156,22 +215,22 @@ static TopoDS_Shape findShape(SMDS_MeshNode**     t_Node,
     }
     pntCoor[i] /= nbNode;
   }
-
   gp_Pnt aPnt(pntCoor[0], pntCoor[1], pntCoor[2]);
+
+  if ( aShape.IsNull() ) aShape = t_Shape[0];
   BRepClass3d_SolidClassifier SC (aShape, aPnt, Precision::Confusion());
-  if ( not(SC.State() == TopAbs_IN) ) {
-    for (iShape = 0; iShape < nShape; iShape++) {
-      aShape = t_Shape[iShape];
-      if ( not( pntCoor[0] < t_Box[iShape][0] || t_Box[iShape][1] < pntCoor[0] ||
-                pntCoor[1] < t_Box[iShape][2] || t_Box[iShape][3] < pntCoor[1] ||
-                pntCoor[2] < t_Box[iShape][4] || t_Box[iShape][5] < pntCoor[2]) ) {
-        BRepClass3d_SolidClassifier SC (aShape, aPnt, Precision::Confusion());
+  if ( !(SC.State() == TopAbs_IN) ) {
+    aShape.Nullify();
+    for (iShape = 0; iShape < nShape && aShape.IsNull(); iShape++) {
+      if ( !( pntCoor[0] < t_Box[iShape][0] || t_Box[iShape][1] < pntCoor[0] ||
+              pntCoor[1] < t_Box[iShape][2] || t_Box[iShape][3] < pntCoor[1] ||
+              pntCoor[2] < t_Box[iShape][4] || t_Box[iShape][5] < pntCoor[2]) ) {
+        BRepClass3d_SolidClassifier SC (t_Shape[iShape], aPnt, Precision::Confusion());
         if (SC.State() == TopAbs_IN)
-          break;
+          aShape = t_Shape[iShape];
       }
     }
   }
-  delete [] pntCoor;
   return aShape;
 }
 
@@ -218,8 +277,8 @@ static int findEdge(const SMDS_MeshNode* aNode,
 //purpose  :
 //=======================================================================
 
-static int getNbShape(std::string aFile, std::string aString) {
-  int number;
+static int getNbShape(std::string aFile, std::string aString, int defaultValue=0) {
+  int number = defaultValue;
   std::string aLine;
   std::ifstream file(aFile.c_str());
   while ( !file.eof() ) {
@@ -228,6 +287,7 @@ static int getNbShape(std::string aFile, std::string aString) {
       getline( file, aLine);
       std::istringstream stringFlux( aLine );
       stringFlux >> number;
+      number = ( number + defaultValue + std::abs(number - defaultValue) ) / 2;
       break;
     }
   }
@@ -290,8 +350,8 @@ static void printWarning(const int nbExpected, std::string aString, const int nb
 //=======================================================================
 
 static void removeHexoticFiles(TCollection_AsciiString file_In, TCollection_AsciiString file_Out) {
-  OSD_File( file_In  ).Remove();
-  OSD_File( file_Out ).Remove();
+  removeFile( file_In );
+  removeFile( file_Out );
 }
 
 //=======================================================================
@@ -300,10 +360,10 @@ static void removeHexoticFiles(TCollection_AsciiString file_In, TCollection_Asci
 //=======================================================================
 
 static bool writeHexoticFile (std::ofstream&                       theFile,
-                             const SMESHDS_Mesh*                  theMesh,
-                             std::map <int,int>&                  theSmdsToHexoticIdMap,
-                             std::map <int,const SMDS_MeshNode*>& theHexoticIdToNodeMap,
-                             const TCollection_AsciiString&       Hexotic_In) {
+                              const SMESHDS_Mesh*                  theMesh,
+                              std::map <int,int>&                  theSmdsToHexoticIdMap,
+                              std::map <int,const SMDS_MeshNode*>& /*theHexoticIdToNodeMap*/,
+                              const TCollection_AsciiString&       Hexotic_In) {
   cout << std::endl;
   cout << "Creating Hexotic processed mesh file : " << Hexotic_In << std::endl;
 
@@ -323,8 +383,9 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
   int nbVertices    = 0;
   int nbTriangles   = 0;
   const char* space = "  ";
-  int dummy_1D      = 0;
+  int dummy_0D      = 0;
   int dummy_2D;
+  int nbNodes = 0;
 
   int aSmdsNodeID = 1;
   const SMDS_MeshNode* aNode;
@@ -341,7 +402,7 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
 
   nbVertices = theMesh->NbNodes();
 
-  theFile << "MeshVersionFormatted 1" << std::endl;
+  theFile << "MeshVersionFormatted 2" << std::endl;
   theFile << std::endl;
   theFile << "Dimension" << std::endl;
   theFile << 3 << std::endl;
@@ -356,31 +417,26 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
   itOnNode = theMesh->nodesIterator();
   while ( itOnNode->more() ) {
       aNode = itOnNode->next();
-      dummy_1D = aNode->GetPosition()->GetShapeId();
+      dummy_0D = aNode->getshapeId();
       tabNodeId[ aSmdsNodeID - 1 ] = 0;
       idFound  = false;
       for ( int j=0; j< aSmdsNodeID; j++ ) {
-        if ( dummy_1D == tabNodeId[j] ) {
+        if ( dummy_0D == tabNodeId[j] ) {
           idFound = true;
           break;
         }
       }
-      if ( not idFound )
-        tabNodeId[ aSmdsNodeID - 1 ] = dummy_1D;
+      if ( ! idFound )
+        tabNodeId[ aSmdsNodeID - 1 ] = dummy_0D;
       theSmdsToHexoticIdMap.insert(std::map <int,int>::value_type( aNode->GetID(), aSmdsNodeID ));
-      theHexoticIdToNodeMap.insert(std::map <int,const SMDS_MeshNode*>::value_type( aSmdsNodeID, aNode ));
       aSmdsNodeID++;
-      theFile << aNode->X() << space << aNode->Y() << space << aNode->Z() << space << dummy_1D << std::endl;
+      theFile << aNode->X() << space << aNode->Y() << space << aNode->Z() << space << dummy_0D << std::endl;
       }
 
 // Writing SMESH faces into Hexotic File
 
-  nbTriangles = theMesh->NbFaces();
-
-  theFile << std::endl;
-  theFile << "# Set of mesh triangles (v1,v2,v3,tag)" << std::endl;
-  theFile << "Triangles" << std::endl;
-  theFile << nbTriangles << std::endl;
+  ostringstream triaOut;
+  nbTriangles = 0;
 
   expface.ReInit();
   for ( int i = 0; expface.More(); expface.Next(), i++ ) {
@@ -394,13 +450,13 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
         break;
       }
     }
-    if ( not idFound ) {
+    if ( ! idFound ) {
       tabID[i]    = shapeID;
       tabShape[i] = aShape;
     }
   }
   for ( int i=0; i<nbShape; i++ ) {
-    if ( not (tabID[i] == 0) ) {
+    if ( ! (tabID[i] == 0) ) {
       aShape      = tabShape[i];
       shapeID     = tabID[i];
       theSubMesh  = theMesh->MeshElements( aShape );
@@ -408,18 +464,42 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
       while ( itOnSubFace->more() ) {
         aFace    = itOnSubFace->next();
         dummy_2D = shapeID;
-        itOnSubNode = aFace->nodesIterator();
-        while ( itOnSubNode->more() ) {
-          aSmdsNodeID  = itOnSubNode->next()->GetID();
-          itOnSmdsNode = theSmdsToHexoticIdMap.find( aSmdsNodeID );
-          ASSERT( itOnSmdsNode != theSmdsToHexoticIdMap.end() );
-          theFile << (*itOnSmdsNode).second << space;
+        
+        nbNodes = aFace->IsQuadratic() ? aFace->NbNodes()/2 : aFace->NbNodes();
+        if ( nbNodes == 3 ) // triangle
+        {
+          nbTriangles++;
+          for ( int i = 0; i < nbNodes; ++i )
+          {
+            aSmdsNodeID = aFace->GetNode( i )->GetID();
+            itOnSmdsNode = theSmdsToHexoticIdMap.find( aSmdsNodeID );
+            ASSERT( itOnSmdsNode != theSmdsToHexoticIdMap.end() );
+            triaOut << (*itOnSmdsNode).second << space;
+          }
+          triaOut << dummy_2D << std::endl;
+        }
+        else // polygon
+        {
+          int nbTria = nbNodes - 2, n0 = theSmdsToHexoticIdMap[ aFace->GetNode(0)->GetID() ];
+          nbTriangles += nbTria;
+          for ( int i = 0; i < nbTria; ++i )
+          {
+            triaOut << n0 << space;
+            triaOut << theSmdsToHexoticIdMap[ aFace->GetNode(i+1)->GetID() ] << space;
+            triaOut << theSmdsToHexoticIdMap[ aFace->GetNode(i+2)->GetID() ] << space;
+            triaOut << dummy_2D << std::endl;
+          }
         }
-        theFile << dummy_2D << std::endl;
       }
     }
   }
 
+  theFile << std::endl;
+  theFile << "# Set of mesh triangles (v1,v2,v3,tag)" << std::endl;
+  theFile << "Triangles" << std::endl;
+  theFile << nbTriangles << std::endl;
+  theFile << triaOut.str() << std::endl;
+
   theFile << std::endl;
   theFile << "End" << std::endl;
 
@@ -435,17 +515,143 @@ static bool writeHexoticFile (std::ofstream&                       theFile,
   return true;
 }
 
+//=======================================================================
+//function : writeHexoticFile
+//purpose  : 
+//=======================================================================
+
+static bool writeHexoticFile (std::ofstream&                       theFile,
+                              const SMESH_MesherHelper*            theHelper,
+                              std::map <int,int>&                  theSmdsToHexoticIdMap,
+                              const TCollection_AsciiString&       Hexotic_In)
+{
+  cout << std::endl;
+  cout << "Creating Hexotic processed mesh file : " << Hexotic_In << std::endl;
+
+  int nbVertices    = 0;
+  int nbTriangles   = 0;
+  const char* space = "  ";
+  int dummy_0D      = 0;
+  int dummy_2D      = 0;
+
+  int aSmdsNodeID = 1;
+  const SMDS_MeshNode* aNode;
+  SMDS_NodeIteratorPtr itOnNode;
+
+  const SMDS_MeshElement* aFace;
+  std::map<int,int>::const_iterator itOnSmdsNode;
+  SMDS_ElemIteratorPtr itOnSubNode, itOnSubFace;
+
+  // Writing SMESH points into Hexotic File
+
+  nbVertices = theHelper->GetMeshDS()->NbNodes();
+
+  theFile << "MeshVersionFormatted 2" << std::endl;
+  theFile << std::endl;
+  theFile << "Dimension" << std::endl;
+  theFile << 3 << std::endl;
+  theFile << "# Set of mesh vertices" << std::endl;
+  theFile << "Vertices" << std::endl;
+  theFile << nbVertices << std::endl;
+
+  itOnNode = theHelper->GetMeshDS()->nodesIterator();
+  while ( itOnNode->more() )
+  {
+    aNode = itOnNode->next();
+    theSmdsToHexoticIdMap.insert(make_pair( aNode->GetID(), aSmdsNodeID ));
+    aSmdsNodeID++;
+    theFile << aNode->X() << space << aNode->Y() << space << aNode->Z() << space << dummy_0D << std::endl;
+  }
+
+  // Writing SMESH faces into Hexotic File
+
+  ostringstream triaOut;
+
+  itOnSubFace = theHelper->GetMeshDS()->elementsIterator(SMDSAbs_Face);
+  while ( itOnSubFace->more() )
+  {
+    aFace = itOnSubFace->next();
+    int nbNodes = aFace->IsQuadratic() ? aFace->NbNodes()/2 : aFace->NbNodes();
+    if ( nbNodes == 3 ) // triangle
+    {
+      nbTriangles++;
+      for ( int i = 0; i < nbNodes; ++i )
+      {
+        aSmdsNodeID = aFace->GetNode( i )->GetID();
+        itOnSmdsNode = theSmdsToHexoticIdMap.find( aSmdsNodeID );
+        ASSERT( itOnSmdsNode != theSmdsToHexoticIdMap.end() );
+        triaOut << (*itOnSmdsNode).second << space;
+      }
+      triaOut << dummy_2D << std::endl;
+    }
+    else // polygon
+    {
+      int nbTria = nbNodes - 2, n0 = theSmdsToHexoticIdMap[ aFace->GetNode(0)->GetID() ];
+      nbTriangles += nbTria;
+      for ( int i = 0; i < nbTria; ++i )
+      {
+        triaOut << n0 << space;
+        triaOut << theSmdsToHexoticIdMap[ aFace->GetNode(i+1)->GetID() ] << space;
+        triaOut << theSmdsToHexoticIdMap[ aFace->GetNode(i+2)->GetID() ] << space;
+        triaOut << dummy_2D << std::endl;
+      }
+    }
+  }
+
+  theFile << std::endl;
+  theFile << "# Set of mesh triangles (v1,v2,v3,tag)" << std::endl;
+  theFile << "Triangles" << std::endl;
+  theFile << nbTriangles << std::endl;
+  theFile << triaOut.str() << std::endl;
+
+  theFile << std::endl;
+  theFile << "End" << std::endl;
+
+  cout << "Processed mesh file created, it contains :" << std::endl;
+  cout << "    " << nbVertices  << " vertices"  << std::endl;
+  cout << "    " << nbTriangles << " triangles" << std::endl;
+  cout << std::endl;
+
+  return true;
+}
+
 //=======================================================================
 //function : readResult
 //purpose  : 
 //=======================================================================
 
 static bool readResult(std::string         theFile,
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+                       HexoticPlugin_Hexotic*  theAlgo,
+#endif
                        SMESHDS_Mesh*       theMesh,
                        const int           nbShape,
                        const TopoDS_Shape* tabShape,
                        double**            tabBox)
 {
+  // ---------------------------------
+  // Optimisation of the plugin ...
+  // Retrieve the correspondance edge --> shape
+  // (which is very costly) only when user
+  // has defined at least one group of edges
+  // which should be rare for a 3d mesh !
+  // ---------------------------------
+  
+  bool retrieve_edges = false;
+  const std::set<SMESHDS_GroupBase*>& aGroups = theMesh->GetGroups();
+  set<SMESHDS_GroupBase*>::const_iterator GrIt = aGroups.begin();
+  for (; GrIt != aGroups.end(); GrIt++)
+    {
+      SMESHDS_GroupBase* aGrp = *GrIt;
+      if ( !aGrp )
+        continue;
+      if ( aGrp->GetType() == SMDSAbs_Edge )
+        {
+          retrieve_edges = true;
+          break;
+        }
+    }
+  
   // ---------------------------------
   // Read generated elements and nodes
   // ---------------------------------
@@ -455,7 +661,7 @@ static bool readResult(std::string         theFile,
   std::string token;
   int EndOfFile = 0, nbElem = 0, nField = 9, nbRef = 0;
   int aHexoticNodeID = 0, shapeID, hexoticShapeID;
-  int IdShapeRef = 2;
+  const int IdShapeRef = 2;
   int *tabID, *tabRef, *nodeAssigne;
   bool *tabDummy, hasDummy = false;
   double epsilon = Precision::Confusion();
@@ -463,13 +669,17 @@ static bool readResult(std::string         theFile,
   SMDS_MeshNode** HexoticNode;
   TopoDS_Shape *tabCorner, *tabEdge;
 
-  tabID    = new int[nbShape];
+  const int nbDomains = countShape( theMesh, TopAbs_SHELL );
+  const int holeID = -1;
+
+  // tabID    = new int[nbShape];
+  tabID    = new int[nbDomains];
   tabRef   = new int[nField];
   tabDummy = new bool[nField];
 
-  for (int i=0; i<nbShape; i++)
+  for (int i=0; i<nbDomains; i++)
     tabID[i] = 0;
-  if ( nbShape == 1 )
+  if ( nbDomains == 1 )
     tabID[0] = theMesh->ShapeToIndex( tabShape[0] );
 
   mapField["MeshVersionFormatted"] = 0; tabRef[0] = 0; tabDummy[0] = false;
@@ -487,16 +697,9 @@ static bool readResult(std::string         theFile,
     theMesh->RemoveNode( itOnHexoticInputNode->next() );
 
   int nbVertices   = getNbShape(theFile, "Vertices");
-  int nbHexCorners = getNbShape(theFile, "Corners");
-  int nbCorners    = countShape( theMesh, TopAbs_VERTEX );
+  int nbCorners    = getNbShape(theFile, "Corners", countShape( theMesh, TopAbs_VERTEX ));
   int nbShapeEdge  = countShape( theMesh, TopAbs_EDGE );
 
-  if ( nbHexCorners != nbCorners ) {
-    printWarning(nbCorners, "corners", nbHexCorners);
-    if ( nbHexCorners > nbCorners )
-      nbCorners = nbHexCorners;
-  }
-
   tabCorner   = new TopoDS_Shape[ nbCorners ];
   tabEdge     = new TopoDS_Shape[ nbShapeEdge ];
   nodeAssigne = new int[ nbVertices + 1 ];
@@ -544,6 +747,12 @@ static bool readResult(std::string         theFile,
 
         coord = new double[nbRef];
         for ( int iElem = 0; iElem < nbElem; iElem++ ) {
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+          if(theAlgo->computeCanceled())
+            {
+              return false;
+            }
+#endif
           aHexoticID = iElem + 1;
           for ( int iCoord = 0; iCoord < 3; iCoord++ )
             fileRes >> coord[ iCoord ];
@@ -563,11 +772,17 @@ static bool readResult(std::string         theFile,
         MESSAGE("Read " << nbElem << " " << token);
         SMDS_MeshNode** node;
         int nodeDim, *nodeID;
-        SMDS_MeshElement * aHexoticElement;
+        SMDS_MeshElement * aHexoticElement = 0;
 
         node   = new SMDS_MeshNode*[ nbRef ];
         nodeID = new int[ nbRef ];
         for ( int iElem = 0; iElem < nbElem; iElem++ ) {
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+          if(theAlgo->computeCanceled())
+            {
+              return false;
+            }
+#endif
           for ( int iRef = 0; iRef < nbRef; iRef++ ) {
             fileRes >> aHexoticNodeID;                          // read nbRef aHexoticNodeID
             node[ iRef ]   = HexoticNode[ aHexoticNodeID ];
@@ -593,7 +808,10 @@ static bool readResult(std::string         theFile,
               int iNode = 1;
               if ( nodeAssigne[ nodeID[0] ] == 0 || nodeAssigne[ nodeID[0] ] == 2 )
                 iNode = 0;
-              shapeID = findEdge( node[iNode], theMesh, nbShapeEdge, tabEdge );
+              if(retrieve_edges)
+                shapeID = findEdge( node[iNode], theMesh, nbShapeEdge, tabEdge );
+              else
+                shapeID = 0;
               break;
             }
             case 5: { // "Ridges"
@@ -607,22 +825,19 @@ static bool readResult(std::string         theFile,
             }
             case 7: { // "Hexahedra"
               nodeDim = 4;
-              aHexoticElement = theMesh->AddVolume( node[0], node[3], node[2], node[1], node[4], node[7], node[6], node[5] );
-              if ( nbShape > 1 ) {
+              if ( nbDomains > 1 ) {
                 hexoticShapeID = dummy - IdShapeRef;
                 if ( tabID[ hexoticShapeID ] == 0 ) {
-                  if (iElem == 0)
-                    aShape = tabShape[0];
                   aShape = findShape(node, aShape, tabShape, tabBox, nbShape);
-                  shapeID = theMesh->ShapeToIndex( aShape );
+                  shapeID = aShape.IsNull() ? holeID : theMesh->ShapeToIndex( aShape );
                   tabID[ hexoticShapeID ] = shapeID;
                 }
                 else
                   shapeID = tabID[ hexoticShapeID ];
                 if ( iElem == (nbElem - 1) ) {
                   int shapeAssociated = 0;
-                  for ( int i=0; i<nbShape; i++ ) {
-                    if (tabID[i] != 0 )
+                  for ( int i=0; i<nbDomains; i++ ) {
+                    if (tabID[i] > 0 )
                       shapeAssociated += 1;
                   }
                   if ( shapeAssociated != nbShape )
@@ -632,10 +847,13 @@ static bool readResult(std::string         theFile,
               else {
                 shapeID = tabID[0];
               }
+              if ( shapeID != holeID )
+                aHexoticElement = theMesh->AddVolume( node[0], node[3], node[2], node[1], node[4], node[7], node[6], node[5] );
               break;
             }
-          }
-          if ( token != "Ridges" ) {
+          } // switch (nField)
+
+          if ( token != "Ridges" && ( shapeID > 0 || token == "Corners")) {
             for ( int i=0; i<nbRef; i++ ) {
               if ( nodeAssigne[ nodeID[i] ] == 0 ) {
                 if      ( token == "Corners" )        theMesh->SetNodeOnVertex( node[0], aVertex );
@@ -645,7 +863,7 @@ static bool readResult(std::string         theFile,
                 nodeAssigne[ nodeID[i] ] = nodeDim;
               }
             }
-            if ( token != "Corners" )
+            if ( token != "Corners" && aHexoticElement )
               theMesh->SetMeshElementOnShape( aHexoticElement, shapeID );
           }
         }
@@ -664,6 +882,18 @@ static bool readResult(std::string         theFile,
     }
   }
   cout << std::endl;
+
+  // remove nodes in holes
+  if ( nbDomains > 1 )
+  {
+    SMESHDS_SubMesh* subMesh;
+    for ( int i = 1; i <= nbVertices; ++i )
+      if ( HexoticNode[i]->NbInverseElements() == 0 )
+      {
+        subMesh =  HexoticNode[i]->getshapeId() > 0 ? theMesh->MeshElements(HexoticNode[i]->getshapeId() ) : 0;
+        theMesh->RemoveFreeNode( HexoticNode[i], subMesh, /*fromGroups=*/false );
+      }
+  }
   delete [] tabID;
   delete [] tabRef;
   delete [] tabDummy;
@@ -674,6 +904,168 @@ static bool readResult(std::string         theFile,
   return true;
 }
 
+
+//=======================================================================
+//function : readResult
+//purpose  : 
+//=======================================================================
+
+static bool readResult(std::string theFile,
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+                       HexoticPlugin_Hexotic*  theAlgo,
+#endif
+                       SMESH_MesherHelper* theHelper)
+{
+  SMESHDS_Mesh* theMesh = theHelper->GetMeshDS();
+
+  // ---------------------------------
+  // Read generated elements and nodes
+  // ---------------------------------
+
+  std::string token;
+  const int nbField = 9;
+  int nField, EndOfFile = 0, nbElem = 0, nbRef = 0;
+  int aHexoticNodeID = 0, shapeID;
+  int tabRef[nbField], *nodeAssigne;
+  bool tabDummy[nbField], hasDummy = false;
+  std::map <std::string,int> mapField;
+  SMDS_MeshNode** HexoticNode;
+
+  mapField["MeshVersionFormatted"] = 0; tabRef[0] = 0; tabDummy[0] = false;
+  mapField["Dimension"]            = 1; tabRef[1] = 0; tabDummy[1] = false;
+  mapField["Vertices"]             = 2; tabRef[2] = 3; tabDummy[2] = true;
+  mapField["Corners"]              = 3; tabRef[3] = 1; tabDummy[3] = false;
+  mapField["Edges"]                = 4; tabRef[4] = 2; tabDummy[4] = true;
+  mapField["Ridges"]               = 5; tabRef[5] = 1; tabDummy[5] = false;
+  mapField["Quadrilaterals"]       = 6; tabRef[6] = 4; tabDummy[6] = true;
+  mapField["Hexahedra"]            = 7; tabRef[7] = 8; tabDummy[7] = true;
+  mapField["End"]                  = 8; tabRef[8] = 0; tabDummy[8] = false;
+
+  theHelper->GetMesh()->Clear();
+
+  int nbVertices = getNbShape(theFile, "Vertices");
+  HexoticNode = new SMDS_MeshNode*[ nbVertices + 1 ];
+  nodeAssigne = new int[ nbVertices + 1 ];
+
+  MESSAGE("Read " << theFile << " file");
+  std::ifstream fileRes(theFile.c_str());
+  ASSERT(fileRes);
+
+  while ( !EndOfFile  )
+  {
+    int dummy;
+    fileRes >> token;
+
+    if (mapField.count(token)) {
+      nField   = mapField[token];
+      nbRef    = tabRef[nField];
+      hasDummy = tabDummy[nField];
+    }
+    else {
+      nField = -1;
+      nbRef = 0;
+    }
+
+    nbElem = 0;
+    if ( nField < (mapField.size() - 1) && nField >= 0 )
+      fileRes >> nbElem;
+
+    switch (nField) {
+    case 0: { // "MeshVersionFormatted"
+      MESSAGE(token << " " << nbElem);
+      break;
+    }
+    case 1: { // "Dimension"
+      MESSAGE("Mesh dimension " << nbElem << "D");
+      break;
+    }
+    case 2: { // "Vertices"
+      MESSAGE("Read " << nbElem << " " << token);
+      int aHexoticID;
+      double coord[3];
+      SMDS_MeshNode * aHexoticNode;
+
+      for ( int iElem = 0; iElem < nbElem; iElem++ ) {
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+        if(theAlgo->computeCanceled())
+          {
+            return false;
+          }
+#endif
+        aHexoticID = iElem + 1;
+        for ( int iCoord = 0; iCoord < 3; iCoord++ )
+          fileRes >> coord[ iCoord ];
+        fileRes >> dummy;
+        aHexoticNode = theMesh->AddNode(coord[0], coord[1], coord[2]);
+        HexoticNode[ aHexoticID ] = aHexoticNode;
+        nodeAssigne[ aHexoticID ] = 0;
+      }
+      break;
+    }
+    case 3: // "Corners"
+    case 4: // "Edges"
+    case 5: // "Ridges"
+    case 6: // "Quadrilaterals"
+    case 7: { // "Hexahedra"
+      MESSAGE("Read " << nbElem << " " << token);
+      std::vector< SMDS_MeshNode* > node( nbRef );
+      std::vector< int >          nodeID( nbRef );
+
+      for ( int iElem = 0; iElem < nbElem; iElem++ )
+      {
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+        if(theAlgo->computeCanceled())
+          {
+            return false;
+          }
+#endif
+        for ( int iRef = 0; iRef < nbRef; iRef++ )
+        {
+          fileRes >> aHexoticNodeID;                          // read nbRef aHexoticNodeID
+          node  [ iRef ] = HexoticNode[ aHexoticNodeID ];
+          nodeID[ iRef ] = aHexoticNodeID;
+        }
+        if ( hasDummy )
+          fileRes >> dummy;
+        switch (nField)
+        {
+        case 4: // "Edges"
+          theHelper->AddEdge( node[0], node[1] ); break;
+        case 6:  // "Quadrilaterals"
+          theMesh->AddFace( node[0], node[1], node[2], node[3] ); break;
+        case 7: // "Hexahedra"
+          theHelper->AddVolume( node[0], node[3], node[2], node[1],
+                                node[4], node[7], node[6], node[5] ); break;
+        default: continue;
+        }
+        if ( nField == 6 )
+          for ( int iRef = 0; iRef < nbRef; iRef++ )
+            nodeAssigne[ nodeID[ iRef ]] = 1;
+      }
+      break;
+    }
+    case 8: { // "End"
+      EndOfFile = 1;
+      MESSAGE("End of " << theFile << " file");
+      break;
+    }
+    default: {
+      MESSAGE("Unknown Token: " << token);
+    }
+    }
+  }
+  cout << std::endl;
+
+  shapeID = theHelper->GetSubShapeID();
+  for ( int i = 0; i < nbVertices; ++i )
+    if ( !nodeAssigne[ i+1 ])
+      theMesh->SetNodeInVolume( HexoticNode[ i+1 ], shapeID );
+
+  delete [] HexoticNode;
+  delete [] nodeAssigne;
+  return true;
+}
+
 //=============================================================================
 /*!
  * Pass parameters to Hexotic
@@ -690,6 +1082,8 @@ void HexoticPlugin_Hexotic::SetParameters(const HexoticPlugin_Hypothesis* hyp) {
     _hexoticIgnoreRidges = hyp->GetHexoticIgnoreRidges();
     _hexoticInvalidElements = hyp->GetHexoticInvalidElements();
     _hexoticSharpAngleThreshold = hyp->GetHexoticSharpAngleThreshold();
+    _hexoticNbProc = hyp->GetHexoticNbProc();
+    _hexoticWorkingDirectory = hyp->GetHexoticWorkingDirectory();
   }
   else {
     cout << std::endl;
@@ -701,6 +1095,8 @@ void HexoticPlugin_Hexotic::SetParameters(const HexoticPlugin_Hypothesis* hyp) {
     _hexoticIgnoreRidges = hyp->GetDefaultHexoticIgnoreRidges();
     _hexoticInvalidElements = hyp->GetDefaultHexoticInvalidElements();
     _hexoticSharpAngleThreshold = hyp->GetDefaultHexoticSharpAngleThreshold();
+    _hexoticNbProc = hyp->GetDefaultHexoticNbProc();
+    _hexoticWorkingDirectory = hyp->GetDefaultHexoticWorkingDirectory();
   }
 }
 
@@ -717,21 +1113,74 @@ static TCollection_AsciiString getTmpDir()
   if(Tmp_dir != NULL) {
     aTmpDir = Tmp_dir;
     #ifdef WIN32
-      if(aTmpDir.Value(aTmpDir.Length()) != '\\') aTmpDir+='\\';
-    #else
-      if(aTmpDir.Value(aTmpDir.Length()) != '/') aTmpDir+='/';
-    #endif      
+    if(aTmpDir.Value(aTmpDir.Length()) != '\\') aTmpDir+='\\';
+#else
+    if(aTmpDir.Value(aTmpDir.Length()) != '/') aTmpDir+='/';
+#endif
   }
   else {
-    #ifdef WIN32
-      aTmpDir = TCollection_AsciiString("C:\\");
-    #else
-      aTmpDir = TCollection_AsciiString("/tmp/");
-    #endif
+#ifdef WIN32
+    aTmpDir = TCollection_AsciiString("C:\\");
+#else
+    aTmpDir = TCollection_AsciiString("/tmp/");
+#endif
   }
   return aTmpDir;
 }
 
+//================================================================================
+/*!
+ * \brief Returns a command to run Hexotic mesher
+ */
+//================================================================================
+
+std::string HexoticPlugin_Hexotic::getHexoticCommand(const TCollection_AsciiString& Hexotic_In,
+                                                     const TCollection_AsciiString& Hexotic_Out) const
+{
+  cout << std::endl;
+  cout << "Hexotic execution..." << std::endl;
+  cout << _name << " parameters :" << std::endl;
+  cout << "    " << _name << " Segments Min Level = " << _hexesMinLevel << std::endl;
+  cout << "    " << _name << " Segments Max Level = " << _hexesMaxLevel << std::endl;
+  cout << "    " << "Salome Quadrangles : " << (_hexoticQuadrangles ? "yes":"no") << std::endl;
+  cout << "    " << "Hexotic can ignore ridges : " << (_hexoticIgnoreRidges ? "yes":"no") << std::endl;
+  cout << "    " << "Hexotic authorize invalide elements : " << ( _hexoticInvalidElements ? "yes":"no") << std::endl;
+  cout << "    " << _name << " Sharp angle threshold = " << _hexoticSharpAngleThreshold << " degrees" << std::endl;
+  cout << "    " << _name << " Number of threads = " << _hexoticNbProc << std::endl;
+  cout << "    " << _name << " Working directory = \"" << _hexoticWorkingDirectory << "\"" << std::endl;
+
+  TCollection_AsciiString run_Hexotic( "hexotic" );
+
+  TCollection_AsciiString minl = " -minl ", maxl = " -maxl ", angle = " -ra ";
+  TCollection_AsciiString in   = " -in ",   out  = " -out ";
+  TCollection_AsciiString ignoreRidges = " -nr ", invalideElements = " -inv ";
+  TCollection_AsciiString subdom = " -sd ", sharp = " -sharp ";
+  TCollection_AsciiString proc = " -nproc ";
+
+  TCollection_AsciiString minLevel, maxLevel, sharpAngle, mode, subdivision, nbproc;
+  minLevel = _hexesMinLevel;
+  maxLevel = _hexesMaxLevel;
+  sharpAngle = _hexoticSharpAngleThreshold;
+  mode = 4;
+  subdivision = 3;
+  nbproc = _hexoticNbProc;
+
+  if (_hexoticIgnoreRidges)
+    run_Hexotic +=  ignoreRidges;
+
+  if (_hexoticInvalidElements)
+    run_Hexotic +=  invalideElements;
+
+  run_Hexotic += angle + sharpAngle + minl + minLevel + maxl + maxLevel + in + Hexotic_In + out + Hexotic_Out;
+  run_Hexotic += subdom + mode;
+  run_Hexotic += proc + nbproc;
+  //     run_Hexotic += subdom + mode + invalideElements;
+  //     run_Hexotic += subdom + mode + ignoreRidges;
+  //     run_Hexotic += subdom + mode + sharp + subdivision;
+
+  return run_Hexotic.ToCString();
+}
+
 //=============================================================================
 /*!
  * Here we are going to use the Hexotic mesher
@@ -741,28 +1190,40 @@ static TCollection_AsciiString getTmpDir()
 bool HexoticPlugin_Hexotic::Compute(SMESH_Mesh&          theMesh,
                                      const TopoDS_Shape& theShape)
 {
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  _compute_canceled = false;
+#endif
   bool Ok = true;
   SMESHDS_Mesh* meshDS = theMesh.GetMeshDS();
   TCollection_AsciiString hexahedraMessage;
 
   if (_iShape == 0 && _nbShape == 0) {
     _nbShape = countShape( meshDS, TopAbs_SOLID );  // we count the number of shapes
-    _tabNode = new SMDS_MeshNode*[_nbShape];        // we declare the size of the node array
+    //_tabNode = new SMDS_MeshNode*[_nbShape];        // we declare the size of the node array
   }
 
   // to prevent from displaying error message after computing,
-  // we need to create one node for each shape theShape.
-
-  _tabNode[_iShape] = meshDS->AddNode(0, 0, 0);
-  meshDS->SetNodeInVolume( _tabNode[_iShape], meshDS->ShapeToIndex(theShape) );
+  // SetIsAlwaysComputed( true ) to empty sub-meshes
+  for ( int i = 0; i < _nbShape; ++i )
+    if ( SMESH_subMesh* sm = theMesh.GetSubMeshContaining( theShape ))
+    {
+      SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/true,
+                                                               /*complexShapeFirst=*/false);
+      while ( smIt->more() )
+      {
+        sm = smIt->next();
+        if ( !sm->IsMeshComputed() )
+          sm->SetIsAlwaysComputed( true );
+      }
+    }
 
   _iShape++;
 
   if (_iShape == _nbShape ) {
 
-    for (int i=0; i<_nbShape; i++)        // we destroy the (_nbShape - 1) nodes created and used
-      meshDS->RemoveNode( _tabNode[i] );  // to simulate successful mesh computing.
-    delete [] _tabNode;
+    // for (int i=0; i<_nbShape; i++)        // we destroy the (_nbShape - 1) nodes created and used
+    //   meshDS->RemoveNode( _tabNode[i] );  // to simulate successful mesh computing.
+    // delete [] _tabNode;
 
     // create bounding box for each shape of the compound
 
@@ -790,76 +1251,97 @@ bool HexoticPlugin_Hexotic::Compute(SMESH_Mesh&          theMesh,
 
     SetParameters(_hypothesis);
 
-    cout << std::endl;
-    cout << "Hexotic execution..." << std::endl;
-    cout << _name << " parameters :" << std::endl;
-    cout << "    " << _name << " Segments Min Level = " << _hexesMinLevel << std::endl;
-    cout << "    " << _name << " Segments Max Level = " << _hexesMaxLevel << std::endl;
-    cout << "    " << "Salome Quadrangles : " << (_hexoticQuadrangles ? "yes":"no") << std::endl;
-    cout << "    " << "Hexotic can ignore ridges : " << (_hexoticIgnoreRidges ? "yes":"no") << std::endl;
-    cout << "    " << "Hexotic authorize invalide elements : " << ( _hexoticInvalidElements ? "yes":"no") << std::endl;
-    cout << "    " << _name << " Sharp angle threshold = " << _hexoticSharpAngleThreshold << " degrees" << std::endl;
-
-    TCollection_AsciiString aTmpDir = getTmpDir();
-    TCollection_AsciiString Hexotic_In, Hexotic_Out;
-    TCollection_AsciiString run_Hexotic( "hexotic" );
-
-    TCollection_AsciiString minl = " -minl ", maxl = " -maxl ", angle = " -ra ";
-    TCollection_AsciiString in   = " -in ",   out  = " -out ";
-    TCollection_AsciiString ignoreRidges = " -nr ", invalideElements = " -inv ";
-    TCollection_AsciiString subdom = " -sd ";
-
-    TCollection_AsciiString minLevel, maxLevel, sharpAngle, mode;
-    minLevel = _hexesMinLevel;
-    maxLevel = _hexesMaxLevel;
-    sharpAngle = _hexoticSharpAngleThreshold;
-    mode = 4;
+//     TCollection_AsciiString aTmpDir = getTmpDir();
+    TCollection_AsciiString aTmpDir = TCollection_AsciiString(_hexoticWorkingDirectory.c_str());
+#ifdef WIN32
+    if ( aTmpDir.Value(aTmpDir.Length()) != '\\' ) aTmpDir += '\\';
+#else
+    if ( aTmpDir.Value(aTmpDir.Length()) != '/' ) aTmpDir += '/';
+#endif
+    TCollection_AsciiString Hexotic_In(""), Hexotic_Out;
+    TCollection_AsciiString modeFile_In( "chmod 666 " ), modeFile_Out( "chmod 666 " );
+    TCollection_AsciiString aLogFileName = aTmpDir + "Hexotic.log";    // log
 
     std::map <int,int> aSmdsToHexoticIdMap;
     std::map <int,const SMDS_MeshNode*> aHexoticIdToNodeMap;
 
-    Hexotic_In  = aTmpDir + "Hexotic_In.mesh";
     Hexotic_Out = aTmpDir + "Hexotic_Out.mesh";
+#ifdef WITH_BLSURFPLUGIN
+    bool defaultInputFile = true;
+    if (_blsurfHypo && !_blsurfHypo->GetQuadAllowed()) {
+      Hexotic_In = TCollection_AsciiString(_blsurfHypo->GetGMFFile().c_str());
+      if (Hexotic_In != "")
+        defaultInputFile = false;
+    }
+    if (defaultInputFile) {
+#endif
+      Hexotic_In  = aTmpDir + "Hexotic_In.mesh";
+      removeHexoticFiles(Hexotic_In, Hexotic_Out);
+      std::ofstream HexoticFile (Hexotic_In.ToCString(), std::ios::out);
+      Ok = ( writeHexoticFile(HexoticFile, meshDS, aSmdsToHexoticIdMap, aHexoticIdToNodeMap, Hexotic_In) );
+      HexoticFile.close();
+#ifdef WITH_BLSURFPLUGIN
+    }
+    else {
+      removeFile( Hexotic_Out );
+    }
+#endif
+    
 
-    if (_hexoticIgnoreRidges)
-      run_Hexotic +=  ignoreRidges;
-
-    if (_hexoticInvalidElements)
-      run_Hexotic +=  invalideElements;
-
-    run_Hexotic += angle + sharpAngle + minl + minLevel + maxl + maxLevel + in + Hexotic_In + out + Hexotic_Out;
-    run_Hexotic += subdom + mode;
+    std::string run_Hexotic = getHexoticCommand(Hexotic_In, Hexotic_Out);
+    run_Hexotic += std::string(" 1>") + aLogFileName.ToCString();  // dump into file
 
     cout << std::endl;
     cout << "Hexotic command : " << run_Hexotic << std::endl;
 
-    removeHexoticFiles(Hexotic_In, Hexotic_Out);
-
-    std::ofstream HexoticFile (Hexotic_In.ToCString(), std::ios::out);
+    
+//     removeHexoticFiles(Hexotic_In, Hexotic_Out);
+// 
+//     std::ofstream HexoticFile (Hexotic_In.ToCString(), std::ios::out);
+// 
+//     Ok = ( writeHexoticFile(HexoticFile, meshDS, aSmdsToHexoticIdMap, aHexoticIdToNodeMap, Hexotic_In) );
 
-    Ok = ( writeHexoticFile(HexoticFile, meshDS, aSmdsToHexoticIdMap, aHexoticIdToNodeMap, Hexotic_In) );
-
-    HexoticFile.close();
+//     HexoticFile.close();
+    modeFile_In += Hexotic_In;
+    system( modeFile_In.ToCString() );
     aSmdsToHexoticIdMap.clear();
     aHexoticIdToNodeMap.clear();
 
     MESSAGE("HexoticPlugin_Hexotic::Compute");
 
-    system( run_Hexotic.ToCString() );
+    system( run_Hexotic.data() );
 
     // --------------
     // read a result
     // --------------
 
     std::ifstream fileRes( Hexotic_Out.ToCString() );
+    modeFile_Out += Hexotic_Out;
+    system( modeFile_Out.ToCString() );
     if ( ! fileRes.fail() ) {
-      Ok = readResult( Hexotic_Out.ToCString(), meshDS, _nbShape, tabShape, tabBox );
-      hexahedraMessage = "success";
+      Ok = readResult( Hexotic_Out.ToCString(),
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+                       this,
+#endif
+                       meshDS, _nbShape, tabShape, tabBox );
+      if(Ok)
+        hexahedraMessage = "success";
+      else
+        hexahedraMessage = "failed";
     }
     else {
       hexahedraMessage = "failed";
       cout << "Problem with Hexotic output file " << Hexotic_Out.ToCString() << std::endl;
       Ok = false;
+      // analyse log file
+      SMESH_File logFile( aLogFileName.ToCString() );
+      if ( !logFile.eof() )
+      {
+        char msgLic[] = " Dlim ";
+        const char* fileBeg = logFile.getPos(), *fileEnd = fileBeg + logFile.size();
+        if ( std::search( fileBeg, fileEnd, msgLic, msgLic+strlen(msgLic)) != fileEnd )
+          error("Licence problems.");
+      }
     }
     cout << "Hexahedra meshing " << hexahedraMessage << std::endl;
     cout << std::endl;
@@ -871,49 +1353,141 @@ bool HexoticPlugin_Hexotic::Compute(SMESH_Mesh&          theMesh,
     _nbShape = 0;
     _iShape  = 0;
   }
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  if(_compute_canceled)
+    return error(SMESH_Comment("interruption initiated by user"));
+#endif
   return Ok;
 }
 
 //=============================================================================
 /*!
- *  
+ * \brief Computes mesh without geometry
+ *  \param aMesh - the mesh
+ *  \param aHelper - helper that must be used for adding elements to \aaMesh
+ *  \retval bool - is a success
+ *
+ * The method is called if ( !aMesh->HasShapeToMesh() )
  */
 //=============================================================================
 
-std::ostream& HexoticPlugin_Hexotic::SaveTo(std::ostream& save)
+bool HexoticPlugin_Hexotic::Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper)
 {
-  return save;
-}
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  _compute_canceled = false;
+#endif
+  bool Ok = true;
+  TCollection_AsciiString hexahedraMessage;
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
+  SetParameters(_hypothesis);
 
-std::istream& HexoticPlugin_Hexotic::LoadFrom(std::istream& load)
-{
-  return load;
+  TCollection_AsciiString aTmpDir = getTmpDir();
+  TCollection_AsciiString Hexotic_In, Hexotic_Out;
+  TCollection_AsciiString modeFile_In( "chmod 666 " ), modeFile_Out( "chmod 666 " );
+  TCollection_AsciiString aLogFileName = aTmpDir + "Hexotic.log";    // log
+
+  std::map <int,int> aSmdsToHexoticIdMap;
+  std::map <int,const SMDS_MeshNode*> aHexoticIdToNodeMap;
+
+  Hexotic_In  = aTmpDir + "Hexotic_In.mesh";
+  Hexotic_Out = aTmpDir + "Hexotic_Out.mesh";
+
+  std::string run_Hexotic = getHexoticCommand(Hexotic_In, Hexotic_Out);
+  run_Hexotic += std::string(" 1>") + aLogFileName.ToCString();  // dump into file
+
+  cout << std::endl;
+  cout << "Hexotic command : " << run_Hexotic << std::endl;
+
+  removeHexoticFiles(Hexotic_In, Hexotic_Out);
+
+  std::ofstream HexoticFile (Hexotic_In.ToCString(), std::ios::out);
+
+  Ok = ( writeHexoticFile(HexoticFile, aHelper, aSmdsToHexoticIdMap, Hexotic_In) );
+
+  HexoticFile.close();
+  modeFile_In += Hexotic_In;
+  system( modeFile_In.ToCString() );
+  aSmdsToHexoticIdMap.clear();
+  aHexoticIdToNodeMap.clear();
+
+  MESSAGE("HexoticPlugin_Hexotic::Compute");
+
+  system( run_Hexotic.data() );
+
+  // --------------
+  // read a result
+  // --------------
+
+  std::ifstream fileRes( Hexotic_Out.ToCString() );
+  modeFile_Out += Hexotic_Out;
+  system( modeFile_Out.ToCString() );
+  if ( ! fileRes.fail() ) {
+    Ok = readResult( Hexotic_Out.ToCString(),
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+                     this,
+#endif
+                     aHelper );
+    if(Ok)
+      hexahedraMessage = "success";
+    else
+      hexahedraMessage = "failed";
+  }
+  else {
+    hexahedraMessage = "failed";
+    cout << "Problem with Hexotic output file " << Hexotic_Out << std::endl;
+    // analyse log file
+    SMESH_File logFile( aLogFileName.ToCString() );
+    if ( !logFile.eof() )
+    {
+      char msgLic[] = " Dlim ";
+      const char* fileBeg = logFile.getPos(), *fileEnd = fileBeg + logFile.size();
+      if ( std::search( fileBeg, fileEnd, msgLic, msgLic+strlen(msgLic)) != fileEnd )
+        return error("Licence problems.");
+    }
+    return error(SMESH_Comment("Problem with Hexotic output file ")<<Hexotic_Out);
+  }
+  cout << "Hexahedra meshing " << hexahedraMessage << std::endl;
+  cout << std::endl;
+
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  if(_compute_canceled)
+    return error(SMESH_Comment("interruption initiated by user"));
+#endif
+  return Ok;
 }
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
 
-std::ostream& operator << (std::ostream& save, HexoticPlugin_Hexotic& hyp)
+bool HexoticPlugin_Hexotic::Evaluate(SMESH_Mesh& aMesh,
+                                     const TopoDS_Shape& aShape,
+                                     MapShapeNbElems& aResMap)
 {
-  return hyp.SaveTo( save );
-}
+  std::vector<int> aResVec(SMDSEntity_Last);
+  for(int i=SMDSEntity_Node; i<SMDSEntity_Last; i++) aResVec[i] = 0;
+  SMESH_subMesh * sm = aMesh.GetSubMesh(aShape);
+  aResMap.insert(std::make_pair(sm,aResVec));
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
+  SMESH_ComputeErrorPtr& smError = sm->GetComputeError();
+  smError.reset( new SMESH_ComputeError(COMPERR_ALGO_FAILED,"Evaluation is not implemented",this));
+
+  return true;
+}
 
-std::istream& operator >> (std::istream& load, HexoticPlugin_Hexotic& hyp)
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+void HexoticPlugin_Hexotic::CancelCompute()
 {
-  return hyp.LoadFrom( load );
+  _compute_canceled = true;
+#ifdef WNT
+#else
+  TCollection_AsciiString aTmpDir = getTmpDir();
+  TCollection_AsciiString Hexotic_In = aTmpDir + "Hexotic_In.mesh";
+  TCollection_AsciiString cmd = TCollection_AsciiString("ps ux | grep ") + Hexotic_In;
+  cmd += TCollection_AsciiString(" | grep -v grep | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1");
+  system( cmd.ToCString() );
+#endif
 }
+#endif
index 63749c7594e2f963b7d693dd02e1b79bb5c72788..893c0e0c1c1414aeb0c89f8ddabd981c043ee4de 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hexotic.hxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
 #ifndef _HexoticPlugin_Hexotic_HXX_
 #define _HexoticPlugin_Hexotic_HXX_
 
+#include "HexoticPlugin_Defs.hxx"
+
 #include "SMESH_3D_Algo.hxx"
 #include "SMESH_Mesh.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
+#ifdef WITH_BLSURFPLUGIN
+#include "BLSURFPlugin_Hypothesis.hxx"
+#endif
+
+#include <string>
+
 class SMESH_Mesh;
 class HexoticPlugin_Hypothesis;
+class TCollection_AsciiString;
 
-class HexoticPlugin_Hexotic: public SMESH_3D_Algo
+class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hexotic: public SMESH_3D_Algo
 {
 public:
   HexoticPlugin_Hexotic(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~HexoticPlugin_Hexotic();
 
+#ifdef WITH_BLSURFPLUGIN
+  bool CheckBLSURFHypothesis(SMESH_Mesh&         aMesh,
+                             const TopoDS_Shape& aShape);
+#endif
+
   virtual bool CheckHypothesis(SMESH_Mesh&                          aMesh,
                                const TopoDS_Shape&                  aShape,
                                SMESH_Hypothesis::Hypothesis_Status& aStatus);
 
   void SetParameters(const HexoticPlugin_Hypothesis* hyp);
 
-  virtual bool Compute(SMESH_Mesh&         aMesh,
-                       const TopoDS_Shape& aShape);
+  virtual bool Compute(SMESH_Mesh& aMesh,  const TopoDS_Shape& aShape);
 
-  std::ostream& SaveTo(std::ostream& save);
-  std::istream& LoadFrom(std::istream& load);
-  friend std::ostream& operator << (std::ostream& save, HexoticPlugin_Hexotic& hyp);
-  friend std::istream& operator >> (std::istream& load, HexoticPlugin_Hexotic& hyp);
+  virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
+
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+    virtual void CancelCompute();
+    bool computeCanceled() { return _compute_canceled;};
+#endif
+
+  virtual bool Evaluate(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape,
+                        MapShapeNbElems& aResMap);
 
 protected:
   const HexoticPlugin_Hypothesis* _hypothesis;
 
 private:
+
+  std::string getHexoticCommand(const TCollection_AsciiString& Hexotic_In,
+                                const TCollection_AsciiString& Hexotic_Out) const;
+
   int  _iShape;
   int  _nbShape;
   int  _hexesMinLevel;
@@ -64,7 +87,17 @@ private:
   bool _hexoticInvalidElements;
   bool _hexoticFilesKept;
   int  _hexoticSharpAngleThreshold;
+  int  _hexoticNbProc;
+  std::string  _hexoticWorkingDirectory;
   SMDS_MeshNode** _tabNode;
+  
+#ifdef WITH_BLSURFPLUGIN
+  const BLSURFPlugin_Hypothesis* _blsurfHypo;
+#endif
+
+#ifdef WITH_SMESH_CANCEL_COMPUTE
+  volatile bool _compute_canceled;
+#endif
 };
 
 #endif
index 1d424247a4339d3511b49fe20b1cefc97a8ca6e2..b2bc88d52c030f5827530f87c0cfe4f61d6b6e12 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hexotic_i.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
index cacb9d2bb2a3943c801df4ebd6f4e66191340859..47728568b92aad24c9b431679b19ee249298bb42 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hexotic_i.hxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -34,7 +35,7 @@
 // ======================================================
 // Hexotic 3d algorithm
 // ======================================================
-class HexoticPlugin_Hexotic_i:
+class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hexotic_i:
   public virtual POA_HexoticPlugin::HexoticPlugin_Hexotic,
   public virtual SMESH_3D_Algo_i
 {
index b0b2f4ad87a4deec8b47ffe0d8ec6e6b4a22a5ee..8f8c83dc05bad391f15b76a9a7a1e56f2f2befa2 100644 (file)
@@ -1,43 +1,48 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hypothesis.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
 // ---
 //
-#include <HexoticPlugin_Hypothesis.hxx>
+#include "HexoticPlugin_Hypothesis.hxx"
 #include <utilities.h>
 
+#include <TCollection_AsciiString.hxx>
+
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 HexoticPlugin_Hypothesis::HexoticPlugin_Hypothesis (int hypId, int studyId,
-                                                   SMESH_Gen* gen)
+                                                    SMESH_Gen* gen)
   : SMESH_Hypothesis(hypId, studyId, gen),
     _hexesMinLevel( GetDefaultHexesMinLevel() ),
     _hexesMaxLevel( GetDefaultHexesMaxLevel() ),
     _hexoticQuadrangles( GetDefaultHexoticQuadrangles() ),
     _hexoticIgnoreRidges( GetDefaultHexoticIgnoreRidges() ),
     _hexoticInvalidElements( GetDefaultHexoticInvalidElements() ), 
-    _hexoticSharpAngleThreshold( GetDefaultHexoticSharpAngleThreshold() )
+    _hexoticSharpAngleThreshold( GetDefaultHexoticSharpAngleThreshold() ),
+    _hexoticNbProc( GetDefaultHexoticNbProc() ),
+    _hexoticWorkingDirectory( GetDefaultHexoticWorkingDirectory() )
 {
   MESSAGE("HexoticPlugin_Hypothesis::HexoticPlugin_Hypothesis");
   _name = "Hexotic_Parameters";
@@ -92,6 +97,21 @@ void HexoticPlugin_Hypothesis::SetHexoticSharpAngleThreshold(int theVal) {
   }
 }
 
+void HexoticPlugin_Hypothesis::SetHexoticNbProc(int theVal) {
+  if (theVal != _hexoticNbProc) {
+    _hexoticNbProc = theVal;
+    NotifySubMeshesHypothesisModification();
+  }
+}
+
+void HexoticPlugin_Hypothesis::SetHexoticWorkingDirectory(const std::string& path)
+{
+  if ( _hexoticWorkingDirectory != path ) {
+    _hexoticWorkingDirectory = path;
+    NotifySubMeshesHypothesisModification();
+  }
+}
+
 //=============================================================================
 /*!
  *  
@@ -116,6 +136,8 @@ std::ostream& HexoticPlugin_Hypothesis::SaveTo(std::ostream& save)
   save<<"hexoticIgnoreRidges="<<(int)_hexoticIgnoreRidges<<";";
   save<<"hexoticInvalidElements="<<(int)_hexoticInvalidElements<<";";
   save<<"hexoticSharpAngleThreshold="<<_hexoticSharpAngleThreshold<<";";
+  save<<"hexoticNbProc="<<_hexoticNbProc<<";";
+  save<<"hexoticWorkingDirectory="<<_hexoticWorkingDirectory<<";";
   return save;
 }
 
@@ -153,6 +175,8 @@ std::istream& HexoticPlugin_Hypothesis::LoadFrom(std::istream& load)
       if (str3=="hexoticIgnoreRidges") _hexoticIgnoreRidges = (bool) atoi(str4.c_str());
       if (str3=="hexoticInvalidElements") _hexoticInvalidElements = (bool) atoi(str4.c_str());
       if (str3=="hexoticSharpAngleThreshold") _hexoticSharpAngleThreshold = atoi(str4.c_str());
+      if (str3=="hexoticNbProc") _hexoticNbProc = atoi(str4.c_str());
+      if (str3=="hexoticWorkingDirectory") _hexoticWorkingDirectory = str4;
    }
    return load;
 }
@@ -187,7 +211,7 @@ std::istream& operator >>(std::istream& load, HexoticPlugin_Hypothesis& hyp)
  */
 //================================================================================
 bool HexoticPlugin_Hypothesis::SetParametersByMesh(const SMESH_Mesh*   theMesh,
-                                                  const TopoDS_Shape& theShape)
+                                                   const TopoDS_Shape& theShape)
 {
   return false;
 }
@@ -207,12 +231,12 @@ bool HexoticPlugin_Hypothesis::SetParametersByDefaults(const TDefaults&  /*dflts
 //=============================================================================
 int HexoticPlugin_Hypothesis::GetDefaultHexesMinLevel()
 {
-  return 3;
+  return 6;
 }
 
 int HexoticPlugin_Hypothesis::GetDefaultHexesMaxLevel()
 {
-  return 8;
+  return 10;
 }
 
 bool HexoticPlugin_Hypothesis::GetDefaultHexoticQuadrangles()
@@ -234,3 +258,26 @@ int HexoticPlugin_Hypothesis::GetDefaultHexoticSharpAngleThreshold()
 {
   return 60;
 }
+
+int HexoticPlugin_Hypothesis::GetDefaultHexoticNbProc()
+{
+  return 1;
+}
+
+std::string HexoticPlugin_Hypothesis::GetDefaultHexoticWorkingDirectory()
+{
+  TCollection_AsciiString aTmpDir;
+
+  char *Tmp_dir = getenv("SALOME_TMP_DIR");
+  if(Tmp_dir != NULL) {
+    aTmpDir = Tmp_dir;
+  }
+  else {
+#ifdef WIN32
+    aTmpDir = TCollection_AsciiString("C:\\");
+#else
+    aTmpDir = TCollection_AsciiString("/tmp/");
+#endif
+  }
+  return aTmpDir.ToCString();
+}
index 90cd37e0bb525a3337a457bd0c2ddff7cecb1df4..b3c0f441cccb16118e390a8e0ba4056952d0bed8 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hypothesis.hxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
 #ifndef _HexoticPlugin_Hypothesis_HXX_
 #define _HexoticPlugin_Hypothesis_HXX_
 
+#include "HexoticPlugin_Defs.hxx"
+
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
 //  Parameters for work of Hexotic
 //
 
-class HexoticPlugin_Hypothesis: public SMESH_Hypothesis
+class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hypothesis: public SMESH_Hypothesis
 {
 public:
 
@@ -53,6 +56,12 @@ public:
    
   void SetHexoticSharpAngleThreshold(int theVal);
   int GetHexoticSharpAngleThreshold() const { return _hexoticSharpAngleThreshold; }
+   
+  void SetHexoticNbProc(int theVal);
+  int GetHexoticNbProc() const { return _hexoticNbProc; }
+  
+  void SetHexoticWorkingDirectory(const std::string& path);
+  std::string GetHexoticWorkingDirectory() const { return _hexoticWorkingDirectory; }
 
   // the parameters default values 
 
@@ -62,6 +71,8 @@ public:
   static bool GetDefaultHexoticIgnoreRidges();
   static bool GetDefaultHexoticInvalidElements();
   static int GetDefaultHexoticSharpAngleThreshold();
+  static int GetDefaultHexoticNbProc();
+  static std::string GetDefaultHexoticWorkingDirectory();
 
   // Persistence
   virtual std::ostream& SaveTo(std::ostream& save);
@@ -90,6 +101,8 @@ private:
   bool _hexoticIgnoreRidges;
   bool _hexoticInvalidElements;
   int  _hexoticSharpAngleThreshold;
+  int  _hexoticNbProc;
+  std::string _hexoticWorkingDirectory ;
 };
 
 #endif
index 715a7fafb05dabc773da39aaa303f64c730a4a58..19a85bbe92dbbc2c81204e531c9b7acd5b734820 100644 (file)
@@ -1,27 +1,29 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hypothesis_i.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
 // ---
 //
 #include "HexoticPlugin_Hypothesis_i.hxx"
+#include "SMESH_Mesh_i.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_PythonDump.hxx"
 
@@ -68,6 +70,8 @@ HexoticPlugin_Hypothesis_i::~HexoticPlugin_Hypothesis_i()
  *  HexoticPlugin_Hypothesis_i::SetHexoticIgnoreRidges
  *  HexoticPlugin_Hypothesis_i::SetHexoticInvalidElements
  *  HexoticPlugin_Hypothesis_i::SetHexoticSharpAngleThreshold
+ *  HexoticPlugin_Hypothesis_i::SetHexoticNbProc 
+ *  HexoticPlugin_Hypothesis_i::SetHexoticWorkingDirectory 
  */
 //=============================================================================
 
@@ -119,6 +123,34 @@ void HexoticPlugin_Hypothesis_i::SetHexoticSharpAngleThreshold (CORBA::Long theV
   SMESH::TPythonDump() << _this() << ".SetHexoticSharpAngleThreshold( " << theValue << " )";
 }
 
+void HexoticPlugin_Hypothesis_i::SetHexoticNbProc (CORBA::Long theValue)
+{
+  // MESSAGE("HexoticPlugin_Hypothesis_i::SetHexoticNbProc");
+  ASSERT(myBaseImpl);
+  this->GetImpl()->SetHexoticNbProc(theValue);
+  SMESH::TPythonDump() << _this() << ".SetHexoticNbProc( " << theValue << " )";
+}
+
+void HexoticPlugin_Hypothesis_i::SetHexoticWorkingDirectory(const char* path) throw ( SALOME::SALOME_Exception )
+{
+  if (!path )
+    THROW_SALOME_CORBA_EXCEPTION( "Null working directory",SALOME::BAD_PARAM );
+
+  string file(path);
+  const char lastChar = *file.rbegin();
+#ifdef WIN32
+  if ( lastChar != '\\' ) file += '\\';
+#else
+  if ( lastChar != '/' ) file += '/';
+#endif
+  file += "Hexotic_In.mesh";
+  SMESH_Mesh_i::PrepareForWriting (file.c_str());
+
+  ASSERT(myBaseImpl);
+  this->GetImpl()->SetHexoticWorkingDirectory(path);
+  SMESH::TPythonDump() << _this() << ".SetHexoticWorkingDirectory( '" << path << "' )";
+}
+
 //=============================================================================
 /*!
  *  HexoticPlugin_Hypothesis_i::GetHexesMinLevel
@@ -127,6 +159,8 @@ void HexoticPlugin_Hypothesis_i::SetHexoticSharpAngleThreshold (CORBA::Long theV
  *  HexoticPlugin_Hypothesis_i::GetHexoticIgnoreRidges
  *  HexoticPlugin_Hypothesis_i::GetHexoticInvalidElements
  *  HexoticPlugin_Hypothesis_i::GetHexoticSharpAngleThreshold 
+ *  HexoticPlugin_Hypothesis_i::GetHexoticNbProc 
+ *  HexoticPlugin_Hypothesis_i::GetHexoticWorkingDirectory 
  */
 //=============================================================================
 
@@ -172,6 +206,19 @@ CORBA::Long HexoticPlugin_Hypothesis_i::GetHexoticSharpAngleThreshold()
   return this->GetImpl()->GetHexoticSharpAngleThreshold();
 }
 
+CORBA::Long HexoticPlugin_Hypothesis_i::GetHexoticNbProc()
+{
+  // MESSAGE("HexoticPlugin_Hypothesis_i::GetHexoticNbProc");
+  ASSERT(myBaseImpl);
+  return this->GetImpl()->GetHexoticNbProc();
+}
+
+char* HexoticPlugin_Hypothesis_i::GetHexoticWorkingDirectory()
+{
+  ASSERT(myBaseImpl);
+  return CORBA::string_dup( this->GetImpl()->GetHexoticWorkingDirectory().c_str() );
+}
+
 //=============================================================================
 /*!
  *  HexoticPlugin_Hypothesis_i::GetImpl
index d680e693ce4b0bd6508cf53b10d15df969202a6e..a6377be63d46a5b4547a297a3a4126e1474f1dbf 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_Hypothesis_i.hxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -34,7 +35,7 @@ class SMESH_Gen;
 
 // HexoticPlugin parameters hypothesis
 
-class HexoticPlugin_Hypothesis_i:
+class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hypothesis_i:
   public virtual POA_HexoticPlugin::HexoticPlugin_Hypothesis,
   public virtual SMESH_Hypothesis_i
 {
@@ -64,6 +65,12 @@ class HexoticPlugin_Hypothesis_i:
   
   void SetHexoticSharpAngleThreshold(CORBA::Long theVal);
   CORBA::Long GetHexoticSharpAngleThreshold();
+  
+  void SetHexoticNbProc(CORBA::Long theVal);
+  CORBA::Long GetHexoticNbProc();
+  
+  void SetHexoticWorkingDirectory(const char* path) throw ( SALOME::SALOME_Exception );
+  char* GetHexoticWorkingDirectory();
 
   // Get implementation
   ::HexoticPlugin_Hypothesis* GetImpl();
index b94af391afaba1d4f84b50bbfb51eac3de5d95f1..101e1e0b21f754d4af7247af9b948213c3452dc6 100644 (file)
@@ -1,21 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+// 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 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   : HexoticPlugin_i.cxx
 // Author : Lioka RAZAFINDRAZAKA (CEA)
@@ -42,6 +43,7 @@ template <class T> class HexoticPlugin_Creator_i:public HypothesisCreator_i<T>
 
 extern "C"
 {
+  HEXOTICPLUGIN_EXPORT
   GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName)
   {
     MESSAGE("GetHypothesisCreator " << aHypName);
index 087e61cf2ad07ba089c2fed263843436426bcfa4..1d80ffa275b026d53cf89d33fa5b2df8c18e545b 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
@@ -38,22 +39,30 @@ dist_libHexoticEngine_la_SOURCES =  \
        HexoticPlugin_Hypothesis.cxx    \
        HexoticPlugin_Hypothesis_i.hxx  \
        HexoticPlugin_Hypothesis_i.cxx  \
-       HexoticPlugin_i.cxx
+       HexoticPlugin_i.cxx             \
+       HexoticPlugin_Defs.hxx
 
 libHexoticEngine_la_CPPFLAGS =                 \
        -I$(top_builddir)/idl                   \
-       -I$(top_builddir)/salome_adm/unix       \
        $(SMESH_CXXFLAGS)                       \
        $(CORBA_CXXFLAGS)                       \
        $(CORBA_INCLUDES)                       \
        $(BOOST_CPPFLAGS)                       \
        $(CAS_CPPFLAGS)                         \
-        $(KERNEL_CXXFLAGS)                     \
-        $(GUI_CXXFLAGS)                                \
+       $(VTK_INCLUDES)                         \
+       $(KERNEL_CXXFLAGS)                      \
+       $(GUI_CXXFLAGS)                         \
        $(MED_CXXFLAGS)                         \
-       $(GEOM_CXXFLAGS)
+       $(GEOM_CXXFLAGS)                        \
+       $(BLSURFPLUGIN_CXXFLAGS)
 
 libHexoticEngine_la_LDFLAGS  =                 \
        ../../idl/libSalomeIDLHexoticPLUGIN.la  \
-       $(SMESH_LDFLAGS) -lSMESHimpl -lSMESHEngine -lStdMeshersEngine   \
-       $(KERNEL_LDFLAGS) -lSalomeGenericObj
+       $(SMESH_LDFLAGS) -lSMESHimpl -lSMESHEngine -lStdMeshersEngine -lSMDS -lSMESHDS -lSalomeIDLSMESH -lSMESHUtils \
+       $(KERNEL_LDFLAGS) -lSalomeGenericObj -lSALOMELocalTrace \
+       $(CAS_LDPATH) -lTKernel -lTKMath -lTKG3d -lTKTopAlgo -lTKBRep $(MED_LDFLAGS) -lSalomeIDLMED -lSALOMELocalTrace \
+       $(BLSURFPLUGIN_LDFLAGS)
+
+# Scripts to be installed.
+dist_salomescript_DATA=HexoticPLUGINDC.py
+
index 5354ba3e71997e66b18d48da58a4709ba8320d73..99e5f64713715bdbee3af944ea61c9a43dc5a59c 100644 (file)
@@ -1,21 +1,22 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+# 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 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.am
 # Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)