From 54a8851d5ae0667e752c651813c902341af5b6c8 Mon Sep 17 00:00:00 2001 From: Christian Van Wambeke Date: Mon, 15 Sep 2014 15:43:03 +0200 Subject: [PATCH] from V730 to V7master and add LayersOnAllWrap option --- .gitignore | 14 +- AUTHORS | 45 ++++ CMakeLists.txt | 26 +- ChangeLog | 45 ++++ HYBRIDPLUGIN_version.h.in | 4 +- INSTALL | 29 +++ NEWS | 30 +++ README | 111 +++++++++ SalomeHYBRIDPLUGINConfig.cmake.in | 41 ++- adm_local/CMakeLists.txt | 7 +- adm_local/cmake_files/CMakeLists.txt | 5 +- adm_local/cmake_files/FindHYBRIDPLUGIN.cmake | 24 ++ .../cmake_files/FindSalomeHYBRIDPLUGIN.cmake | 7 +- adm_local/unix/CMakeLists.txt | 4 +- adm_local/unix/config_files/CMakeLists.txt | 7 +- adm_local/unix/config_files/check_HYBRID.m4 | 97 ++++++-- .../unix/config_files/check_HYBRIDPLUGIN.m4 | 114 ++++----- bin/CMakeLists.txt | 8 +- bin/createGroupsOnEntitiesFromGMFFile.py | 68 +++++ bin/essai.bash | 3 - bin/mg-hybrid.bash | 30 ++- doc/CMakeLists.txt | 7 +- doc/file.mesh.pdf | Bin 0 -> 118865 bytes doc/salome/CMakeLists.txt | 9 +- doc/salome/gui/CMakeLists.txt | 7 +- doc/salome/gui/HYBRIDPLUGIN/CMakeLists.txt | 12 +- doc/salome/gui/HYBRIDPLUGIN/doxyfile.in | 4 +- doc/salome/gui/HYBRIDPLUGIN/doxyfile_py.in | 4 +- .../images/hybrid_hypothesis_layers.png | Bin 23862 -> 23192 bytes .../HYBRIDPLUGIN/input/additional_hypo.doc | 2 +- .../gui/HYBRIDPLUGIN/input/hybrid_hypo.doc | 7 +- .../gui/HYBRIDPLUGIN/static/footer.html | 2 +- idl/CMakeLists.txt | 4 +- idl/HYBRIDPlugin_Algorithm.idl | 19 +- resources/CMakeLists.txt | 7 +- resources/HYBRIDPlugin.xml | 6 +- resources/SalomeApp.xml | 4 +- src/CMakeLists.txt | 4 +- src/GUI/CMakeLists.txt | 6 +- src/GUI/HYBRIDPluginGUI.cxx | 11 +- src/GUI/HYBRIDPluginGUI_AdvWidget.cxx | 4 +- src/GUI/HYBRIDPluginGUI_Dlg.h | 4 +- src/GUI/HYBRIDPluginGUI_Enums.h | 4 +- src/GUI/HYBRIDPluginGUI_HypothesisCreator.cxx | 55 ++-- src/GUI/HYBRIDPluginGUI_HypothesisCreator.h | 18 +- src/GUI/HYBRIDPlugin_msg_en.ts | 6 +- src/GUI/HYBRIDPlugin_msg_fr.ts | 73 +++++- src/GUI/HYBRIDPlugin_msg_ja.ts | 235 ------------------ src/HYBRIDPlugin/CMakeLists.txt | 6 +- src/HYBRIDPlugin/HYBRIDPluginBuilder.py | 12 +- src/HYBRIDPlugin/HYBRIDPlugin_Defs.hxx | 4 +- src/HYBRIDPlugin/HYBRIDPlugin_HYBRID.cxx | 14 +- src/HYBRIDPlugin/HYBRIDPlugin_HYBRID.hxx | 13 +- src/HYBRIDPlugin/HYBRIDPlugin_HYBRID_i.cxx | 13 +- src/HYBRIDPlugin/HYBRIDPlugin_HYBRID_i.hxx | 20 +- src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis.cxx | 54 +++- src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis.hxx | 19 +- .../HYBRIDPlugin_Hypothesis_i.cxx | 32 ++- .../HYBRIDPlugin_Hypothesis_i.hxx | 25 +- src/HYBRIDPlugin/HYBRIDPlugin_i.cxx | 13 +- src/HYBRIDPlugin/__init__.py | 4 +- 61 files changed, 908 insertions(+), 554 deletions(-) create mode 100644 adm_local/cmake_files/FindHYBRIDPLUGIN.cmake create mode 100644 bin/createGroupsOnEntitiesFromGMFFile.py delete mode 100755 bin/essai.bash create mode 100644 doc/file.mesh.pdf delete mode 100644 src/GUI/HYBRIDPlugin_msg_ja.ts diff --git a/.gitignore b/.gitignore index 8800449..4ead76e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,19 @@ +# Compiled source +################# +*.pyc +*.pyo + +# Edition bak +################# *~ *.bak -*.pyc +*.old +*_old + .nfs* + +# AUTOTOOLS +################# Makefile.in aclocal.m4 adm_local/unix/config_files/l*m4 diff --git a/AUTHORS b/AUTHORS index e69de29..793f190 100644 --- a/AUTHORS +++ b/AUTHORS @@ -0,0 +1,45 @@ +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 : AUTHORS +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- +# +# The format of this file was inspired by the Linux kernel CREDITS file. +# +# Authors and contributors are listed alphabetically. +# +# The fields are: name (N), email (E), web-address (W), CVS account login (C), +# PGP key ID and fingerprint (P), description (D), and snail-mail address (S). +# +# --- + +N: Christian VAN WAMBEKE (CEA) +D: Initial development + +N: Edward AGAPOV, Open CASCADE S.A.S +E: edward.agapov@opencascade.com +D: Debug, improve meshing algorithms + +N: Vadim SANDLER, Open CASCADE S.A.S +E: vadim.sandler@opencascade.com +D: Porting to automake, porting to SALOME series 5x diff --git a/CMakeLists.txt b/CMakeLists.txt index 45e3786..e155ae9 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,11 +28,11 @@ CMAKE_POLICY(SET CMP0003 NEW) STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC) SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7) -SET(${PROJECT_NAME_UC}_MINOR_VERSION 3) -SET(${PROJECT_NAME_UC}_PATCH_VERSION 0) +SET(${PROJECT_NAME_UC}_MINOR_VERSION 4) +SET(${PROJECT_NAME_UC}_PATCH_VERSION 1) SET(${PROJECT_NAME_UC}_VERSION ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION}) -SET(${PROJECT_NAME_UC}_VERSION_DEV 0) +SET(${PROJECT_NAME_UC}_VERSION_DEV 1) # Find KERNEL # =========== @@ -57,7 +57,7 @@ SET(BUILD_SHARED_LIBS TRUE) # Local macros: LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") -# User options +# User options # ============ OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON) OPTION(SALOME_BUILD_DOC "Generate SALOME HYBRIDPLUGIN documentation" ON) @@ -95,6 +95,7 @@ IF(SALOME_BUILD_GUI) IF(EXISTS ${GUI_ROOT_DIR}) LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files") FIND_PACKAGE(SalomeGUI) + FULL_GUI(TRUE) # check whether GUI builded in full mode and with CORBA ADD_DEFINITIONS(${GUI_DEFINITIONS}) INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS}) ELSE(EXISTS ${GUI_ROOT_DIR}) @@ -106,15 +107,16 @@ ENDIF(SALOME_BUILD_GUI) ## ## From GUI: ## - IF(SALOME_BUILD_GUI) # Qt4 FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui) + INCLUDE(${QT_USE_FILE}) ENDIF(SALOME_BUILD_GUI) + +# VTK +FIND_PACKAGE(SalomeVTK 6.1 REQUIRED) # OCCT FIND_PACKAGE(SalomeCAS REQUIRED) -# VTK -FIND_PACKAGE(SalomeVTK 6.0 REQUIRED) # Find GEOM # =========== @@ -129,7 +131,6 @@ ENDIF(EXISTS ${GEOM_ROOT_DIR}) # Find SMESH # =========== - SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR} CACHE PATH "Path to the Salome SMESH") IF(EXISTS ${SMESH_ROOT_DIR}) LIST(APPEND CMAKE_MODULE_PATH "${SMESH_ROOT_DIR}/adm_local/cmake_files") @@ -150,6 +151,8 @@ IF(EXISTS ${SMESH_ROOT_DIR}) ELSE(EXISTS ${SMESH_ROOT_DIR}) MESSAGE(FATAL_ERROR "We absolutely need a Salome SMESH, please define SMESH_ROOT_DIR") ENDIF(EXISTS ${SMESH_ROOT_DIR}) +# MEDFile +FIND_PACKAGE(SalomeMEDFile REQUIRED) # Detection summary: SALOME_PACKAGE_REPORT_AND_CHECK() @@ -194,8 +197,9 @@ MARK_AS_ADVANCED(SALOME_HYBRIDPLUGIN_INSTALL_RES_DATA) # Accumulate environment variables for HYBRIDPLUGIN module SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_BINS} - ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_PYTHON}) + ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_PYTHON}) SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_LIBS}) + # Sources # ======== diff --git a/ChangeLog b/ChangeLog index e69de29..a838317 100644 --- a/ChangeLog +++ b/ChangeLog @@ -0,0 +1,45 @@ +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 : ChangeLog +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- +# +# Changes are listed by modification time in the descending order, +# i.e. newer changes are listed at the top of the file. +# +# Each record lists the modification date, author and short description of +# the made changes. +# +# --- + +2008-08-29 Vadim SANDLER + + * Porting to automake, porting to SALOME series 5x + +2007-2008 Edward AGAPOV + + * Debug, improve meshing algorithms + +2007 Christian VAN WAMBEKE (CEA) + + * Initial development diff --git a/HYBRIDPLUGIN_version.h.in b/HYBRIDPLUGIN_version.h.in index 7ca46bf..f9b3742 100644 --- a/HYBRIDPLUGIN_version.h.in +++ b/HYBRIDPLUGIN_version.h.in @@ -1,9 +1,9 @@ -// Copyright (C) 2004-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2014 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/INSTALL b/INSTALL index 837878e..7076bfe 100644 --- a/INSTALL +++ b/INSTALL @@ -1 +1,30 @@ +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 : INSTALL +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- + SALOME2 : HYBRIDPLUGIN module (SMESH plugin) + +For installation instructions and other information, please refer to +the README file. diff --git a/NEWS b/NEWS index e69de29..1e69cde 100644 --- a/NEWS +++ b/NEWS @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 : NEWS +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- +# +# Changes are listed by modification time in the descending order, +# i.e. newer changes are listed at the top of the file. +# +# --- diff --git a/README b/README index e69de29..71b5b7f 100644 --- a/README +++ b/README @@ -0,0 +1,111 @@ +SALOME platform +HYBRID meshing plugin +------------------------------ + +Contents: + +1. Pre-requisites +2. Installation +3. Launch SALOME with HYBRIDPLUGIN +4. HYBRIDPLUGIN plugin usage + +----------------- +1. Pre-requisites +----------------- + +The information in this file assumes that: + +* The SALOME platform is installed to the directory +* The HYBRID (Tepal) product is installed to the directory /hybridprl + +--------------- +2. Installation +--------------- + +2.1. Unpack HYBRIDPLUGIN module sources + +cd +tar zxf HYBRIDPLUGIN_SRC.tgz + +2.2. Build HYBRIDPLUGIN module + +* set environment + +bash +cd +source env_build.sh + +* cmake build procedure + +mkdir HYBRIDPLUGIN_BUILD +cd HYBRIDPLUGIN_BUILD +cmake -DCMAKE_BUILD_TYPE= -DCMAKE_INSTALL_PREFIX= ../HYBRIDPLUGIN_SRC + +,where is build mode (Release or Debug), + is a destination folder to install +HYBRIDPLUGIN module of SALOME. + +Verify that all pre-requisites required for the successful compilation +of HYBRIDPLUGIN module have been found. + +* compile and install plugin module + +make +make install + +exit + +If the compilation is finished successfully (make and make install +steps are finished without errors) the HYBRIDPLUGIN meshing module +should be installed in the directory . + +---------------------------------- +3. Launch SALOME with HYBRIDPLUGIN +---------------------------------- + +* set environment + +bash +cd +source env_products.sh + +export HYBRIDPLUGIN_ROOT_DIR= +export SalomeAppConfig=${HYBRIDPLUGIN_ROOT_DIR}/share/salome/resources/hybridprlplugin +export PATH=/hybridprl:${PATH + +* run SALOME + +runSalome + +---------------------------- +4. HYBRIDPLUGIN plugin usage +---------------------------- + +* Create new study + +* Activate Geometry module and create simple geometry object + +* Activate Mesh module + +* Invoke menu "Mesh/Create Mesh" + +* Select previously created geometry object by clicking it with the +mouse in the Object Browser + +* In the "Create mesh" dialog box: +- activate "3D" page +- In the "Algorithm" combo box select "HYBRID" +- Click on the button at the right of the "Hypothesis" combo box and +select "HYBRID parameters" item in the drop-down menu + +* In the "Hypothesis Construction" dialog box set parameters of HYBRID + meshing algorithm and click "OK" button + +* In the "Create mesh" dialog box Click "Apply & Close" button to + define mesh and close the dialog box + +* In the Object Browser select "Mesh_1" object, invoke context popup +menu for it by clicking right mouse button and select "Compute" item + +The resulting mesh created with HYBRID plugin will be shown in the 3D +viewer. diff --git a/SalomeHYBRIDPLUGINConfig.cmake.in b/SalomeHYBRIDPLUGINConfig.cmake.in index 8fdd4dc..86f8e65 100644 --- a/SalomeHYBRIDPLUGINConfig.cmake.in +++ b/SalomeHYBRIDPLUGINConfig.cmake.in @@ -1,32 +1,27 @@ -# - Config file for the @PROJECT_NAME@ package -# It defines the following variables. -# Specific to the pacakge @PROJECT_NAME@ itself: -# @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file +# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE # - -############################################################### -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. # -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# - Config file for the @PROJECT_NAME@ package +# It defines the following variables. +# Specific to the pacakge @PROJECT_NAME@ itself: +# @PROJECT_NAME_UC@_ROOT_DIR_EXP - the root path of the installation providing this CMake file # -# See http://www.salome-platform.org/ or -# email : webmaster.salome@opencascade.com -############################################################### ### Initialisation performed by CONFIGURE_PACKAGE_CONFIG_FILE: @PACKAGE_INIT@ diff --git a/adm_local/CMakeLists.txt b/adm_local/CMakeLists.txt index 84d97c2..3d0a1fd 100755 --- a/adm_local/CMakeLists.txt +++ b/adm_local/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/adm_local/cmake_files/CMakeLists.txt b/adm_local/cmake_files/CMakeLists.txt index 6d726fd..11f50b2 100755 --- a/adm_local/cmake_files/CMakeLists.txt +++ b/adm_local/cmake_files/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -23,6 +23,7 @@ # These files are data, module or lib files SET(_adm_data + FindHYBRIDPLUGIN.cmake FindSalomeHYBRIDPLUGIN.cmake ) INSTALL(FILES ${_adm_data} DESTINATION ${SALOME_INSTALL_CMAKE_LOCAL}) diff --git a/adm_local/cmake_files/FindHYBRIDPLUGIN.cmake b/adm_local/cmake_files/FindHYBRIDPLUGIN.cmake new file mode 100644 index 0000000..24fb5c6 --- /dev/null +++ b/adm_local/cmake_files/FindHYBRIDPLUGIN.cmake @@ -0,0 +1,24 @@ +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 +# + +SET(HYBRIDPLUGIN_CXXFLAGS -I${HYBRIDPLUGIN_ROOT_DIR}/include/salome) + +FIND_LIBRARY(HYBRIDEngine HYBRIDEngine ${HYBRIDPLUGIN_ROOT_DIR}/lib/salome) +FIND_LIBRARY(HYBRIDPluginGUI HYBRIDPluginGUI ${HYBRIDPLUGIN_ROOT_DIR}/lib/salome) +FIND_LIBRARY(SalomeIDLHYBRIDPLUGIN SalomeIDLHYBRIDPLUGIN ${HYBRIDPLUGIN_ROOT_DIR}/lib/salome) diff --git a/adm_local/cmake_files/FindSalomeHYBRIDPLUGIN.cmake b/adm_local/cmake_files/FindSalomeHYBRIDPLUGIN.cmake index cde4e8c..3c80ea7 100644 --- a/adm_local/cmake_files/FindSalomeHYBRIDPLUGIN.cmake +++ b/adm_local/cmake_files/FindSalomeHYBRIDPLUGIN.cmake @@ -1,9 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,7 +16,6 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# IF(NOT SalomeHYBRIDPLUGIN_FIND_QUIETLY) MESSAGE(STATUS "Looking for Salome HYBRIDPLUGIN ...") @@ -32,4 +31,4 @@ ENDIF() FOREACH(_res ${SalomeHYBRIDPLUGIN_EXTRA_ENV}) SALOME_ACCUMULATE_ENVIRONMENT(${_res} "${SalomeHYBRIDPLUGIN_EXTRA_ENV_${_res}}") -ENDFOREACH() \ No newline at end of file +ENDFOREACH() diff --git a/adm_local/unix/CMakeLists.txt b/adm_local/unix/CMakeLists.txt index 2f895ae..eb508c1 100755 --- a/adm_local/unix/CMakeLists.txt +++ b/adm_local/unix/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/adm_local/unix/config_files/CMakeLists.txt b/adm_local/unix/config_files/CMakeLists.txt index 2e06ad0..a860881 100755 --- a/adm_local/unix/config_files/CMakeLists.txt +++ b/adm_local/unix/config_files/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/adm_local/unix/config_files/check_HYBRID.m4 b/adm_local/unix/config_files/check_HYBRID.m4 index aa2159a..2764b6b 100644 --- a/adm_local/unix/config_files/check_HYBRID.m4 +++ b/adm_local/unix/config_files/check_HYBRID.m4 @@ -1,35 +1,84 @@ -dnl Copyright (C) 2004-2013 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 +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 : check_HYBRID.m4 +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- AC_DEFUN([CHECK_HYBRID],[ -HYBRID_ok=no +AC_REQUIRE([AC_PROG_CXX])dnl +AC_REQUIRE([AC_PROG_CXXCPP])dnl + +AC_CHECKING(for HYBRID(MG_hybrid) commercial product) -AC_EXEEXT -AC_CHECK_PROG(HYBRID, hybrid$EXEEXT,found) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +AC_ARG_WITH(, + [ --with-hybrid=DIR root directory path of HYBRID (MG_hybrid) installation]) + +HYBRID_ok=no -if test "x$HYBRID" == x ; then - AC_MSG_WARN(hybrid program not found in PATH variable) +if test "$with_hybrid" == "no" ; then + AC_MSG_WARN(You have choosen building plugin without HYBRID) else - HYBRID_ok=yes + if test "$with_hybrid" == "yes" || test "$with_hybrid" == "auto"; then + HYBRID_HOME="" + else + HYBRID_HOME="$with_hybrid" + fi + + if test "$HYBRID_HOME" == "" ; then + if test "x$HYBRIDHOME" != "x" ; then + HYBRID_HOME=$HYBRIDHOME + else + AC_MSG_WARN(Build plugin without HYBRID) + fi + fi + + if test "x$HYBRID_HOME" != "x"; then + + echo + echo ------------------------------------------------- + echo You are about to choose to use somehow the + echo "HYBRID(MG-hybrid) commercial product to generate 3D tetra-hexahedral mesh." + echo + + AC_CHECKING(for HYBRID(MG-hybrid) executable) + + AC_CHECK_PROG(HYBRID,MG-hybrid,found) + + if test "x$HYBRID" == x ; then + AC_MSG_WARN(MG-hybrid program not found in PATH variable) + AC_MSG_WARN(Build plugin without HYBRID) + else + HYBRID_ok=yes + fi + + fi fi AC_MSG_RESULT(for HYBRID: $HYBRID_ok) +AC_LANG_RESTORE ])dnl diff --git a/adm_local/unix/config_files/check_HYBRIDPLUGIN.m4 b/adm_local/unix/config_files/check_HYBRIDPLUGIN.m4 index fb37f83..0eb286b 100755 --- a/adm_local/unix/config_files/check_HYBRIDPLUGIN.m4 +++ b/adm_local/unix/config_files/check_HYBRIDPLUGIN.m4 @@ -1,78 +1,70 @@ -dnl Copyright (C) 2004-2013 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 +# Copyright (C) 2007-2014 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, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY 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 +# -# Check availability of HYBRIDPLUGIN binary distribution +# --- # -# Author : Marc Tajchman (CEA, 2002) -#------------------------------------------------------------ +# File : check_HYBRIDPLUGIN.m4 +# Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com) +# +# --- AC_DEFUN([CHECK_HYBRIDPLUGIN],[ -HYBRIDPLUGIN_LDFLAGS="" -HYBRIDPLUGIN_CXXFLAGS="" - -AC_CHECKING(for HYBRIDPlugin) +AC_CHECKING(for HYBRID mesh plugin) -HYBRIDPlugin_ok=no +HYBRIDplugin_ok=no -AC_ARG_WITH(ghs, - --with-hybridPlugin=DIR root directory path of HYBRIDPLUGIN build or installation, - HYBRIDPLUGIN_DIR="$withval",HYBRIDPLUGIN_DIR="") - -if test "x$HYBRIDPLUGIN_DIR" = "x" ; then - -# no --with-gui-dir option used - - if test "x$HYBRIDPLUGIN_ROOT_DIR" != "x" ; then - - # SALOME_ROOT_DIR environment variable defined - HYBRIDPLUGIN_DIR=$HYBRIDPLUGIN_ROOT_DIR +HYBRIDPLUGIN_LDFLAGS="" +HYBRIDPLUGIN_CXXFLAGS="" - else +AC_ARG_WITH(HYBRIDplugin, + [ --with-HYBRIDplugin=DIR root directory path of HYBRID mesh plugin installation ]) - # search Salome binaries in PATH variable - AC_PATH_PROG(TEMP, libHYBRIDEngine.so) - if test "x$TEMP" != "x" ; then - HYBRIDPLUGIN_DIR=`dirname $TEMP` +if test "$with_HYBRIDplugin" != "no" ; then + if test "$with_HYBRIDplugin" == "yes" || test "$with_HYBRIDplugin" == "auto"; then + if test "x$HYBRIDPLUGIN_ROOT_DIR" != "x" ; then + HYBRIDPLUGIN_DIR=$HYBRIDPLUGIN_ROOT_DIR + fi + else + HYBRIDPLUGIN_DIR="$with_HYBRIDplugin" fi - fi - + if test "x$HYBRIDPLUGIN_DIR" != "x" ; then + if test -f ${HYBRIDPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libHYBRIDEngine.so ; then + HYBRIDplugin_ok=yes + AC_MSG_RESULT(Using HYBRID mesh plugin distribution in ${HYBRIDPLUGIN_DIR}) + HYBRIDPLUGIN_ROOT_DIR=${HYBRIDPLUGIN_DIR} + HYBRIDPLUGIN_LDFLAGS=-L${HYBRIDPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + HYBRIDPLUGIN_CXXFLAGS=-I${HYBRIDPLUGIN_DIR}/include/salome + else + AC_MSG_WARN("Cannot find compiled HYBRID mesh plugin distribution") + fi + else + AC_MSG_WARN("Cannot find compiled HYBRID mesh plugin distribution") + fi fi -if test -f ${HYBRIDPLUGIN_DIR}/lib/salome/libHYBRIDEngine.so ; then - HYBRIDPlugin_ok=yes - AC_MSG_RESULT(Using HYBRIDPLUGIN module distribution in ${HYBRIDPLUGIN_DIR}) +AC_MSG_RESULT(for HYBRID mesh plugin: $HYBRIDplugin_ok) - if test "x$HYBRIDPLUGIN_ROOT_DIR" == "x" ; then - HYBRIDPLUGIN_ROOT_DIR=${HYBRIDPLUGIN_DIR} - fi - HYBRIDPLUGIN_CXXFLAGS+=-I${HYBRIDPLUGIN_ROOT_DIR}/include/salome - HYBRIDPLUGIN_LDFLAGS+=-L${HYBRIDPLUGIN_ROOT_DIR}/lib${LIB_LOCATION_SUFFIX}/salome - AC_SUBST(HYBRIDPLUGIN_ROOT_DIR) - AC_SUBST(HYBRIDPLUGIN_LDFLAGS) - AC_SUBST(HYBRIDPLUGIN_CXXFLAGS) -else - AC_MSG_WARN("Cannot find compiled HYBRIDPLUGIN module distribution") -fi - -AC_MSG_RESULT(for HYBRIDPLUGIN: $HYBRIDPlugin_ok) +AC_SUBST(HYBRIDPLUGIN_ROOT_DIR) +AC_SUBST(HYBRIDPLUGIN_LDFLAGS) +AC_SUBST(HYBRIDPLUGIN_CXXFLAGS) ])dnl diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt index 96b328d..c790e36 100755 --- a/bin/CMakeLists.txt +++ b/bin/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,16 +19,14 @@ SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS}) - # scripts / static / binaries # temporary standalone project version of mg-hybrid.exe SET(_bin_SCRIPTS - essai.bash mg-hybrid.bash mg-hybrid.exe_Linux_64_avril2014 mg-hybrid.exe_Linux_64_juillet2014 + createGroupsOnEntitiesFromGMFFile.py ) - # --- rules --- SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_BINS}) diff --git a/bin/createGroupsOnEntitiesFromGMFFile.py b/bin/createGroupsOnEntitiesFromGMFFile.py new file mode 100644 index 0000000..39e6bb9 --- /dev/null +++ b/bin/createGroupsOnEntitiesFromGMFFile.py @@ -0,0 +1,68 @@ +# -*- coding: iso-8859-1 -*- + +""" +to create Groups On Entities From GMFFile /tmp/tmp.mesh +""" + +import sys +import salome + +salome.salome_init() +theStudy = salome.myStudy + +import salome_notebook +notebook = salome_notebook.NoteBook(theStudy) +#sys.path.insert( 0, r'/somewhere') + +### +### GEOM component +### + +import GEOM +from salome.geom import geomBuilder +import math +import SALOMEDS +import SMESH, SALOMEDS + +from salome.smesh import smeshBuilder + +smesh = smeshBuilder.New(theStudy) + + +nameFile = None +the_mesh = None + +nameFile = r'/tmp/tmp.mesh' + +if nameFile != None: + #do not work (the_mesh, error) = smesh.CreateMeshesFromMED(nameFile) + (the_mesh, error) = smesh.CreateMeshesFromGMF(nameFile) + + +#print "the_mesh", the_mesh + +if the_mesh != None: + blue = SALOMEDS.Color(0,0,1) + red = SALOMEDS.Color(1,0,0) + green = SALOMEDS.Color(0,1,0) + yellow = SALOMEDS.Color(1,1,0) + + for i in dir(SMESH): + if "Entity_" in i: print i + + entities = [("Tetra", SMESH.Entity_Tetra, blue), + ("Pyramid", SMESH.Entity_Pyramid, red), + ("Prism", SMESH.Entity_Penta, yellow), + ("Hexa", SMESH.Entity_Hexa, green)] + + for name, entity, color in entities: + aCriteria = [] + aCriterion = smesh.GetCriterion(SMESH.VOLUME,SMESH.FT_EntityType,SMESH.FT_Undefined,entity) + aCriteria.append(aCriterion) + aFilter = smesh.GetFilterFromCriteria(aCriteria) + aFilter.SetMesh(the_mesh.GetMesh()) + Group = the_mesh.GroupOnFilter( SMESH.VOLUME, name, aFilter ) + Group.SetColor( color ) + + if salome.sg.hasDesktop(): + salome.sg.updateObjBrowser(1) diff --git a/bin/essai.bash b/bin/essai.bash deleted file mode 100755 index b2e8e59..0000000 --- a/bin/essai.bash +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo "hello essai" diff --git a/bin/mg-hybrid.bash b/bin/mg-hybrid.bash index 9630a65..0094743 100755 --- a/bin/mg-hybrid.bash +++ b/bin/mg-hybrid.bash @@ -6,6 +6,27 @@ #and also assume licence file set to overriding licence file of other distene products ( HEXOTIC, GHS3D, etc... ) #all that for for only one call of mg-hybrid.bash from salome plugin HYBRIDPLUGIN +function findOutFile { +#find --out parameter result in $resFindOutFile +while test $# -gt 0; do + case "$1" in + -o|--out) + if [ -z "$2" ] # $String is null + then + resFindOutFile="None" + else + resFindOutFile=$2 + fi + return + ;; + *) + shift + ;; + esac +done +resFindOutFile="None" +} + #echo "mg-hybrid.bash initial parameters are:" $1 $2 $3 $4 echo "mg-hybrid.bash initial parameters are:" $* #$0 is ignored @@ -30,17 +51,22 @@ echo "HOST" $HOST # export DLIM8VAR="dlim8 1:1:29030@132.166.151.49/84c419b8::87af196ab2a936ab31363624539bff8096fbe1f3c83028c8f6b399b0a904ef85" #fi -echo "mg-hybrid.bash juillet2014 assume licence file set:" +echo "mg-hybrid.bash assume licence file set:" env | grep DLIM +findOutFile $* +echo "result output File is:" $resFindOutFile + #mg-hybrid.exe_Linux_64_avril2014 --help #mg-hybrid.exe_Linux_64_avril2014 $* mg-hybrid.exe_Linux_64_juillet2014 $* +#to EZ and direct debug visualization (with gui salome load script createGroupsOnEntitiesFromGMFFile.py) +cp -f $resFindOutFile /tmp/tmp.mesh + #ldd `which mg-hybrid.exe_Linux_64_avril2014` # linux-vdso.so.1 => (0x00007fff3bfff000) # libpthread.so.0 => /lib64/libpthread.so.0 (0x000000358b400000) # libm.so.6 => /lib64/libm.so.6 (0x000000358a800000) # libc.so.6 => /lib64/libc.so.6 (0x000000358ac00000) # /lib64/ld-linux-x86-64.so.2 (0x000000358a400000) - diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index cedf656..a24f08f 100755 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/doc/file.mesh.pdf b/doc/file.mesh.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c0f071ee6d2a31e965803b661f882c4e7dc2381c GIT binary patch literal 118865 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 OtX1r-w`LFN7yExE+Rxbl literal 0 HcmV?d00001 diff --git a/doc/salome/CMakeLists.txt b/doc/salome/CMakeLists.txt index b5d9cf0..293a680 100755 --- a/doc/salome/CMakeLists.txt +++ b/doc/salome/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -21,4 +18,4 @@ # ADD_SUBDIRECTORY(examples) -ADD_SUBDIRECTORY(gui) \ No newline at end of file +ADD_SUBDIRECTORY(gui) diff --git a/doc/salome/gui/CMakeLists.txt b/doc/salome/gui/CMakeLists.txt index d1667cd..84a43cf 100755 --- a/doc/salome/gui/CMakeLists.txt +++ b/doc/salome/gui/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/doc/salome/gui/HYBRIDPLUGIN/CMakeLists.txt b/doc/salome/gui/HYBRIDPLUGIN/CMakeLists.txt index dbff9d4..fd73d37 100755 --- a/doc/salome/gui/HYBRIDPLUGIN/CMakeLists.txt +++ b/doc/salome/gui/HYBRIDPLUGIN/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -24,11 +24,11 @@ SALOME_CONFIGURE_FILE(static/header_py.html.in ${CMAKE_CURRENT_BINARY_DIR}/stati SET(DOC_SMESH_MeshersList HYBRIDPlugin) SET(smesh_file "$(SMESH_ROOT_DIR)/bin/salome/collect_mesh_methods.py") -SET(kernel_file "$ENV{KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py") +SET(kernel_file "${KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py") SALOME_ACCUMULATE_ENVIRONMENT(SMESH_MeshersList NOCHECK ${DOC_SMESH_MeshersList}) -SET(_cmd_options ${smesh_file} -d -o tmp/smeshBuilder.py HYBRIDPlugin) +SET(_cmd_options ${smesh_file} -d -o tmp/smeshBuilder.py HYBRIDPlugin) SALOME_GENERATE_ENVIRONMENT_SCRIPT(_cmd env_script "${PYTHON_EXECUTABLE}" "${_cmd_options}") ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp @@ -37,13 +37,13 @@ ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp COMMAND ${_cmd} COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py COMMAND ${DOXYGEN_EXECUTABLE} doxyfile - COMMAND ${CMAKE_COMMAND} -E remove_directory tmp + COMMAND ${CMAKE_COMMAND} -E remove_directory tmp VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target usr_docs)") -INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/HYBRIDPLUGIN DESTINATION ${SALOME_INSTALL_DOC}/gui/) +INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/HYBRIDPLUGIN DESTINATION ${SALOME_INSTALL_DOC}/gui) INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/HYBRIDPLUGIN) INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/HYBRIDPLUGIN/hybridpluginpy_doc) diff --git a/doc/salome/gui/HYBRIDPLUGIN/doxyfile.in b/doc/salome/gui/HYBRIDPLUGIN/doxyfile.in index 0eda78c..57dcfe5 100755 --- a/doc/salome/gui/HYBRIDPLUGIN/doxyfile.in +++ b/doc/salome/gui/HYBRIDPLUGIN/doxyfile.in @@ -1,9 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/doc/salome/gui/HYBRIDPLUGIN/doxyfile_py.in b/doc/salome/gui/HYBRIDPLUGIN/doxyfile_py.in index 8a96847..3f7b01b 100755 --- a/doc/salome/gui/HYBRIDPLUGIN/doxyfile_py.in +++ b/doc/salome/gui/HYBRIDPLUGIN/doxyfile_py.in @@ -1,9 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png index bee06f97ea2afc134fd170adcc7044af7dea87ae..030594df95d6b1859559f86f29d63dae6f27f970 100644 GIT binary patch literal 23192 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 diff --git a/doc/salome/gui/HYBRIDPLUGIN/input/additional_hypo.doc b/doc/salome/gui/HYBRIDPLUGIN/input/additional_hypo.doc index 814c56b..7d8c25c 100644 --- a/doc/salome/gui/HYBRIDPLUGIN/input/additional_hypo.doc +++ b/doc/salome/gui/HYBRIDPLUGIN/input/additional_hypo.doc @@ -8,7 +8,7 @@ This hypothesis allows creation of layers of highly stretched hexahedra, prisms, and tetrahedra) near mesh boundary (onto the wrap), which is beneficial for high quality viscous computations. The elements constructed on the layer mesh faces are -actually hexahedra or prisms or tetraheda. +actually hexahedra and prisms and tetraheda. For more detailed description of the this additional hypothesis please refer Distene MG-hybrid User's Guide diff --git a/doc/salome/gui/HYBRIDPLUGIN/input/hybrid_hypo.doc b/doc/salome/gui/HYBRIDPLUGIN/input/hybrid_hypo.doc index 36f1c37..bc7937b 100644 --- a/doc/salome/gui/HYBRIDPLUGIN/input/hybrid_hypo.doc +++ b/doc/salome/gui/HYBRIDPLUGIN/input/hybrid_hypo.doc @@ -202,11 +202,12 @@ for hybrid argument from "mg-hybrid.exe help", and future advanced options... \image html hybrid_hypothesis_layers.png -HYBRID algorithm mesh layers on groups of faces. Pay attention: theses groups should be defined +HYBRID algorithm mesh layers on groups of faces. If Mesh layers on all wrap +is checked, all wrap is meshed as layers (as boundary_layers_surface_ids 5), else +only submeshes selected an added are meshed as layers (as boundary_layers_surface_ids 6). +Pay attention: theses groups should be defined into the shell mesh from a previous group defined in the geometry. -- If a group is added, their faces will be source to generate layers -the group.
See Also a sample TUI Script of the \ref tui_hybrid "creation of a MG-Hybrid hypothesis". diff --git a/doc/salome/gui/HYBRIDPLUGIN/static/footer.html b/doc/salome/gui/HYBRIDPLUGIN/static/footer.html index 37dbff9..f01e506 100755 --- a/doc/salome/gui/HYBRIDPLUGIN/static/footer.html +++ b/doc/salome/gui/HYBRIDPLUGIN/static/footer.html @@ -4,7 +4,7 @@
    $navpath
