-# 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
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+
# ---
#
# File : AUTHORS
-# 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
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+
# ---
#
# File : ChangeLog
-// 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)
#define HEXOTICPLUGIN_VERSION_STR "@VERSION@"
#define HEXOTICPLUGIN_VERSION @XVERSION@
+#define HEXOTICPLUGIN_DEVELOPMENT @VERSION_DEV@
#endif // __HEXOTICPLUGIN_VERSION_H__
-# 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
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+
# ---
#
# File : INSTALL
-# 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)
-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
-# 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
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+
# ---
#
# File : NEWS
-# 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)
-# 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)
-# 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)
dist_admlocalm4_DATA = \
check_Hexotic.m4 \
- check_HexoticPLUGIN.m4
+ check_HexoticPLUGIN.m4 \
+ check_BLSURFPLUGIN.m4
--- /dev/null
+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
-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
-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)
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
-# 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
-# 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)
-THIS IS SALOME - HexoticPLUGIN VERSION: @VERSION@
+[SALOME HexoticPLUGIN] : @VERSION@
+[DEVELOPMENT] : @VERSION_DEV@
+[DESCRIPTION] : DISTENE Hexotic meshing plug-in for SALOME Mesh module
+
--- /dev/null
+#!/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
--- /dev/null
+@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
#!/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)
#
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
# 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
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
# ____________________________________________________________________
# 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
# 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"
#!/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)
# ...
-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 )
#!/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
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
dnl ---------------------------------------------
dnl
-CHECK_MPICH
+dnl CHECK_MPICH
+
+echo
+echo ---------------------------------------------
+echo testing MPI
+echo ---------------------------------------------
+echo
+
+CHECK_MPI
echo
echo ---------------------------------------------
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
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 ---------------------------------------------
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
#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
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
# 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 \
])
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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)
+
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+/*!
+
+\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.
+*/
--- /dev/null
+/*!
+
+\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.
+
+*/
--- /dev/null
+/*!
+
+\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".
+
+
+*/
--- /dev/null
+/* 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;
+}
+
--- /dev/null
+ <li class="footer"></li>
+ </ul>
+ </div>
+ <div class="footer1">
+ <div style="text-align: center;">
+ Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE<br>
+ Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS<br>
+ </div>
+ </div>
+</body>
+</html>
+
\ No newline at end of file
--- /dev/null
+<!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>
--- /dev/null
+<!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>
--- /dev/null
+# 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
-// 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)
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();
};
};
-# 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)
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)
$(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
-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 \
$(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
@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 ;
<?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>
+++ /dev/null
-<?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>
-# 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)
dist_salomeres_DATA = \
HexoticPLUGIN.xml \
- HexoticPlugin.xml \
SalomeApp.xml
if HEXOTICPLUGIN_ENABLE_GUI
<!--
- 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
<!-- 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>
+<?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>
+<?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>
--- /dev/null
+<?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'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'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>
-// 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)
//=============================================================================
extern "C"
{
+ HEXOTICPLUGIN_GUI_EXPORT
SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator( const QString& aHypType )
{
SMESHGUI_GenericHypothesisCreator* aCreator = NULL;
--- /dev/null
+// 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
-// 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)
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
+#include <SUIT_FileDlg.h>
#include <SalomeApp_Tools.h>
#include <QtxIntSpinBox.h>
#include <QLineEdit>
#include <QLabel>
#include <QCheckBox>
+#include <QPushButton>
enum Fineness {
VeryCoarse,
{
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 );
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;
}
myHexesMinLevel->setEnabled(true);
myHexesMaxLevel->setEnabled(true);
myHexoticSharpAngleThreshold->setEnabled(true);
+
+ myHexoticNbProc->setValue( data.myHexoticNbProc );
+ myHexoticWorkingDir->setText( data.myHexoticWorkingDir );
}
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;
}
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;
}
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)
{
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;
}
{
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 );
+}
-// 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)
#ifndef HexoticPLUGINGUI_HypothesisCreator_H
#define HexoticPLUGINGUI_HypothesisCreator_H
+#include "HexoticPluginGUI.h"
+
#include <SMESHGUI_Hypotheses.h>
class QtxIntSpinBox;
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
virtual ~HexoticPluginGUI_HypothesisCreator();
virtual bool checkParams() const;
+ virtual QString helpPage() const;
protected:
virtual QFrame* buildFrame ();
virtual QString caption() const;
virtual QPixmap icon() const;
virtual QString type() const;
+
+protected slots:
+ void onDirBtnClicked();
private:
bool readParamsFromHypo( HexoticHypothesisData& ) const;
QCheckBox* myHexoticIgnoreRidges;
QCheckBox* myHexoticInvalidElements;
QtxIntSpinBox* myHexoticSharpAngleThreshold;
+ QtxIntSpinBox* myHexoticNbProc;
+ QLineEdit* myHexoticWorkingDir;
bool myIs3D;
};
-# 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)
dist_libHexoticPluginGUI_la_SOURCES = \
HexoticPluginGUI.cxx \
+ HexoticPluginGUI.h \
HexoticPluginGUI_HypothesisCreator.h \
HexoticPluginGUI_HypothesisCreator.cxx
$(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
--- /dev/null
+# 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
--- /dev/null
+// 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
-// 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");
+ }
+}
+
//=============================================================================
/*!
*
_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
}
//=============================================================================
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
+
//=============================================================================
/*!
*
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;
}
else
aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
-
+
+#ifdef WITH_BLSURFPLUGIN
+ CheckBLSURFHypothesis(aMesh, aShape);
+#endif
+
return aStatus == SMESH_Hypothesis::HYP_OK;
}
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++ ) {
}
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;
}
//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() ) {
getline( file, aLine);
std::istringstream stringFlux( aLine );
stringFlux >> number;
+ number = ( number + defaultValue + std::abs(number - defaultValue) ) / 2;
break;
}
}
//=======================================================================
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 );
}
//=======================================================================
//=======================================================================
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;
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;
nbVertices = theMesh->NbNodes();
- theFile << "MeshVersionFormatted 1" << std::endl;
+ theFile << "MeshVersionFormatted 2" << std::endl;
theFile << std::endl;
theFile << "Dimension" << std::endl;
theFile << 3 << std::endl;
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++ ) {
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 );
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;
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
// ---------------------------------
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();
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;
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 ];
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 ];
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 ];
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"
}
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 )
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 );
nodeAssigne[ nodeID[i] ] = nodeDim;
}
}
- if ( token != "Corners" )
+ if ( token != "Corners" && aHexoticElement )
theMesh->SetMeshElementOnShape( aHexoticElement, shapeID );
}
}
}
}
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;
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
_hexoticIgnoreRidges = hyp->GetHexoticIgnoreRidges();
_hexoticInvalidElements = hyp->GetHexoticInvalidElements();
_hexoticSharpAngleThreshold = hyp->GetHexoticSharpAngleThreshold();
+ _hexoticNbProc = hyp->GetHexoticNbProc();
+ _hexoticWorkingDirectory = hyp->GetHexoticWorkingDirectory();
}
else {
cout << std::endl;
_hexoticIgnoreRidges = hyp->GetDefaultHexoticIgnoreRidges();
_hexoticInvalidElements = hyp->GetDefaultHexoticInvalidElements();
_hexoticSharpAngleThreshold = hyp->GetDefaultHexoticSharpAngleThreshold();
+ _hexoticNbProc = hyp->GetDefaultHexoticNbProc();
+ _hexoticWorkingDirectory = hyp->GetDefaultHexoticWorkingDirectory();
}
}
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
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
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;
_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
-// 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;
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
-// 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)
-// 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)
// ======================================================
// 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
{
-// 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";
}
}
+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();
+ }
+}
+
//=============================================================================
/*!
*
save<<"hexoticIgnoreRidges="<<(int)_hexoticIgnoreRidges<<";";
save<<"hexoticInvalidElements="<<(int)_hexoticInvalidElements<<";";
save<<"hexoticSharpAngleThreshold="<<_hexoticSharpAngleThreshold<<";";
+ save<<"hexoticNbProc="<<_hexoticNbProc<<";";
+ save<<"hexoticWorkingDirectory="<<_hexoticWorkingDirectory<<";";
return save;
}
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;
}
*/
//================================================================================
bool HexoticPlugin_Hypothesis::SetParametersByMesh(const SMESH_Mesh* theMesh,
- const TopoDS_Shape& theShape)
+ const TopoDS_Shape& theShape)
{
return false;
}
//=============================================================================
int HexoticPlugin_Hypothesis::GetDefaultHexesMinLevel()
{
- return 3;
+ return 6;
}
int HexoticPlugin_Hypothesis::GetDefaultHexesMaxLevel()
{
- return 8;
+ return 10;
}
bool HexoticPlugin_Hypothesis::GetDefaultHexoticQuadrangles()
{
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();
+}
-// 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:
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
static bool GetDefaultHexoticIgnoreRidges();
static bool GetDefaultHexoticInvalidElements();
static int GetDefaultHexoticSharpAngleThreshold();
+ static int GetDefaultHexoticNbProc();
+ static std::string GetDefaultHexoticWorkingDirectory();
// Persistence
virtual std::ostream& SaveTo(std::ostream& save);
bool _hexoticIgnoreRidges;
bool _hexoticInvalidElements;
int _hexoticSharpAngleThreshold;
+ int _hexoticNbProc;
+ std::string _hexoticWorkingDirectory ;
};
#endif
-// 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"
* HexoticPlugin_Hypothesis_i::SetHexoticIgnoreRidges
* HexoticPlugin_Hypothesis_i::SetHexoticInvalidElements
* HexoticPlugin_Hypothesis_i::SetHexoticSharpAngleThreshold
+ * HexoticPlugin_Hypothesis_i::SetHexoticNbProc
+ * HexoticPlugin_Hypothesis_i::SetHexoticWorkingDirectory
*/
//=============================================================================
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
* HexoticPlugin_Hypothesis_i::GetHexoticIgnoreRidges
* HexoticPlugin_Hypothesis_i::GetHexoticInvalidElements
* HexoticPlugin_Hypothesis_i::GetHexoticSharpAngleThreshold
+ * HexoticPlugin_Hypothesis_i::GetHexoticNbProc
+ * HexoticPlugin_Hypothesis_i::GetHexoticWorkingDirectory
*/
//=============================================================================
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
-// 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)
// HexoticPlugin parameters hypothesis
-class HexoticPlugin_Hypothesis_i:
+class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hypothesis_i:
public virtual POA_HexoticPlugin::HexoticPlugin_Hypothesis,
public virtual SMESH_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();
-// 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)
extern "C"
{
+ HEXOTICPLUGIN_EXPORT
GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypName)
{
MESSAGE("GetHypothesisCreator " << aHypName);
-# 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)
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
+
-# 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)