diff --git a/idl/CMakeLists.txt b/idl/CMakeLists.txt index 8304ec1..9894660 100755 --- a/idl/CMakeLists.txt +++ b/idl/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/idl/HYBRIDPlugin_Algorithm.idl b/idl/HYBRIDPlugin_Algorithm.idl index f54103d..aebabc2 100644 --- a/idl/HYBRIDPlugin_Algorithm.idl +++ b/idl/HYBRIDPlugin_Algorithm.idl @@ -1,9 +1,9 @@ -// Copyright (C) 2004-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2014 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,8 +17,10 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// File : HYBRID_Algorithm.idl -// Author : Julia DOROVSKIKH +// --- +// File : HYBRIDPlugin_Algorithm.idl +// Author : Christian VAN WAMBEKE (CEA) +// --- // #ifndef _HYBRID_Algorithm_IDL_ #define _HYBRID_Algorithm_IDL_ @@ -54,7 +56,7 @@ module HYBRIDPlugin typedef sequence HYBRIDEnforcedMeshList; /*! - * HYBRIDPlugin_HYBRID: interface of "Tetrahedron (HYBRID)" algorithm + * HYBRIDPlugin_HYBRID: interface of "Tetra-hexahedron (HYBRID)" algorithm */ interface HYBRIDPlugin_HYBRID : SMESH::SMESH_3D_Algo { @@ -62,7 +64,7 @@ module HYBRIDPlugin }; /*! - * Parameters of "Tetrahedron (HYBRID)" algorithm + * Parameters of "Tetra-hexahedron (HYBRID)" algorithm */ interface HYBRIDPlugin_Hypothesis : SMESH::SMESH_Hypothesis { @@ -71,6 +73,11 @@ module HYBRIDPlugin */ void SetToMeshHoles(in boolean toMesh); boolean GetToMeshHoles(); + /*! + * To mesh layers on all wrap Default is yes. + */ + void SetLayersOnAllWrap(in boolean toMesh); + boolean GetLayersOnAllWrap(); /*! * To make groups of volumes of different domains when mesh is generated from skin. * Default is to make groups. diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index 2bbea7a..e840270 100755 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -1,12 +1,9 @@ -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2014 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. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/resources/HYBRIDPlugin.xml b/resources/HYBRIDPlugin.xml index 562bb00..0816fb0 100644 --- a/resources/HYBRIDPlugin.xml +++ b/resources/HYBRIDPlugin.xml @@ -1,12 +1,12 @@ - + diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml index e2378e0..6f9b3e4 100644 --- a/resources/SalomeApp.xml +++ b/resources/SalomeApp.xml @@ -1,10 +1,10 @@