Compare commits
32 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
bf1caa80e1 | ||
|
f3459194d7 | ||
|
61fe14dcc1 | ||
|
cb1285240a | ||
|
8252687a67 | ||
|
d411df01e8 | ||
|
e251f0e37b | ||
|
094b477031 | ||
|
adc20e85ac | ||
|
040040939c | ||
|
9e645675ea | ||
|
3c52f8fa35 | ||
|
aeb8ca86d1 | ||
|
0fb29d65e9 | ||
|
f01eb4a8f1 | ||
|
58bcf172e9 | ||
|
c9722be8d0 | ||
|
92b7ab1751 | ||
|
458b903164 | ||
|
b9f9e61c99 | ||
|
5649fadbb9 | ||
|
ce7cc7e7bc | ||
|
05c1d703df | ||
|
25c824bbfc | ||
|
0a178ce702 | ||
|
3dcb2645a2 | ||
|
1e3bfa2970 | ||
|
7c2ac5565e | ||
|
1ed2c1a5b5 | ||
|
eb8f61fcf1 | ||
|
e15e15b563 | ||
|
f1f61535d6 |
21
Makefile.am
21
Makefile.am
@ -1,4 +1,6 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
@ -18,14 +20,27 @@
|
|||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# -* Makefile *-
|
# -* Makefile *-
|
||||||
#
|
|
||||||
# Author : Patrick GOLDBRONN (CEA)
|
# Author : Patrick GOLDBRONN (CEA)
|
||||||
# Date : 28/06/2001
|
# Date : 28/06/2001
|
||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
|
if NETGENPLUGIN_ENABLE_GUI
|
||||||
|
ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \
|
||||||
|
-I ${GUI_ROOT_DIR}/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
|
||||||
|
else !NETGENPLUGIN_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
|
||||||
|
endif
|
||||||
|
|
||||||
SUBDIRS = idl adm_local resources src bin
|
SUBDIRS = idl adm_local resources src bin
|
||||||
|
|
||||||
DIST_SUBDIRS = idl adm_local resources src bin
|
DIST_SUBDIRS = idl adm_local resources src bin
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -6,7 +8,7 @@
|
|||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -15,12 +17,12 @@
|
|||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
// File : NETGENPLUGIN_version.h
|
// File : NETGENPLUGIN_version.h
|
||||||
// Author : Vadim SANDLER
|
// Author : Vadim SANDLER
|
||||||
// Module : SALOME
|
// Module : SALOME
|
||||||
|
//
|
||||||
#if !defined(__NETGENPLUGIN_VERSION_H__)
|
#if !defined(__NETGENPLUGIN_VERSION_H__)
|
||||||
#define __NETGENPLUGIN_VERSION_H__
|
#define __NETGENPLUGIN_VERSION_H__
|
||||||
|
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
# License as published by the Free Software Foundation; either
|
# License as published by the Free Software Foundation; either
|
||||||
# version 2.1 of the License.
|
# version 2.1 of the License.
|
||||||
#
|
#
|
||||||
# This library is distributed in the hope that it will be useful
|
# This library is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# Lesser General Public License for more details.
|
# Lesser General Public License for more details.
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
# License as published by the Free Software Foundation; either
|
# License as published by the Free Software Foundation; either
|
||||||
# version 2.1 of the License.
|
# version 2.1 of the License.
|
||||||
#
|
#
|
||||||
# This library is distributed in the hope that it will be useful
|
# This library is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# Lesser General Public License for more details.
|
# Lesser General Public License for more details.
|
||||||
@ -16,7 +19,6 @@
|
|||||||
#
|
#
|
||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
SUBDIRS = config_files
|
SUBDIRS = config_files
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
# License as published by the Free Software Foundation; either
|
# License as published by the Free Software Foundation; either
|
||||||
# version 2.1 of the License.
|
# version 2.1 of the License.
|
||||||
#
|
#
|
||||||
# This library is distributed in the hope that it will be useful
|
# This library is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# Lesser General Public License for more details.
|
# Lesser General Public License for more details.
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
dnl Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
dnl
|
||||||
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
dnl
|
||||||
|
dnl This library is free software; you can redistribute it and/or
|
||||||
|
dnl modify it under the terms of the GNU Lesser General Public
|
||||||
|
dnl License as published by the Free Software Foundation; either
|
||||||
|
dnl version 2.1 of the License.
|
||||||
|
dnl
|
||||||
|
dnl This library is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl Lesser General Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU Lesser General Public
|
||||||
|
dnl License along with this library; if not, write to the Free Software
|
||||||
|
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
dnl
|
||||||
|
dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
dnl
|
||||||
AC_DEFUN([CHECK_NETGEN],[
|
AC_DEFUN([CHECK_NETGEN],[
|
||||||
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])dnl
|
AC_REQUIRE([AC_PROG_CXX])dnl
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
dnl Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
dnl
|
||||||
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
dnl
|
||||||
|
dnl This library is free software; you can redistribute it and/or
|
||||||
|
dnl modify it under the terms of the GNU Lesser General Public
|
||||||
|
dnl License as published by the Free Software Foundation; either
|
||||||
|
dnl version 2.1 of the License.
|
||||||
|
dnl
|
||||||
|
dnl This library is distributed in the hope that it will be useful,
|
||||||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl Lesser General Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU Lesser General Public
|
||||||
|
dnl License along with this library; if not, write to the Free Software
|
||||||
|
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
dnl
|
||||||
|
dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
dnl
|
||||||
#------------------------------------------------------------
|
#------------------------------------------------------------
|
||||||
# Check availability of Salome NETGEN mesh plugin module
|
# Check availability of Salome NETGEN mesh plugin module
|
||||||
# distribution
|
# distribution
|
||||||
|
@ -1,12 +1,31 @@
|
|||||||
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# This file defines the common definitions used in several
|
# This file defines the common definitions used in several
|
||||||
# Makefile. This file must be included, if needed, by the file
|
# Makefile. This file must be included, if needed, by the file
|
||||||
# Makefile.am.
|
# Makefile.am.
|
||||||
# ============================================================
|
# ============================================================
|
||||||
#
|
|
||||||
|
|
||||||
# Standard directory for installation
|
# Standard directory for installation
|
||||||
|
#
|
||||||
salomeincludedir = $(includedir)/@PACKAGE@
|
salomeincludedir = $(includedir)/@PACKAGE@
|
||||||
libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/@PACKAGE@
|
libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/@PACKAGE@
|
||||||
bindir = $(prefix)/bin/@PACKAGE@
|
bindir = $(prefix)/bin/@PACKAGE@
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
# License as published by the Free Software Foundation; either
|
# License as published by the Free Software Foundation; either
|
||||||
# version 2.1 of the License.
|
# version 2.1 of the License.
|
||||||
#
|
#
|
||||||
# This library is distributed in the hope that it will be useful
|
# This library is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# Lesser General Public License for more details.
|
# Lesser General Public License for more details.
|
||||||
@ -15,13 +18,12 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
# -* Makefile *-
|
|
||||||
#
|
#
|
||||||
|
# -* Makefile *-
|
||||||
# Author : Guillaume Boulant (CSSI)
|
# Author : Guillaume Boulant (CSSI)
|
||||||
# Module : KERNEL
|
# Module : KERNEL
|
||||||
# $Header$
|
# $Header$
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1,16 +1,33 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# Tool for updating list of .in file for the SALOME project
|
# Tool for updating list of .in file for the SALOME project
|
||||||
# and regenerating configure script
|
# and regenerating configure script
|
||||||
#
|
|
||||||
# Author : Marc Tajchman - CEA
|
# Author : Marc Tajchman - CEA
|
||||||
# Date : 10/10/2002
|
# Date : 10/10/2002
|
||||||
# 13/03/2007: Alexander BORODIN - OCN
|
# 13/03/2007: Alexander BORODIN - OCN
|
||||||
# Reorganization for usage of autotools
|
# Reorganization for usage of autotools
|
||||||
# $Header$
|
# $Header$
|
||||||
#
|
#
|
||||||
|
|
||||||
ORIG_DIR=`pwd`
|
ORIG_DIR=`pwd`
|
||||||
CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
|
CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
|
||||||
NETGENPLUGIN_WITH_GUI="yes"
|
NETGENPLUGIN_WITH_GUI="yes"
|
||||||
@ -32,10 +49,10 @@ fi
|
|||||||
for option
|
for option
|
||||||
do
|
do
|
||||||
case $option in
|
case $option in
|
||||||
-with-ihm | --with-ihm)
|
-with-gui | --with-gui)
|
||||||
NETGENPLUGIN_WITH_GUI="yes"
|
NETGENPLUGIN_WITH_GUI="yes"
|
||||||
break;;
|
break;;
|
||||||
-without-ihm | --without-ihm | -with-ihm=no | --with-ihm=no)
|
-without-gui | --without-gui | -with-gui=no | --with-gui=no)
|
||||||
NETGENPLUGIN_WITH_GUI="no"
|
NETGENPLUGIN_WITH_GUI="no"
|
||||||
break;;
|
break;;
|
||||||
esac
|
esac
|
||||||
@ -114,8 +131,8 @@ echo "====================================================== aclocal"
|
|||||||
|
|
||||||
if test ${NETGENPLUGIN_WITH_GUI} = yes; then
|
if test ${NETGENPLUGIN_WITH_GUI} = yes; then
|
||||||
aclocal -I adm_local/unix/config_files \
|
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 ${GUI_ROOT_DIR}/adm_local/unix/config_files \
|
||||||
|
-I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
|
||||||
-I ${MED_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 ${GEOM_ROOT_DIR}/adm_local/unix/config_files \
|
||||||
-I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
|
-I ${SMESH_ROOT_DIR}/adm_local/unix/config_files || exit 1
|
||||||
|
30
configure.ac
30
configure.ac
@ -1,23 +1,37 @@
|
|||||||
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# PLEASE DO NOT MODIFY configure.in FILE
|
# PLEASE DO NOT MODIFY configure.in FILE
|
||||||
#
|
|
||||||
# ALL CHANGES WILL BE DISCARDED BY THE NEXT
|
# ALL CHANGES WILL BE DISCARDED BY THE NEXT
|
||||||
# build_configure COMMAND
|
# build_configure COMMAND
|
||||||
#
|
|
||||||
# CHANGES MUST BE MADE IN configure.in.base FILE
|
# CHANGES MUST BE MADE IN configure.in.base FILE
|
||||||
#
|
|
||||||
#
|
|
||||||
# Author : Marc Tajchman (CEA)
|
# Author : Marc Tajchman (CEA)
|
||||||
# Date : 28/06/2001
|
# Date : 28/06/2001
|
||||||
# Modified by : Patrick GOLDBRONN (CEA)
|
# Modified by : Patrick GOLDBRONN (CEA)
|
||||||
# Modified by : Marc Tajchman (CEA)
|
# Modified by : Marc Tajchman (CEA)
|
||||||
# 13/03/2007: Alexander BORODIN - OCN
|
# 13/03/2007: Alexander BORODIN - OCN
|
||||||
# Reorganization for usage of autotools
|
# Reorganization for usage of autotools
|
||||||
#
|
|
||||||
# Created from configure.in.base
|
# Created from configure.in.base
|
||||||
#
|
#
|
||||||
|
AC_INIT([Salome2 Project NETGENPLUGIN module], [4.1.5], [webmaster.salome@opencascade.com], [salome])
|
||||||
AC_INIT([Salome2 Project NETGENPLUGIN module], [4.1.1], [webmaster.salome@opencascade.com], [salome])
|
|
||||||
AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
|
AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AC_CANONICAL_TARGET
|
AC_CANONICAL_TARGET
|
||||||
@ -223,7 +237,7 @@ AC_SUBST_FILE(CORBA)
|
|||||||
corba=make_$ORB
|
corba=make_$ORB
|
||||||
CORBA=adm_local/unix/$corba
|
CORBA=adm_local/unix/$corba
|
||||||
|
|
||||||
NETGENPLUGIN_WITH_GUI=no
|
NETGENPLUGIN_WITH_GUI=yes
|
||||||
|
|
||||||
AM_CONDITIONAL(NETGENPLUGIN_ENABLE_GUI, [test "${NETGENPLUGIN_WITH_GUI}" = "yes"])
|
AM_CONDITIONAL(NETGENPLUGIN_ENABLE_GUI, [test "${NETGENPLUGIN_WITH_GUI}" = "yes"])
|
||||||
|
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
# License as published by the Free Software Foundation; either
|
# License as published by the Free Software Foundation; either
|
||||||
# version 2.1 of the License.
|
# version 2.1 of the License.
|
||||||
#
|
#
|
||||||
# This library is distributed in the hope that it will be useful
|
# This library is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# Lesser General Public License for more details.
|
# Lesser General Public License for more details.
|
||||||
@ -15,15 +18,12 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# This Makefile is responsible of generating the client and server
|
# This Makefile is responsible of generating the client and server
|
||||||
# implementation of IDL interfaces for both C++ and python usage.
|
# implementation of IDL interfaces for both C++ and python usage.
|
||||||
# The building process of the C++ files is in charge of each source
|
# The building process of the C++ files is in charge of each source
|
||||||
# package and then is not manage here.
|
# package and then is not manage here.
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
BASEIDL_FILES= NETGENPlugin_Algorithm.idl
|
BASEIDL_FILES= NETGENPlugin_Algorithm.idl
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -17,15 +19,14 @@
|
|||||||
//
|
//
|
||||||
// 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 : NETGENPlugin_Algorithm.idl
|
// File : NETGENPlugin_Algorithm.idl
|
||||||
// Author : Julia DOROVSKIKH
|
// Author : Julia DOROVSKIKH
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#ifndef _SMESH_NETGENALGORITHM_IDL_
|
#ifndef _SMESH_NETGENALGORITHM_IDL_
|
||||||
#define _SMESH_NETGENALGORITHM_IDL_
|
#define _SMESH_NETGENALGORITHM_IDL_
|
||||||
|
|
||||||
|
#include "SALOME_Exception.idl"
|
||||||
#include "SMESH_Hypothesis.idl"
|
#include "SMESH_Hypothesis.idl"
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -99,6 +100,69 @@ module NETGENPlugin
|
|||||||
boolean GetQuadAllowed();
|
boolean GetQuadAllowed();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_Hypothesis: interface of "NETGEN 2D simple parameters" hypothesis
|
||||||
|
*/
|
||||||
|
interface NETGENPlugin_SimpleHypothesis_2D : SMESH::SMESH_Hypothesis
|
||||||
|
{
|
||||||
|
/*!
|
||||||
|
* Sets <number of segments> value
|
||||||
|
*/
|
||||||
|
void SetNumberOfSegments(in short nb) raises (SALOME::SALOME_Exception);
|
||||||
|
/*!
|
||||||
|
* Returns <number of segments> value.
|
||||||
|
* Can be zero in case if LocalLength() has been set
|
||||||
|
*/
|
||||||
|
short GetNumberOfSegments();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <segment length> value
|
||||||
|
*/
|
||||||
|
void SetLocalLength(in double segmentLength);
|
||||||
|
/*!
|
||||||
|
* Returns <segment length> value.
|
||||||
|
* Can be zero in case if NumberOfSegments() has been set
|
||||||
|
*/
|
||||||
|
double GetLocalLength();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element area> to be dependent on 1D discretization
|
||||||
|
*/
|
||||||
|
void LengthFromEdges();
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element area> value.
|
||||||
|
* Zero or negative value means same as LengthFromEdges().
|
||||||
|
*/
|
||||||
|
void SetMaxElementArea(in double area);
|
||||||
|
/*!
|
||||||
|
* Returns <maximum element area> value.
|
||||||
|
* Can be zero in case of LengthFromEdges()
|
||||||
|
*/
|
||||||
|
double GetMaxElementArea();
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D: interface of "NETGEN 3D simple parameters" hypothesis
|
||||||
|
*/
|
||||||
|
interface NETGENPlugin_SimpleHypothesis_3D : NETGENPlugin_SimpleHypothesis_2D
|
||||||
|
{
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element volume> to be dependent on 2D discretization
|
||||||
|
*/
|
||||||
|
void LengthFromFaces();
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element volume> value.
|
||||||
|
* Zero or negative value means same as LengthFromFaces().
|
||||||
|
*/
|
||||||
|
void SetMaxElementVolume(in double volume);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns <maximum element volume> value
|
||||||
|
* Can be zero in case of LengthFromFaces()
|
||||||
|
*/
|
||||||
|
double GetMaxElementVolume();
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
@ -18,13 +20,11 @@
|
|||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# -* Makefile *-
|
# -* Makefile *-
|
||||||
#
|
|
||||||
# Author : Patrick GOLDBRONN (CEA)
|
# Author : Patrick GOLDBRONN (CEA)
|
||||||
# Date : 28/06/2001
|
# Date : 28/06/2001
|
||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
# $Header$
|
# $Header$
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
dist_salomeres_DATA = \
|
dist_salomeres_DATA = \
|
||||||
|
@ -1,6 +1,29 @@
|
|||||||
<?xml version='1.0' encoding='us-ascii'?>
|
<?xml version='1.0' encoding='us-ascii'?>
|
||||||
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
|
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
|
||||||
|
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
-->
|
||||||
|
|
||||||
<!-- GUI customization for MESH component -->
|
<!-- GUI customization for MESH component -->
|
||||||
|
|
||||||
<meshers>
|
<meshers>
|
||||||
@ -18,6 +41,14 @@
|
|||||||
label-id="NETGEN 2D Parameters"
|
label-id="NETGEN 2D Parameters"
|
||||||
icon-id="mesh_hypo_netgen_2d.png"
|
icon-id="mesh_hypo_netgen_2d.png"
|
||||||
dim="2"/>
|
dim="2"/>
|
||||||
|
<hypothesis type="NETGEN_SimpleParameters_2D"
|
||||||
|
label-id="NETGEN 2D Simple Parameters"
|
||||||
|
icon-id="mesh_hypo_netgen_2d.png"
|
||||||
|
dim="2"/>
|
||||||
|
<hypothesis type="NETGEN_SimpleParameters_3D"
|
||||||
|
label-id="NETGEN 3D Simple Parameters"
|
||||||
|
icon-id="mesh_hypo_netgen.png"
|
||||||
|
dim="3"/>
|
||||||
</hypotheses>
|
</hypotheses>
|
||||||
<algorithms>
|
<algorithms>
|
||||||
<algorithm type="NETGEN_3D"
|
<algorithm type="NETGEN_3D"
|
||||||
@ -25,19 +56,23 @@
|
|||||||
icon-id="mesh_algo_tetra.png"
|
icon-id="mesh_algo_tetra.png"
|
||||||
hypos="MaxElementVolume"
|
hypos="MaxElementVolume"
|
||||||
need-geom="false"
|
need-geom="false"
|
||||||
input="TRIA"
|
input="TRIA,QUAD"
|
||||||
dim="3"/>
|
dim="3"/>
|
||||||
<algorithm type="NETGEN_2D"
|
<algorithm type="NETGEN_2D"
|
||||||
label-id="Netgen 1D-2D"
|
label-id="Netgen 1D-2D"
|
||||||
icon-id="mesh_algo_netgen_2d.png"
|
icon-id="mesh_algo_netgen_2d.png"
|
||||||
hypos="NETGEN_Parameters_2D"
|
hypos="NETGEN_Parameters_2D, NETGEN_SimpleParameters_2D"
|
||||||
output="TRIA,QUAD"
|
output="TRIA,QUAD"
|
||||||
dim="2"/>
|
dim="2"
|
||||||
|
support-submeshes="true"
|
||||||
|
/>
|
||||||
<algorithm type="NETGEN_2D3D"
|
<algorithm type="NETGEN_2D3D"
|
||||||
label-id="Netgen 1D-2D-3D"
|
label-id="Netgen 1D-2D-3D"
|
||||||
icon-id="mesh_algo_netgen_2d3d.png"
|
icon-id="mesh_algo_netgen_2d3d.png"
|
||||||
hypos="NETGEN_Parameters"
|
hypos="NETGEN_Parameters, NETGEN_SimpleParameters_3D"
|
||||||
dim="3"/>
|
dim="3"
|
||||||
|
support-submeshes="true"
|
||||||
|
/>
|
||||||
<algorithm type="NETGEN_2D_ONLY"
|
<algorithm type="NETGEN_2D_ONLY"
|
||||||
label-id="Netgen 2D"
|
label-id="Netgen 2D"
|
||||||
icon-id="mesh_algo_netgen_2d.png"
|
icon-id="mesh_algo_netgen_2d.png"
|
||||||
|
BIN
resources/mesh_tree_algo_netgen.png
Normal file
BIN
resources/mesh_tree_algo_netgen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 148 B |
@ -1,5 +1,7 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -22,7 +24,7 @@
|
|||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
# Module : NETGENPLUGIN
|
# Module : NETGENPLUGIN
|
||||||
# $Header$
|
# $Header$
|
||||||
|
#
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
# header files
|
# header files
|
||||||
@ -33,10 +35,12 @@ lib_LTLIBRARIES = libNETGENPluginGUI.la
|
|||||||
|
|
||||||
dist_libNETGENPluginGUI_la_SOURCES = \
|
dist_libNETGENPluginGUI_la_SOURCES = \
|
||||||
NETGENPluginGUI.cxx \
|
NETGENPluginGUI.cxx \
|
||||||
NETGENPluginGUI_HypothesisCreator.cxx
|
NETGENPluginGUI_HypothesisCreator.cxx \
|
||||||
|
NETGENPluginGUI_SimpleCreator.cxx
|
||||||
|
|
||||||
MOC_FILES = \
|
MOC_FILES = \
|
||||||
NETGENPluginGUI_HypothesisCreator_moc.cxx
|
NETGENPluginGUI_HypothesisCreator_moc.cxx \
|
||||||
|
NETGENPluginGUI_SimpleCreator_moc.cxx
|
||||||
|
|
||||||
nodist_libNETGENPluginGUI_la_SOURCES= \
|
nodist_libNETGENPluginGUI_la_SOURCES= \
|
||||||
$(MOC_FILES)
|
$(MOC_FILES)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 CEA
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,15 +19,15 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
||||||
//
|
|
||||||
// File : NETGENPluginGUI.cxx
|
// File : NETGENPluginGUI.cxx
|
||||||
// Author : Michael Zorin
|
// Author : Michael Zorin
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header:
|
// $Header:
|
||||||
|
|
||||||
//#include "SMESHGUI_Hypotheses.h"
|
//#include "SMESHGUI_Hypotheses.h"
|
||||||
|
//
|
||||||
#include "NETGENPluginGUI_HypothesisCreator.h"
|
#include "NETGENPluginGUI_HypothesisCreator.h"
|
||||||
|
#include "NETGENPluginGUI_SimpleCreator.h"
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*! GetHypothesisCreator
|
/*! GetHypothesisCreator
|
||||||
@ -41,6 +42,9 @@ extern "C"
|
|||||||
SMESHGUI_GenericHypothesisCreator* aCreator = NULL;
|
SMESHGUI_GenericHypothesisCreator* aCreator = NULL;
|
||||||
if( aHypType=="NETGEN_Parameters_2D" || aHypType=="NETGEN_Parameters" )
|
if( aHypType=="NETGEN_Parameters_2D" || aHypType=="NETGEN_Parameters" )
|
||||||
aCreator = new NETGENPluginGUI_HypothesisCreator( aHypType );
|
aCreator = new NETGENPluginGUI_HypothesisCreator( aHypType );
|
||||||
|
else if ( aHypType=="NETGEN_SimpleParameters_2D" ||
|
||||||
|
aHypType=="NETGEN_SimpleParameters_3D" )
|
||||||
|
aCreator = new NETGENPluginGUI_SimpleCreator( aHypType );
|
||||||
return aCreator;
|
return aCreator;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 CEA
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,13 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
||||||
//
|
|
||||||
// File : NETGENPluginGUI_HypothesisCreator.cxx
|
// File : NETGENPluginGUI_HypothesisCreator.cxx
|
||||||
// Author : Michael Zorin
|
// Author : Michael Zorin
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header:
|
// $Header:
|
||||||
|
//
|
||||||
#include "NETGENPluginGUI_HypothesisCreator.h"
|
#include "NETGENPluginGUI_HypothesisCreator.h"
|
||||||
|
|
||||||
#include <SMESHGUI_Utils.h>
|
#include <SMESHGUI_Utils.h>
|
||||||
@ -123,15 +123,17 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
|
|||||||
myGrowthRate->setMaxValue( 10 );
|
myGrowthRate->setMaxValue( 10 );
|
||||||
myGrowthRate->setLineStep( 0.1 );
|
myGrowthRate->setLineStep( 0.1 );
|
||||||
|
|
||||||
|
const double VALUE_MAX = 1.0e+6;
|
||||||
|
|
||||||
new QLabel( tr( "NETGEN_SEG_PER_EDGE" ), GroupC1 );
|
new QLabel( tr( "NETGEN_SEG_PER_EDGE" ), GroupC1 );
|
||||||
myNbSegPerEdge = new QtxDblSpinBox( GroupC1 );
|
myNbSegPerEdge = new QtxDblSpinBox( GroupC1 );
|
||||||
myNbSegPerEdge->setMinValue( 0.2 );
|
myNbSegPerEdge->setMinValue( 0.2 );
|
||||||
myNbSegPerEdge->setMaxValue( 5.0 );
|
myNbSegPerEdge->setMaxValue( VALUE_MAX ); // (PAL14890) max value in native netgen gui is 5
|
||||||
|
|
||||||
new QLabel( tr( "NETGEN_SEG_PER_RADIUS" ), GroupC1 );
|
new QLabel( tr( "NETGEN_SEG_PER_RADIUS" ), GroupC1 );
|
||||||
myNbSegPerRadius = new QtxDblSpinBox( GroupC1 );
|
myNbSegPerRadius = new QtxDblSpinBox( GroupC1 );
|
||||||
myNbSegPerRadius->setMinValue( 0.2 );
|
myNbSegPerRadius->setMinValue( 0.2 );
|
||||||
myNbSegPerRadius->setMaxValue( 5.0 );
|
myNbSegPerRadius->setMaxValue( VALUE_MAX ); // (PAL14890) max value in native netgen gui is 5
|
||||||
|
|
||||||
if ( hypType()=="NETGEN_Parameters_2D" )
|
if ( hypType()=="NETGEN_Parameters_2D" )
|
||||||
{
|
{
|
||||||
@ -343,3 +345,8 @@ QString NETGENPluginGUI_HypothesisCreator::type() const
|
|||||||
{
|
{
|
||||||
return tr( QString( "NETGEN_%1_HYPOTHESIS" ).arg(myIs2D?QString("2D"):QString("3D")) );
|
return tr( QString( "NETGEN_%1_HYPOTHESIS" ).arg(myIs2D?QString("2D"):QString("3D")) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString NETGENPluginGUI_HypothesisCreator::helpPage() const
|
||||||
|
{
|
||||||
|
return "netgen_2d_3d_hypo_page.html";
|
||||||
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 CEA
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,13 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin GUI: GUI for plugged-in mesher NETGENPlugin
|
||||||
//
|
|
||||||
// File : NETGENPluginGUI_HypothesisCreator.h
|
// File : NETGENPluginGUI_HypothesisCreator.h
|
||||||
// Author : Michael Zorin
|
// Author : Michael Zorin
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header:
|
// $Header:
|
||||||
|
//
|
||||||
#ifndef NETGENPLUGINGUI_HypothesisCreator_HeaderFile
|
#ifndef NETGENPLUGINGUI_HypothesisCreator_HeaderFile
|
||||||
#define NETGENPLUGINGUI_HypothesisCreator_HeaderFile
|
#define NETGENPLUGINGUI_HypothesisCreator_HeaderFile
|
||||||
|
|
||||||
@ -65,6 +65,7 @@ public:
|
|||||||
virtual ~NETGENPluginGUI_HypothesisCreator();
|
virtual ~NETGENPluginGUI_HypothesisCreator();
|
||||||
|
|
||||||
virtual bool checkParams() const;
|
virtual bool checkParams() const;
|
||||||
|
virtual QString helpPage() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QFrame* buildFrame ();
|
virtual QFrame* buildFrame ();
|
||||||
|
311
src/GUI/NETGENPluginGUI_SimpleCreator.cxx
Normal file
311
src/GUI/NETGENPluginGUI_SimpleCreator.cxx
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// File : NETGENPluginGUI_SimpleCreator.cxx
|
||||||
|
// Author : Open CASCADE S.A.S.
|
||||||
|
// SMESH includes
|
||||||
|
//
|
||||||
|
#include "NETGENPluginGUI_SimpleCreator.h"
|
||||||
|
|
||||||
|
#include <SMESHGUI_Utils.h>
|
||||||
|
#include <SMESHGUI_HypothesesUtils.h>
|
||||||
|
#include <SMESHGUI_SpinBox.h>
|
||||||
|
|
||||||
|
// IDL includes
|
||||||
|
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
|
||||||
|
|
||||||
|
#include <SUIT_Session.h>
|
||||||
|
#include <SUIT_ResourceMgr.h>
|
||||||
|
|
||||||
|
// SALOME GUI includes
|
||||||
|
#include <SalomeApp_Tools.h>
|
||||||
|
#include <QtxIntSpinBox.h>
|
||||||
|
|
||||||
|
// Qt includes
|
||||||
|
#include <qlabel.h>
|
||||||
|
#include <qgroupbox.h>
|
||||||
|
#include <qframe.h>
|
||||||
|
#include <qlineedit.h>
|
||||||
|
#include <qradiobutton.h>
|
||||||
|
#include <qlayout.h>
|
||||||
|
#include <qapplication.h>
|
||||||
|
#include <qcheckbox.h>
|
||||||
|
#include <qhbox.h>
|
||||||
|
|
||||||
|
#define SPACING 6
|
||||||
|
#define MARGIN 11
|
||||||
|
|
||||||
|
// copied from StdMeshersGUI_StdHypothesisCreator.cxx
|
||||||
|
const double VALUE_MAX = 1.0e+15, // COORD_MAX
|
||||||
|
VALUE_MAX_2 = VALUE_MAX * VALUE_MAX,
|
||||||
|
VALUE_MAX_3 = VALUE_MAX_2 * VALUE_MAX,
|
||||||
|
VALUE_SMALL = 1.0e-15,
|
||||||
|
VALUE_SMALL_2 = VALUE_SMALL * VALUE_SMALL,
|
||||||
|
VALUE_SMALL_3 = VALUE_SMALL_2 * VALUE_SMALL;
|
||||||
|
|
||||||
|
NETGENPluginGUI_SimpleCreator::NETGENPluginGUI_SimpleCreator(const QString& theHypType)
|
||||||
|
: SMESHGUI_GenericHypothesisCreator( theHypType ),
|
||||||
|
myName(0),
|
||||||
|
myNbSeg(0),
|
||||||
|
myLength(0),
|
||||||
|
myNbSegRadioBut(0),
|
||||||
|
myLengthRadioBut(0),
|
||||||
|
myLenFromEdgesCheckBox(0),
|
||||||
|
myArea(0),
|
||||||
|
myLenFromFacesCheckBox(0),
|
||||||
|
myVolume(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
NETGENPluginGUI_SimpleCreator::~NETGENPluginGUI_SimpleCreator()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool NETGENPluginGUI_SimpleCreator::checkParams() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame* NETGENPluginGUI_SimpleCreator::buildFrame()
|
||||||
|
{
|
||||||
|
QFrame* fr = new QFrame();
|
||||||
|
|
||||||
|
QVBoxLayout* lay = new QVBoxLayout( fr );
|
||||||
|
lay->setMargin( 0 );
|
||||||
|
lay->setSpacing( 0 );
|
||||||
|
|
||||||
|
QGroupBox* argGroup = new QGroupBox( 1, Qt::Horizontal, tr( "SMESH_ARGUMENTS" ), fr );
|
||||||
|
lay->addWidget( argGroup );
|
||||||
|
|
||||||
|
// Name
|
||||||
|
if( isCreation() ) {
|
||||||
|
QHBox* aHBox = new QHBox( argGroup );
|
||||||
|
aHBox->setSpacing( SPACING );
|
||||||
|
new QLabel( tr( "SMESH_NAME" ), aHBox );
|
||||||
|
myName = new QLineEdit( aHBox );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1D params group
|
||||||
|
|
||||||
|
QGroupBox* dimGroup = new QGroupBox( 2, Qt::Horizontal, tr( "NG_1D" ), argGroup );
|
||||||
|
|
||||||
|
// * number of segments
|
||||||
|
myNbSegRadioBut = new QRadioButton( tr( "SMESH_NB_SEGMENTS_HYPOTHESIS" ), dimGroup );
|
||||||
|
myNbSeg = new QtxIntSpinBox( dimGroup );
|
||||||
|
myNbSeg->setMinValue( 1 );
|
||||||
|
myNbSeg->setMaxValue( 9999 );
|
||||||
|
myNbSeg->setValue( 1 );
|
||||||
|
|
||||||
|
// * local length
|
||||||
|
myLengthRadioBut = new QRadioButton( tr( "SMESH_LOCAL_LENGTH_HYPOTHESIS" ), dimGroup );
|
||||||
|
myLength = new SMESHGUI_SpinBox( dimGroup );
|
||||||
|
myLength->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 0.1, 6 );
|
||||||
|
myLength->setValue( 1. );
|
||||||
|
|
||||||
|
// 2D params group
|
||||||
|
|
||||||
|
dimGroup = new QGroupBox( 2, Qt::Horizontal, tr( "NG_2D" ), argGroup );
|
||||||
|
|
||||||
|
// * Length from edges
|
||||||
|
myLenFromEdgesCheckBox = new QCheckBox( tr( "NG_LENGTH_FROM_EDGES" ), dimGroup );
|
||||||
|
new QLabel(" ", dimGroup);
|
||||||
|
|
||||||
|
// * max area
|
||||||
|
new QLabel( tr( "SMESH_MAX_ELEMENT_AREA_HYPOTHESIS" ), dimGroup);
|
||||||
|
myArea = new SMESHGUI_SpinBox( dimGroup );
|
||||||
|
myArea->RangeStepAndValidator( VALUE_SMALL_2, VALUE_MAX_2, 0.1, 6 );
|
||||||
|
myArea->setValue( 1. );
|
||||||
|
|
||||||
|
// 3D params group
|
||||||
|
if ( hypType()=="NETGEN_SimpleParameters_3D" )
|
||||||
|
{
|
||||||
|
dimGroup = new QGroupBox( 2, Qt::Horizontal, tr( "NG_3D" ), argGroup );
|
||||||
|
|
||||||
|
// * Length from faces
|
||||||
|
myLenFromFacesCheckBox = new QCheckBox( tr( "NG_LENGTH_FROM_FACES" ), dimGroup );
|
||||||
|
new QLabel(" ", dimGroup);
|
||||||
|
|
||||||
|
// * max volume
|
||||||
|
new QLabel( tr("SMESH_MAX_ELEMENT_VOLUME_HYPOTHESIS"), dimGroup );
|
||||||
|
myVolume = new SMESHGUI_SpinBox( dimGroup );
|
||||||
|
myVolume->RangeStepAndValidator( VALUE_SMALL_3, VALUE_MAX_3, 0.1, 6 );
|
||||||
|
myVolume->setValue( 1. );
|
||||||
|
}
|
||||||
|
|
||||||
|
connect( myNbSegRadioBut, SIGNAL( clicked() ), this, SLOT( onValueChanged() ));
|
||||||
|
connect( myLengthRadioBut, SIGNAL( clicked() ), this, SLOT( onValueChanged() ));
|
||||||
|
connect( myLenFromEdgesCheckBox, SIGNAL( stateChanged(int)), this, SLOT( onValueChanged() ));
|
||||||
|
if ( myLenFromFacesCheckBox )
|
||||||
|
connect( myLenFromFacesCheckBox, SIGNAL( stateChanged(int)), this, SLOT( onValueChanged() ));
|
||||||
|
|
||||||
|
return fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NETGENPluginGUI_SimpleCreator::retrieveParams() const
|
||||||
|
{
|
||||||
|
if ( isCreation() ) {
|
||||||
|
myName->setText( hypName() );
|
||||||
|
QFontMetrics metrics( myName->font() );
|
||||||
|
myName->setMinimumWidth( metrics.width( myName->text() )+5 );
|
||||||
|
}
|
||||||
|
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_2D_var h =
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_2D::_narrow( initParamsHypothesis() );
|
||||||
|
|
||||||
|
// 1D
|
||||||
|
int nbSeg = (int) h->GetNumberOfSegments();
|
||||||
|
myNbSegRadioBut->setChecked( nbSeg );
|
||||||
|
myLengthRadioBut->setChecked( !nbSeg );
|
||||||
|
if ( nbSeg ) {
|
||||||
|
myLength->setEnabled( false );
|
||||||
|
myNbSeg->setEnabled( true );
|
||||||
|
myNbSeg->setValue( nbSeg );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myNbSeg->setEnabled( false );
|
||||||
|
myLength->setEnabled( true );
|
||||||
|
myLength->setValue( h->GetLocalLength() );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2D
|
||||||
|
if ( double area = h->GetMaxElementArea() ) {
|
||||||
|
myLenFromEdgesCheckBox->setChecked( false );
|
||||||
|
myArea->setEnabled( true );
|
||||||
|
myArea->setValue( area );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myLenFromEdgesCheckBox->setChecked( true );
|
||||||
|
myArea->setEnabled( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3D
|
||||||
|
if ( myVolume ) {
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_3D_var h =
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_3D::_narrow( initParamsHypothesis() );
|
||||||
|
if ( double volume = (double) h->GetMaxElementVolume() ) {
|
||||||
|
myLenFromFacesCheckBox->setChecked( false );
|
||||||
|
myVolume->setEnabled( true );
|
||||||
|
myVolume->setValue( volume );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myLenFromFacesCheckBox->setChecked( true );
|
||||||
|
myVolume->setEnabled( false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NETGENPluginGUI_SimpleCreator::storeParams() const
|
||||||
|
{
|
||||||
|
QString valStr;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_2D_var h =
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_2D::_narrow( initParamsHypothesis() );
|
||||||
|
|
||||||
|
if( isCreation() )
|
||||||
|
SMESH::SetName( SMESH::FindSObject( h ), myName->text().latin1() );
|
||||||
|
|
||||||
|
// 1D
|
||||||
|
if ( myNbSeg->isEnabled() ) {
|
||||||
|
h->SetNumberOfSegments( myNbSeg->value() );
|
||||||
|
valStr += "nbSeg=" + myNbSeg->text();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
h->SetLocalLength( myLength->value() );
|
||||||
|
valStr += "len=" + myNbSeg->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2D
|
||||||
|
if ( myArea->isEnabled() ) {
|
||||||
|
h->SetMaxElementArea( myArea->value() );
|
||||||
|
valStr += "; area=" + myArea->text();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
h->LengthFromEdges();
|
||||||
|
valStr += "; lenFromEdges";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3D
|
||||||
|
if ( myVolume ) {
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_3D_var h =
|
||||||
|
NETGENPlugin::NETGENPlugin_SimpleHypothesis_3D::_narrow( initParamsHypothesis() );
|
||||||
|
if ( myVolume->isEnabled() ) {
|
||||||
|
h->SetMaxElementVolume( myVolume->value() );
|
||||||
|
valStr += "; vol=" + myVolume->text();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
h->LengthFromFaces();
|
||||||
|
valStr += "; lenFromFaces";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(const SALOME::SALOME_Exception& ex)
|
||||||
|
{
|
||||||
|
SalomeApp_Tools::QtCatchCorbaException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return valStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NETGENPluginGUI_SimpleCreator::onValueChanged()
|
||||||
|
{
|
||||||
|
const QObject* changed = sender();
|
||||||
|
|
||||||
|
if ( myNbSegRadioBut == changed )
|
||||||
|
{
|
||||||
|
myLengthRadioBut->setChecked( !myNbSegRadioBut->isChecked() );
|
||||||
|
}
|
||||||
|
else if ( myLengthRadioBut == changed )
|
||||||
|
{
|
||||||
|
myNbSegRadioBut->setChecked( !myLengthRadioBut->isChecked() );
|
||||||
|
}
|
||||||
|
else if ( myLenFromEdgesCheckBox == changed )
|
||||||
|
{
|
||||||
|
myArea->setEnabled( !myLenFromEdgesCheckBox->isChecked() );
|
||||||
|
}
|
||||||
|
else if ( myLenFromFacesCheckBox == changed )
|
||||||
|
{
|
||||||
|
myVolume->setEnabled( !myLenFromFacesCheckBox->isChecked() );
|
||||||
|
}
|
||||||
|
myLength->setEnabled( myLengthRadioBut->isChecked() );
|
||||||
|
myNbSeg->setEnabled( myNbSegRadioBut->isChecked() );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NETGENPluginGUI_SimpleCreator::caption() const
|
||||||
|
{
|
||||||
|
return tr( (hypType() + "_TITLE").latin1() );
|
||||||
|
}
|
||||||
|
|
||||||
|
QPixmap NETGENPluginGUI_SimpleCreator::icon() const
|
||||||
|
{
|
||||||
|
QString hypIconName = tr( ("ICON_DLG_" + hypType()).latin1() );
|
||||||
|
return SUIT_Session::session()->resourceMgr()->loadPixmap( "NETGENPlugin", hypIconName );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NETGENPluginGUI_SimpleCreator::type() const
|
||||||
|
{
|
||||||
|
return tr( (hypType() + "_HYPOTHESIS").latin1() );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NETGENPluginGUI_SimpleCreator::helpPage() const
|
||||||
|
{
|
||||||
|
return "netgen_2d_3d_hypo_page.html";
|
||||||
|
}
|
76
src/GUI/NETGENPluginGUI_SimpleCreator.h
Normal file
76
src/GUI/NETGENPluginGUI_SimpleCreator.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// File : NETGENPluginGUI_SimpleCreator.h
|
||||||
|
// Author : Open CASCADE S.A.S.
|
||||||
|
//
|
||||||
|
#ifndef NETGENPluginGUI_SimpleCreator_H
|
||||||
|
#define NETGENPluginGUI_SimpleCreator_H
|
||||||
|
|
||||||
|
// SMESH includes
|
||||||
|
//#include "NETGENPlugin_Defs.hxx"
|
||||||
|
#include <SMESHGUI_Hypotheses.h>
|
||||||
|
|
||||||
|
class QCheckBox;
|
||||||
|
class QLineEdit;
|
||||||
|
class QRadioButton;
|
||||||
|
class QtxIntSpinBox;
|
||||||
|
class SMESHGUI_SpinBox;
|
||||||
|
|
||||||
|
class NETGENPluginGUI_SimpleCreator : public SMESHGUI_GenericHypothesisCreator
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
NETGENPluginGUI_SimpleCreator(const QString& theHypType);
|
||||||
|
virtual ~NETGENPluginGUI_SimpleCreator();
|
||||||
|
|
||||||
|
virtual bool checkParams() const;
|
||||||
|
virtual QString helpPage() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual QFrame* buildFrame();
|
||||||
|
virtual void retrieveParams() const;
|
||||||
|
virtual QString storeParams() const;
|
||||||
|
|
||||||
|
virtual QString caption() const;
|
||||||
|
virtual QPixmap icon() const;
|
||||||
|
virtual QString type() const;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void onValueChanged();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QLineEdit * myName;
|
||||||
|
|
||||||
|
QtxIntSpinBox* myNbSeg;
|
||||||
|
SMESHGUI_SpinBox* myLength;
|
||||||
|
QRadioButton* myNbSegRadioBut, *myLengthRadioBut;
|
||||||
|
|
||||||
|
QCheckBox* myLenFromEdgesCheckBox;
|
||||||
|
SMESHGUI_SpinBox* myArea;
|
||||||
|
|
||||||
|
QCheckBox* myLenFromFacesCheckBox;
|
||||||
|
SMESHGUI_SpinBox* myVolume;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // NETGENPluginGUI_SimpleCreator_H
|
@ -1,5 +1,7 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -20,6 +22,7 @@
|
|||||||
# This is a Qt message file in .po format. Each msgid starts with
|
# This is a Qt message file in .po format. Each msgid starts with
|
||||||
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
|
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
|
||||||
# would be translated to "Pub", not "Foo::Pub".
|
# would be translated to "Pub", not "Foo::Pub".
|
||||||
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
@ -39,6 +42,12 @@ msgstr "mesh_hypo_netgen.png"
|
|||||||
msgid "ICON_DLG_NETGEN_PARAMETERS_2D"
|
msgid "ICON_DLG_NETGEN_PARAMETERS_2D"
|
||||||
msgstr "mesh_hypo_netgen_2d.png"
|
msgstr "mesh_hypo_netgen_2d.png"
|
||||||
|
|
||||||
|
msgid "ICON_DLG_NETGEN_SimpleParameters_3D"
|
||||||
|
msgstr "mesh_hypo_netgen.png"
|
||||||
|
|
||||||
|
msgid "ICON_DLG_NETGEN_SimpleParameters_2D"
|
||||||
|
msgstr "mesh_hypo_netgen_2d.png"
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# ObjectBrowser
|
# ObjectBrowser
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
@ -57,3 +66,9 @@ msgstr "mesh_tree_hypo_netgen.png"
|
|||||||
|
|
||||||
msgid "ICON_SMESH_TREE_HYPO_NETGEN_Parameters_2D"
|
msgid "ICON_SMESH_TREE_HYPO_NETGEN_Parameters_2D"
|
||||||
msgstr "mesh_tree_hypo_netgen_2d.png"
|
msgstr "mesh_tree_hypo_netgen_2d.png"
|
||||||
|
|
||||||
|
msgid "ICON_SMESH_TREE_HYPO_NETGEN_SimpleParameters_3D"
|
||||||
|
msgstr "mesh_tree_hypo_netgen.png"
|
||||||
|
|
||||||
|
msgid "ICON_SMESH_TREE_HYPO_NETGEN_SimpleParameters_2D"
|
||||||
|
msgstr "mesh_tree_hypo_netgen_2d.png"
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -20,6 +22,7 @@
|
|||||||
# This is a Qt message file in .po format. Each msgid starts with
|
# This is a Qt message file in .po format. Each msgid starts with
|
||||||
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
|
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
|
||||||
# would be translated to "Pub", not "Foo::Pub".
|
# would be translated to "Pub", not "Foo::Pub".
|
||||||
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
@ -82,3 +85,30 @@ msgstr "Hypothesis Construction"
|
|||||||
|
|
||||||
msgid "NETGEN_3D_TITLE"
|
msgid "NETGEN_3D_TITLE"
|
||||||
msgstr "Hypothesis Construction"
|
msgstr "Hypothesis Construction"
|
||||||
|
|
||||||
|
msgid "NETGEN_SimpleParameters_3D_HYPOTHESIS"
|
||||||
|
msgstr "Netgen 3D simple parameters"
|
||||||
|
|
||||||
|
msgid "NETGEN_SimpleParameters_3D_TITLE"
|
||||||
|
msgstr "Hypothesis Construction"
|
||||||
|
|
||||||
|
msgid "NETGEN_SimpleParameters_2D_HYPOTHESIS"
|
||||||
|
msgstr "Netgen 2D simple parameters"
|
||||||
|
|
||||||
|
msgid "NETGEN_SimpleParameters_2D_TITLE"
|
||||||
|
msgstr "Hypothesis Construction"
|
||||||
|
|
||||||
|
msgid "NG_1D"
|
||||||
|
msgstr "1D"
|
||||||
|
|
||||||
|
msgid "NG_2D"
|
||||||
|
msgstr "2D"
|
||||||
|
|
||||||
|
msgid "NG_3D"
|
||||||
|
msgstr "3D"
|
||||||
|
|
||||||
|
msgid "NG_LENGTH_FROM_EDGES"
|
||||||
|
msgstr "Length from edges"
|
||||||
|
|
||||||
|
msgid "NG_LENGTH_FROM_FACES"
|
||||||
|
msgstr "Length from faces"
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
@ -17,14 +19,12 @@
|
|||||||
#
|
#
|
||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
#
|
|
||||||
#
|
|
||||||
# File : Makefile.in
|
# File : Makefile.in
|
||||||
# Author : Patrick GOLDBRONN (CEA)
|
# Author : Patrick GOLDBRONN (CEA)
|
||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
# Module : SMESH
|
# Module : SMESH
|
||||||
# $Header$
|
# $Header$
|
||||||
|
#
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
#SUBDIRS = NETGEN NETGENPlugin GUI
|
#SUBDIRS = NETGEN NETGENPlugin GUI
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +20,11 @@
|
|||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# -* Makefile *-
|
# -* Makefile *-
|
||||||
#
|
|
||||||
# Author : Edward AGAPOV (OCC)
|
# Author : Edward AGAPOV (OCC)
|
||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
# Module : NETGENPLUGIN
|
# Module : NETGENPLUGIN
|
||||||
# Date : 10/01/2004
|
# Date : 10/01/2004
|
||||||
#
|
#
|
||||||
#
|
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
# build .so of NETGEN itself
|
# build .so of NETGEN itself
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
diff -Nru netgen-4.5_orig/libsrc/csg/meshsurf.cpp netgen-4.5_patch/libsrc/csg/meshsurf.cpp
|
diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.cpp netgen-4.5.new/libsrc/csg/meshsurf.cpp
|
||||||
--- netgen-4.5_orig/libsrc/csg/meshsurf.cpp 2006-02-14 10:54:35.000000000 +0300
|
--- netgen-4.5.old/libsrc/csg/meshsurf.cpp 2006-02-14 11:54:35.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/csg/meshsurf.cpp 2006-10-25 16:05:59.000000000 +0400
|
+++ netgen-4.5.new/libsrc/csg/meshsurf.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -77,11 +77,12 @@
|
@@ -77,11 +77,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15,9 +15,9 @@ diff -Nru netgen-4.5_orig/libsrc/csg/meshsurf.cpp netgen-4.5_patch/libsrc/csg/me
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MeshOptimize2dSurfaces :: ProjectPoint2 (INDEX surfind, INDEX surfind2,
|
void MeshOptimize2dSurfaces :: ProjectPoint2 (INDEX surfind, INDEX surfind2,
|
||||||
diff -Nru netgen-4.5_orig/libsrc/csg/meshsurf.hpp netgen-4.5_patch/libsrc/csg/meshsurf.hpp
|
diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.hpp netgen-4.5.new/libsrc/csg/meshsurf.hpp
|
||||||
--- netgen-4.5_orig/libsrc/csg/meshsurf.hpp 2004-01-20 13:49:44.000000000 +0300
|
--- netgen-4.5.old/libsrc/csg/meshsurf.hpp 2004-01-20 14:49:44.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/csg/meshsurf.hpp 2006-10-25 16:08:05.000000000 +0400
|
+++ netgen-4.5.new/libsrc/csg/meshsurf.hpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -45,7 +45,7 @@
|
@@ -45,7 +45,7 @@
|
||||||
MeshOptimize2dSurfaces (const CSGeometry & ageometry);
|
MeshOptimize2dSurfaces (const CSGeometry & ageometry);
|
||||||
|
|
||||||
@ -27,9 +27,9 @@ diff -Nru netgen-4.5_orig/libsrc/csg/meshsurf.hpp netgen-4.5_patch/libsrc/csg/me
|
|||||||
///
|
///
|
||||||
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
|
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
|
||||||
///
|
///
|
||||||
diff -Nru netgen-4.5_orig/libsrc/interface/Makefile netgen-4.5_patch/libsrc/interface/Makefile
|
diff -Naur netgen-4.5.old/libsrc/interface/Makefile netgen-4.5.new/libsrc/interface/Makefile
|
||||||
--- netgen-4.5_orig/libsrc/interface/Makefile 2005-08-09 18:14:59.000000000 +0400
|
--- netgen-4.5.old/libsrc/interface/Makefile 2005-08-09 18:14:59.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/interface/Makefile 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/libsrc/interface/Makefile 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -1,4 +1,5 @@
|
@@ -1,4 +1,5 @@
|
||||||
-src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
|
-src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
|
||||||
+#src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
|
+#src = nginterface.cpp writeuser.cpp writediffpack.cpp writeabaqus.cpp writefluent.cpp writepermas.cpp writetochnog.cpp writetecplot.cpp wuchemnitz.cpp writetochnog.cpp writefeap.cpp writeelmer.cpp writegmsh.cpp writejcm.cpp readuser.cpp importsolution.cpp
|
||||||
@ -37,9 +37,9 @@ diff -Nru netgen-4.5_orig/libsrc/interface/Makefile netgen-4.5_patch/libsrc/inte
|
|||||||
#
|
#
|
||||||
lib = nginterface
|
lib = nginterface
|
||||||
libpath = libsrc/interface
|
libpath = libsrc/interface
|
||||||
diff -Nru netgen-4.5_orig/libsrc/interface/nglib.cpp netgen-4.5_patch/libsrc/interface/nglib.cpp
|
diff -Naur netgen-4.5.old/libsrc/interface/nglib.cpp netgen-4.5.new/libsrc/interface/nglib.cpp
|
||||||
--- netgen-4.5_orig/libsrc/interface/nglib.cpp 2005-10-18 17:53:18.000000000 +0400
|
--- netgen-4.5.old/libsrc/interface/nglib.cpp 2005-10-18 17:53:18.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/interface/nglib.cpp 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/libsrc/interface/nglib.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -56,7 +56,8 @@
|
@@ -56,7 +56,8 @@
|
||||||
|
|
||||||
void Ng_Exit ()
|
void Ng_Exit ()
|
||||||
@ -50,9 +50,9 @@ diff -Nru netgen-4.5_orig/libsrc/interface/nglib.cpp netgen-4.5_patch/libsrc/int
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
diff -Nru netgen-4.5_orig/libsrc/makefile.inc netgen-4.5_patch/libsrc/makefile.inc
|
diff -Naur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
|
||||||
--- netgen-4.5_orig/libsrc/makefile.inc 2005-09-02 17:17:51.000000000 +0400
|
--- netgen-4.5.old/libsrc/makefile.inc 2005-09-02 17:17:51.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/makefile.inc 2006-10-26 09:33:58.000000000 +0400
|
+++ netgen-4.5.new/libsrc/makefile.inc 2008-02-12 14:59:55.000000000 +0300
|
||||||
@@ -8,17 +8,14 @@
|
@@ -8,17 +8,14 @@
|
||||||
LIBSRC_DIR=$(CPP_DIR)/libsrc
|
LIBSRC_DIR=$(CPP_DIR)/libsrc
|
||||||
LIB_DIR=$(CPP_DIR)/lib/$(MACHINE)
|
LIB_DIR=$(CPP_DIR)/lib/$(MACHINE)
|
||||||
@ -71,14 +71,14 @@ diff -Nru netgen-4.5_orig/libsrc/makefile.inc netgen-4.5_patch/libsrc/makefile.i
|
|||||||
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
|
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
|
||||||
#
|
#
|
||||||
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR)
|
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR)
|
||||||
+CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
+CPLUSPLUSFLAGS1 = -c -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
||||||
+ -DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
|
+ -DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
|
||||||
#
|
#
|
||||||
ARFLAGS = r
|
ARFLAGS = r
|
||||||
#
|
#
|
||||||
diff -Nru netgen-4.5_orig/libsrc/makefile.mach.LINUX netgen-4.5_patch/libsrc/makefile.mach.LINUX
|
diff -Naur netgen-4.5.old/libsrc/makefile.mach.LINUX netgen-4.5.new/libsrc/makefile.mach.LINUX
|
||||||
--- netgen-4.5_orig/libsrc/makefile.mach.LINUX 2004-10-11 23:49:26.000000000 +0400
|
--- netgen-4.5.old/libsrc/makefile.mach.LINUX 2004-10-11 23:49:26.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/makefile.mach.LINUX 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/libsrc/makefile.mach.LINUX 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -16,7 +16,7 @@
|
@@ -16,7 +16,7 @@
|
||||||
#
|
#
|
||||||
CFLAGS2 =
|
CFLAGS2 =
|
||||||
@ -88,9 +88,29 @@ diff -Nru netgen-4.5_orig/libsrc/makefile.mach.LINUX netgen-4.5_patch/libsrc/mak
|
|||||||
-ftemplate-depth-99 -finline-limit=10000 \
|
-ftemplate-depth-99 -finline-limit=10000 \
|
||||||
-Wdisabled-optimization -funroll-loops -DnoNGSOLVE
|
-Wdisabled-optimization -funroll-loops -DnoNGSOLVE
|
||||||
|
|
||||||
diff -Nru netgen-4.5_orig/libsrc/meshing/improve2.cpp netgen-4.5_patch/libsrc/meshing/improve2.cpp
|
diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.cpp netgen-4.5.new/libsrc/meshing/meshtype.cpp
|
||||||
--- netgen-4.5_orig/libsrc/meshing/improve2.cpp 2006-01-11 18:08:19.000000000 +0300
|
--- netgen-4.5.old/libsrc/meshing/meshtype.cpp 2006-02-10 13:11:08.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/meshing/improve2.cpp 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/libsrc/meshing/meshtype.cpp 2008-03-14 13:19:53.000000000 +0300
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
#include <mystdlib.h>
|
||||||
|
+#include <float.h>
|
||||||
|
|
||||||
|
#include "meshing.hpp"
|
||||||
|
|
||||||
|
@@ -774,7 +775,7 @@
|
||||||
|
frob /= 2;
|
||||||
|
|
||||||
|
double det = trans.Det();
|
||||||
|
- if (det <= 0)
|
||||||
|
+ if (det <= DBL_MIN)
|
||||||
|
err += 1e12;
|
||||||
|
else
|
||||||
|
err += frob * frob / det;
|
||||||
|
|
||||||
|
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/meshing/improve2.cpp netgen-4.5.new/libsrc/meshing/improve2.cpp
|
||||||
|
--- netgen-4.5.old/libsrc/meshing/improve2.cpp 2006-01-11 19:08:19.000000000 +0300
|
||||||
|
+++ netgen-4.5.new/libsrc/meshing/improve2.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -4,7 +4,7 @@
|
@@ -4,7 +4,7 @@
|
||||||
#include <opti.hpp>
|
#include <opti.hpp>
|
||||||
|
|
||||||
@ -100,9 +120,9 @@ diff -Nru netgen-4.5_orig/libsrc/meshing/improve2.cpp netgen-4.5_patch/libsrc/me
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace netgen
|
namespace netgen
|
||||||
diff -Nru netgen-4.5_orig/libsrc/meshing/improve2.hpp netgen-4.5_patch/libsrc/meshing/improve2.hpp
|
diff -Naur netgen-4.5.old/libsrc/meshing/improve2.hpp netgen-4.5.new/libsrc/meshing/improve2.hpp
|
||||||
--- netgen-4.5_orig/libsrc/meshing/improve2.hpp 2004-10-12 23:22:55.000000000 +0400
|
--- netgen-4.5.old/libsrc/meshing/improve2.hpp 2004-10-12 23:22:55.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/meshing/improve2.hpp 2006-10-25 16:09:37.000000000 +0400
|
+++ netgen-4.5.new/libsrc/meshing/improve2.hpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -32,17 +32,16 @@
|
@@ -32,17 +32,16 @@
|
||||||
///
|
///
|
||||||
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
||||||
@ -129,9 +149,9 @@ diff -Nru netgen-4.5_orig/libsrc/meshing/improve2.hpp netgen-4.5_patch/libsrc/me
|
|||||||
|
|
||||||
///
|
///
|
||||||
virtual void GetNormalVector(INDEX surfind, const Point3d & p, PointGeomInfo & gi, Vec3d & n) const;
|
virtual void GetNormalVector(INDEX surfind, const Point3d & p, PointGeomInfo & gi, Vec3d & n) const;
|
||||||
diff -Nru netgen-4.5_orig/libsrc/meshing/smoothing2.cpp netgen-4.5_patch/libsrc/meshing/smoothing2.cpp
|
diff -Naur netgen-4.5.old/libsrc/meshing/smoothing2.cpp netgen-4.5.new/libsrc/meshing/smoothing2.cpp
|
||||||
--- netgen-4.5_orig/libsrc/meshing/smoothing2.cpp 2006-01-11 18:08:20.000000000 +0300
|
--- netgen-4.5.old/libsrc/meshing/smoothing2.cpp 2006-01-11 19:08:20.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/meshing/smoothing2.cpp 2006-10-25 16:10:46.000000000 +0400
|
+++ netgen-4.5.new/libsrc/meshing/smoothing2.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -300,7 +300,7 @@
|
@@ -300,7 +300,7 @@
|
||||||
double Opti2SurfaceMinFunction ::
|
double Opti2SurfaceMinFunction ::
|
||||||
FuncGrad (const Vector & x, Vector & grad) const
|
FuncGrad (const Vector & x, Vector & grad) const
|
||||||
@ -250,9 +270,9 @@ diff -Nru netgen-4.5_orig/libsrc/meshing/smoothing2.cpp netgen-4.5_patch/libsrc/
|
|||||||
if (moveisok)
|
if (moveisok)
|
||||||
{
|
{
|
||||||
for (j = 0; j < locelements.Size(); j++)
|
for (j = 0; j < locelements.Size(); j++)
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occconstruction.cpp netgen-4.5_patch/libsrc/occ/occconstruction.cpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occconstruction.cpp netgen-4.5.new/libsrc/occ/occconstruction.cpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occconstruction.cpp 2005-12-06 17:15:53.000000000 +0300
|
--- netgen-4.5.old/libsrc/occ/occconstruction.cpp 2005-12-06 18:15:53.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occconstruction.cpp 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occconstruction.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -28,8 +28,8 @@
|
@@ -28,8 +28,8 @@
|
||||||
#include <BRepAlgoAPI_Common.hxx>
|
#include <BRepAlgoAPI_Common.hxx>
|
||||||
#include <BRepAlgoAPI_Fuse.hxx>
|
#include <BRepAlgoAPI_Fuse.hxx>
|
||||||
@ -264,9 +284,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occconstruction.cpp netgen-4.5_patch/libsrc
|
|||||||
#include <BRepOffsetAPI_MakeOffsetShape.hxx>
|
#include <BRepOffsetAPI_MakeOffsetShape.hxx>
|
||||||
#include <ShapeFix_Shape.hxx>
|
#include <ShapeFix_Shape.hxx>
|
||||||
namespace netgen
|
namespace netgen
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/occgenmesh.cpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/occgenmesh.cpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occgenmesh.cpp 2006-02-07 12:12:48.000000000 +0300
|
--- netgen-4.5.old/libsrc/occ/occgenmesh.cpp 2006-02-07 13:12:48.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occgenmesh.cpp 2006-10-25 16:14:48.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occgenmesh.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -28,7 +28,7 @@
|
@@ -28,7 +28,7 @@
|
||||||
return Point<3> (p.X(), p.Y(), p.Z());
|
return Point<3> (p.X(), p.Y(), p.Z());
|
||||||
}
|
}
|
||||||
@ -339,7 +359,37 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
{
|
{
|
||||||
exists = 1;
|
exists = 1;
|
||||||
break;
|
break;
|
||||||
@@ -276,8 +273,8 @@
|
@@ -163,6 +160,7 @@
|
||||||
|
{
|
||||||
|
TopoDS_Face face = TopoDS::Face(exp1.Current());
|
||||||
|
int facenr = geom.fmap.FindIndex(face);
|
||||||
|
+ if ( facenr < 1 ) continue;
|
||||||
|
|
||||||
|
if (face2solid[0][facenr-1] == 0)
|
||||||
|
face2solid[0][facenr-1] = solidnr;
|
||||||
|
@@ -184,6 +182,9 @@
|
||||||
|
int facenr = 0;
|
||||||
|
int edgenr = 0;
|
||||||
|
|
||||||
|
+ // EAP, IMP [SALOME platform 0013410].
|
||||||
|
+ // take into account nb of already meshed edges
|
||||||
|
+ edgenr = mesh.GetNSeg();
|
||||||
|
|
||||||
|
(*testout) << "faces = " << geom.fmap.Extent() << endl;
|
||||||
|
int curr = 0;
|
||||||
|
@@ -232,6 +233,11 @@
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // EAP, IMP [SALOME platform 0013410].
|
||||||
|
+ // Do not divide already meshed edges
|
||||||
|
+ if ( geom.emap.FindIndex(edge) < 1 )
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
|
||||||
|
geom.vmap.FindIndex(TopExp::LastVertex (edge)))
|
||||||
|
{
|
||||||
|
@@ -276,8 +282,8 @@
|
||||||
pnums.Last() = -1;
|
pnums.Last() = -1;
|
||||||
for (PointIndex pi = 1; pi < first_ep; pi++)
|
for (PointIndex pi = 1; pi < first_ep; pi++)
|
||||||
{
|
{
|
||||||
@ -350,7 +400,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,7 +284,7 @@
|
@@ -287,7 +293,7 @@
|
||||||
bool exists = 0;
|
bool exists = 0;
|
||||||
int j;
|
int j;
|
||||||
for (j = first_ep; j <= mesh.GetNP(); j++)
|
for (j = first_ep; j <= mesh.GetNP(); j++)
|
||||||
@ -359,7 +409,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
{
|
{
|
||||||
exists = 1;
|
exists = 1;
|
||||||
break;
|
break;
|
||||||
@@ -394,7 +391,7 @@
|
@@ -394,7 +400,7 @@
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
int changed;
|
int changed;
|
||||||
|
|
||||||
@ -368,7 +418,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
multithread.task = "Surface meshing";
|
multithread.task = "Surface meshing";
|
||||||
|
|
||||||
geom.facemeshstatus = 0;
|
geom.facemeshstatus = 0;
|
||||||
@@ -751,7 +748,7 @@
|
@@ -751,7 +760,7 @@
|
||||||
multithread.task = savetask;
|
multithread.task = savetask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +427,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
{
|
{
|
||||||
double hret;
|
double hret;
|
||||||
kappa *= mparam.curvaturesafety;
|
kappa *= mparam.curvaturesafety;
|
||||||
@@ -779,7 +776,7 @@
|
@@ -779,7 +788,7 @@
|
||||||
double nq = n*q;
|
double nq = n*q;
|
||||||
|
|
||||||
Point<3> p = p0 + 0.5*n;
|
Point<3> p = p0 + 0.5*n;
|
||||||
@ -386,7 +436,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
|
|
||||||
if (lambda >= 0 && lambda <= 1)
|
if (lambda >= 0 && lambda <= 1)
|
||||||
{
|
{
|
||||||
@@ -799,55 +796,55 @@
|
@@ -799,55 +808,55 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -462,7 +512,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
|
|
||||||
//(*testout) << "curvature " << curvature << endl;
|
//(*testout) << "curvature " << curvature << endl;
|
||||||
|
|
||||||
@@ -886,51 +883,47 @@
|
@@ -886,51 +895,47 @@
|
||||||
pm1.SetX(0.5*(par0.X()+par2.X())); pm1.SetY(0.5*(par0.Y()+par2.Y()));
|
pm1.SetX(0.5*(par0.X()+par2.X())); pm1.SetY(0.5*(par0.Y()+par2.Y()));
|
||||||
pm2.SetX(0.5*(par1.X()+par0.X())); pm2.SetY(0.5*(par1.Y()+par0.Y()));
|
pm2.SetX(0.5*(par1.X()+par0.X())); pm2.SetY(0.5*(par1.Y()+par0.Y()));
|
||||||
|
|
||||||
@ -529,7 +579,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
(*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
|
(*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
@@ -970,7 +963,7 @@
|
@@ -970,7 +975,7 @@
|
||||||
if (mparam.uselocalh)
|
if (mparam.uselocalh)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -538,7 +588,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
multithread.percent = 0;
|
multithread.percent = 0;
|
||||||
|
|
||||||
mesh->SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
|
mesh->SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
|
||||||
@@ -1075,7 +1068,6 @@
|
@@ -1075,7 +1080,6 @@
|
||||||
if (triangulation.IsNull()) continue;
|
if (triangulation.IsNull()) continue;
|
||||||
|
|
||||||
BRepAdaptor_Surface sf(face, Standard_True);
|
BRepAdaptor_Surface sf(face, Standard_True);
|
||||||
@ -546,7 +596,7 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
|
|
||||||
int ntriangles = triangulation -> NbTriangles();
|
int ntriangles = triangulation -> NbTriangles();
|
||||||
for (int j = 1; j <= ntriangles; j++)
|
for (int j = 1; j <= ntriangles; j++)
|
||||||
@@ -1096,7 +1088,7 @@
|
@@ -1096,7 +1100,7 @@
|
||||||
maxside = max (maxside, p[1].Distance(p[2]));
|
maxside = max (maxside, p[1].Distance(p[2]));
|
||||||
//cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
|
//cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
|
||||||
|
|
||||||
@ -555,9 +605,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_patch/libsrc/occ/
|
|||||||
//cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
|
//cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occgeom.cpp netgen-4.5_patch/libsrc/occ/occgeom.cpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occgeom.cpp netgen-4.5.new/libsrc/occ/occgeom.cpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occgeom.cpp 2006-01-25 15:35:50.000000000 +0300
|
--- netgen-4.5.old/libsrc/occ/occgeom.cpp 2006-01-25 16:35:50.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occgeom.cpp 2006-10-25 16:15:24.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occgeom.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -7,6 +7,8 @@
|
@@ -7,6 +7,8 @@
|
||||||
#include "ShapeAnalysis_ShapeContents.hxx"
|
#include "ShapeAnalysis_ShapeContents.hxx"
|
||||||
#include "ShapeAnalysis_CheckSmallFace.hxx"
|
#include "ShapeAnalysis_CheckSmallFace.hxx"
|
||||||
@ -734,9 +784,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgeom.cpp netgen-4.5_patch/libsrc/occ/occ
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occgeom.hpp netgen-4.5_patch/libsrc/occ/occgeom.hpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occgeom.hpp netgen-4.5.new/libsrc/occ/occgeom.hpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occgeom.hpp 2006-01-25 15:35:50.000000000 +0300
|
--- netgen-4.5.old/libsrc/occ/occgeom.hpp 2006-01-25 16:35:50.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occgeom.hpp 2006-10-25 16:16:01.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occgeom.hpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -15,8 +15,6 @@
|
@@ -15,8 +15,6 @@
|
||||||
#include "Geom_Curve.hxx"
|
#include "Geom_Curve.hxx"
|
||||||
#include "Geom2d_Curve.hxx"
|
#include "Geom2d_Curve.hxx"
|
||||||
@ -813,9 +863,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occgeom.hpp netgen-4.5_patch/libsrc/occ/occ
|
|||||||
OCCSurface GetSurface (int surfi)
|
OCCSurface GetSurface (int surfi)
|
||||||
{
|
{
|
||||||
cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
|
cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occmeshsurf.cpp netgen-4.5_patch/libsrc/occ/occmeshsurf.cpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.cpp netgen-4.5.new/libsrc/occ/occmeshsurf.cpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occmeshsurf.cpp 2006-01-25 15:36:26.000000000 +0300
|
--- netgen-4.5.old/libsrc/occ/occmeshsurf.cpp 2006-01-25 16:36:26.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occmeshsurf.cpp 2006-10-25 16:16:26.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occmeshsurf.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -5,6 +5,8 @@
|
@@ -5,6 +5,8 @@
|
||||||
#include <occgeom.hpp>
|
#include <occgeom.hpp>
|
||||||
#include <meshing.hpp>
|
#include <meshing.hpp>
|
||||||
@ -931,9 +981,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occmeshsurf.cpp netgen-4.5_patch/libsrc/occ
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
diff -Nru netgen-4.5_orig/libsrc/occ/occmeshsurf.hpp netgen-4.5_patch/libsrc/occ/occmeshsurf.hpp
|
diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.hpp netgen-4.5.new/libsrc/occ/occmeshsurf.hpp
|
||||||
--- netgen-4.5_orig/libsrc/occ/occmeshsurf.hpp 2005-06-09 18:51:10.000000000 +0400
|
--- netgen-4.5.old/libsrc/occ/occmeshsurf.hpp 2005-06-09 18:51:10.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/occ/occmeshsurf.hpp 2006-10-25 16:17:22.000000000 +0400
|
+++ netgen-4.5.new/libsrc/occ/occmeshsurf.hpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -151,7 +151,7 @@
|
@@ -151,7 +151,7 @@
|
||||||
MeshOptimize2dOCCSurfaces (const OCCGeometry & ageometry);
|
MeshOptimize2dOCCSurfaces (const OCCGeometry & ageometry);
|
||||||
|
|
||||||
@ -953,9 +1003,9 @@ diff -Nru netgen-4.5_orig/libsrc/occ/occmeshsurf.hpp netgen-4.5_patch/libsrc/occ
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
diff -Nru netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5_patch/libsrc/stlgeom/meshstlsurface.cpp
|
diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp
|
||||||
--- netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.cpp 2006-01-11 18:08:20.000000000 +0300
|
--- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp 2006-01-11 19:08:20.000000000 +0300
|
||||||
+++ netgen-4.5_patch/libsrc/stlgeom/meshstlsurface.cpp 2006-10-25 16:17:47.000000000 +0400
|
+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -946,20 +946,23 @@
|
@@ -946,20 +946,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1004,9 +1054,9 @@ diff -Nru netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5_patch/lib
|
|||||||
void MeshOptimizeSTLSurface :: GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const
|
void MeshOptimizeSTLSurface :: GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const
|
||||||
{
|
{
|
||||||
n = geom.GetChartNormalVector();
|
n = geom.GetChartNormalVector();
|
||||||
diff -Nru netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5_patch/libsrc/stlgeom/meshstlsurface.hpp
|
diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp
|
||||||
--- netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.hpp 2004-09-30 17:13:56.000000000 +0400
|
--- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp 2004-09-30 17:13:56.000000000 +0400
|
||||||
+++ netgen-4.5_patch/libsrc/stlgeom/meshstlsurface.hpp 2006-10-25 16:17:59.000000000 +0400
|
+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -79,12 +79,10 @@
|
@@ -79,12 +79,10 @@
|
||||||
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
||||||
const PointGeomInfo & gi);
|
const PointGeomInfo & gi);
|
||||||
@ -1021,9 +1071,9 @@ diff -Nru netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5_patch/lib
|
|||||||
virtual void GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const;
|
virtual void GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
diff -Nru netgen-4.5_orig/makeForSalome.sh netgen-4.5_patch/makeForSalome.sh
|
diff -Naur netgen-4.5.old/makeForSalome.sh netgen-4.5.new/makeForSalome.sh
|
||||||
--- netgen-4.5_orig/makeForSalome.sh 1970-01-01 03:00:00.000000000 +0300
|
--- netgen-4.5.old/makeForSalome.sh 1970-01-01 03:00:00.000000000 +0300
|
||||||
+++ netgen-4.5_patch/makeForSalome.sh 2006-04-27 13:12:54.000000000 +0400
|
+++ netgen-4.5.new/makeForSalome.sh 2008-02-12 14:57:01.000000000 +0300
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,31 @@
|
||||||
+#! /bin/sh
|
+#! /bin/sh
|
||||||
+cp ngtcltk/ngnewdelete.* libsrc/interface/
|
+cp ngtcltk/ngnewdelete.* libsrc/interface/
|
||||||
@ -1056,3 +1106,124 @@ diff -Nru netgen-4.5_orig/makeForSalome.sh netgen-4.5_patch/makeForSalome.sh
|
|||||||
+ libsrc/occ/*.hpp libsrc/opti/*.hpp libsrc/include/mydefs.hpp \
|
+ libsrc/occ/*.hpp libsrc/opti/*.hpp libsrc/include/mydefs.hpp \
|
||||||
+ libsrc/stlgeom/*.hpp libsrc/include/mystdlib.h \
|
+ libsrc/stlgeom/*.hpp libsrc/include/mystdlib.h \
|
||||||
+ install/include
|
+ install/include
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter2d.cxx netgen-4.5.new/libsrc/occ/Partition_Inter2d.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Inter2d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Inter2d.cxx 2008-02-26 12:34:14.000000000 +0300
|
||||||
|
@@ -29,10 +29,10 @@
|
||||||
|
// $Header$
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
-#include "Partition_Inter2d.ixx"
|
||||||
|
-
|
||||||
|
#include "utilities.h"
|
||||||
|
|
||||||
|
+#include "Partition_Inter2d.ixx"
|
||||||
|
+
|
||||||
|
#include <BRepAdaptor_Curve.hxx>
|
||||||
|
#include <BRepAlgo_AsDes.hxx>
|
||||||
|
#include <BRepLib_MakeVertex.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter3d.cxx netgen-4.5.new/libsrc/occ/Partition_Inter3d.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Inter3d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Inter3d.cxx 2008-02-26 12:36:27.000000000 +0300
|
||||||
|
@@ -29,13 +29,17 @@
|
||||||
|
// $Header$
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
+
|
||||||
|
+#include "utilities.h"
|
||||||
|
+
|
||||||
|
#include "Partition_Inter2d.hxx"
|
||||||
|
#include "Partition_Inter3d.ixx"
|
||||||
|
-#include "utilities.h"
|
||||||
|
|
||||||
|
#include <BRepAlgo_AsDes.hxx>
|
||||||
|
#include <BRepAlgo_Image.hxx>
|
||||||
|
#include <BRepLib.hxx>
|
||||||
|
+//using namespace std;
|
||||||
|
+
|
||||||
|
#include <BRepOffset_Tool.hxx>
|
||||||
|
#include <BRep_Builder.hxx>
|
||||||
|
#include <BRep_Tool.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop2d.cxx netgen-4.5.new/libsrc/occ/Partition_Loop2d.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Loop2d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Loop2d.cxx 2008-02-26 12:37:10.000000000 +0300
|
||||||
|
@@ -12,9 +12,11 @@
|
||||||
|
// $Header$
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
-#include "Partition_Loop2d.ixx"
|
||||||
|
+
|
||||||
|
|
||||||
|
#include "utilities.h"
|
||||||
|
+
|
||||||
|
+#include "Partition_Loop2d.ixx"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <BRepAdaptor_Curve2d.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop3d.cxx netgen-4.5.new/libsrc/occ/Partition_Loop3d.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Loop3d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Loop3d.cxx 2008-02-26 12:39:32.000000000 +0300
|
||||||
|
@@ -10,6 +10,11 @@
|
||||||
|
// Module : GEOM
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#include "utilities.h"
|
||||||
|
+
|
||||||
|
#include "Partition_Loop3d.ixx"
|
||||||
|
|
||||||
|
#include <TopExp_Explorer.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop.cxx netgen-4.5.new/libsrc/occ/Partition_Loop.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Loop.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Loop.cxx 2008-02-26 12:40:41.000000000 +0300
|
||||||
|
@@ -29,12 +29,14 @@
|
||||||
|
// $Header$
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
-#include <stdio.h>
|
||||||
|
|
||||||
|
-#include "Partition_Loop.ixx"
|
||||||
|
|
||||||
|
#include "utilities.h"
|
||||||
|
|
||||||
|
+#include <stdio.h>
|
||||||
|
+
|
||||||
|
+#include "Partition_Loop.ixx"
|
||||||
|
+
|
||||||
|
#include <BRep_Builder.hxx>
|
||||||
|
#include <BRepAlgo_FaceRestrictor.hxx>
|
||||||
|
#include <BRep_Tool.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/Partition_Spliter.cxx netgen-4.5.new/libsrc/occ/Partition_Spliter.cxx
|
||||||
|
--- netgen-4.5.old/libsrc/occ/Partition_Spliter.cxx 2005-07-11 10:33:27.000000000 +0400
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/Partition_Spliter.cxx 2008-02-26 12:41:32.000000000 +0300
|
||||||
|
@@ -29,14 +29,15 @@
|
||||||
|
// $Header$
|
||||||
|
|
||||||
|
//using namespace std;
|
||||||
|
+
|
||||||
|
+#include "utilities.h"
|
||||||
|
+
|
||||||
|
#include "Partition_Inter2d.hxx"
|
||||||
|
#include "Partition_Inter3d.hxx"
|
||||||
|
#include "Partition_Loop2d.hxx"
|
||||||
|
#include "Partition_Loop3d.hxx"
|
||||||
|
#include "Partition_Spliter.ixx"
|
||||||
|
|
||||||
|
-#include "utilities.h"
|
||||||
|
-
|
||||||
|
#include <Precision.hxx>
|
||||||
|
#include <TopAbs_Orientation.hxx>
|
||||||
|
#include <TopExp.hxx>
|
||||||
|
diff -Naur netgen-4.5.old/libsrc/occ/utilities.h netgen-4.5.new/libsrc/occ/utilities.h
|
||||||
|
--- netgen-4.5.old/libsrc/occ/utilities.h 2005-02-11 14:35:43.000000000 +0300
|
||||||
|
+++ netgen-4.5.new/libsrc/occ/utilities.h 2008-02-26 12:28:02.000000000 +0300
|
||||||
|
@@ -33,6 +33,7 @@
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
+#include <iomanip>
|
||||||
|
#include <cstdlib>
|
||||||
|
// #include "SALOME_Log.hxx"
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@ diff -ur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
|
|||||||
#
|
#
|
||||||
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
|
include $(LIBSRC_DIR)/makefile.mach.$(MACHINE)
|
||||||
#
|
#
|
||||||
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
-CPLUSPLUSFLAGS1 = -c -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
||||||
+CPLUSPLUSFLAGS1 = -c -m64 -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
+CPLUSPLUSFLAGS1 = -c -m64 -D_OCC64 -fPIC -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) \
|
||||||
-DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
|
-DOCCGEOMETRY -DOCC52 -DHAVE_IOSTREAM -DHAVE_LIMITS_H
|
||||||
#
|
#
|
||||||
ARFLAGS = r
|
ARFLAGS = r
|
||||||
@ -39,7 +39,7 @@ diff -ur netgen-4.5.old/Makefile netgen-4.5.new/Makefile
|
|||||||
#CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
|
#CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -DOPENGL
|
||||||
|
|
||||||
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -DOPENGL -I$(METISINC)
|
-CPLUSPLUSFLAGS1 = -c -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -DOPENGL -I$(METISINC)
|
||||||
+CPLUSPLUSFLAGS1 = -c -m64 -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -I$(METISINC)
|
+CPLUSPLUSFLAGS1 = -c -m64 -D_OCC64 -I$(LIBSRC_DIR)/include -I$(OCCINC_DIR) -I./ngsolve/include -Ilibsrc/interface -I$(METISINC)
|
||||||
|
|
||||||
LINKFLAGS1 = -lGL -lGLU -lX11 -lXext -lXmu
|
LINKFLAGS1 = -lGL -lGLU -lX11 -lXext -lXmu
|
||||||
#
|
#
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
#
|
||||||
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +20,11 @@
|
|||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
#
|
#
|
||||||
# -* Makefile *-
|
# -* Makefile *-
|
||||||
#
|
|
||||||
# Author : Edward AGAPOV (OCC)
|
# Author : Edward AGAPOV (OCC)
|
||||||
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
# Modified by : Alexander BORODIN (OCN) - autotools usage
|
||||||
# Module : NETGENPLUGIN
|
# Module : NETGENPLUGIN
|
||||||
# Date : 10/01/2004
|
# Date : 10/01/2004
|
||||||
#
|
#
|
||||||
#
|
|
||||||
|
|
||||||
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
||||||
|
|
||||||
# header files
|
# header files
|
||||||
@ -48,6 +47,10 @@ dist_libNETGENEngine_la_SOURCES = \
|
|||||||
NETGENPlugin_Hypothesis_2D.cxx \
|
NETGENPlugin_Hypothesis_2D.cxx \
|
||||||
NETGENPlugin_Hypothesis_2D_i.cxx \
|
NETGENPlugin_Hypothesis_2D_i.cxx \
|
||||||
NETGENPlugin_Mesher.cxx \
|
NETGENPlugin_Mesher.cxx \
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D.cxx \
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D.cxx \
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i.cxx \
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D_i.cxx \
|
||||||
NETGENPlugin_i.cxx
|
NETGENPlugin_i.cxx
|
||||||
|
|
||||||
libNETGENEngine_la_CPPFLAGS = \
|
libNETGENEngine_la_CPPFLAGS = \
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -20,7 +22,7 @@
|
|||||||
//=============================================================================
|
//=============================================================================
|
||||||
// File : NETGENPlugin_Defs.hxx
|
// File : NETGENPlugin_Defs.hxx
|
||||||
// Author : Alexander A. BORODIN
|
// Author : Alexander A. BORODIN
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_DEFS_HXX_
|
#ifndef _NETGENPlugin_DEFS_HXX_
|
||||||
#define _NETGENPlugin_DEFS_HXX_
|
#define _NETGENPlugin_DEFS_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis.cxx
|
// File : NETGENPlugin_Hypothesis.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 28/03/2006
|
// Date : 28/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include <NETGENPlugin_Hypothesis.hxx>
|
#include <NETGENPlugin_Hypothesis.hxx>
|
||||||
#include <utilities.h>
|
#include <utilities.h>
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis.hxx
|
// File : NETGENPlugin_Hypothesis.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 27/03/2006
|
// Date : 27/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_Hypothesis_HXX_
|
#ifndef _NETGENPlugin_Hypothesis_HXX_
|
||||||
#define _NETGENPlugin_Hypothesis_HXX_
|
#define _NETGENPlugin_Hypothesis_HXX_
|
||||||
|
|
||||||
@ -37,8 +38,6 @@
|
|||||||
// Parameters for work of NETGEN
|
// Parameters for work of NETGEN
|
||||||
//
|
//
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis: public SMESH_Hypothesis
|
class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis: public SMESH_Hypothesis
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -89,10 +88,10 @@ public:
|
|||||||
static bool GetDefaultOptimize();
|
static bool GetDefaultOptimize();
|
||||||
|
|
||||||
// Persistence
|
// Persistence
|
||||||
virtual ostream & SaveTo(ostream & save);
|
virtual std::ostream & SaveTo(std::ostream & save);
|
||||||
virtual istream & LoadFrom(istream & load);
|
virtual std::istream & LoadFrom(std::istream & load);
|
||||||
friend NETGENPLUGIN_EXPORT ostream & operator <<(ostream & save, NETGENPlugin_Hypothesis & hyp);
|
friend NETGENPLUGIN_EXPORT std::ostream & operator <<(std::ostream & save, NETGENPlugin_Hypothesis & hyp);
|
||||||
friend NETGENPLUGIN_EXPORT istream & operator >>(istream & load, NETGENPlugin_Hypothesis & hyp);
|
friend NETGENPLUGIN_EXPORT std::istream & operator >>(std::istream & load, NETGENPlugin_Hypothesis & hyp);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Does nothing
|
* \brief Does nothing
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_2D.cxx
|
// File : NETGENPlugin_Hypothesis_2D.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 28/03/2006
|
// Date : 28/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include <NETGENPlugin_Hypothesis_2D.hxx>
|
#include <NETGENPlugin_Hypothesis_2D.hxx>
|
||||||
#include <utilities.h>
|
#include <utilities.h>
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_2D.hxx
|
// File : NETGENPlugin_Hypothesis_2D.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 27/03/2006
|
// Date : 27/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_Hypothesis_2D_HXX_
|
#ifndef _NETGENPlugin_Hypothesis_2D_HXX_
|
||||||
#define _NETGENPlugin_Hypothesis_2D_HXX_
|
#define _NETGENPlugin_Hypothesis_2D_HXX_
|
||||||
|
|
||||||
@ -49,8 +50,8 @@ public:
|
|||||||
static bool GetDefaultQuadAllowed();
|
static bool GetDefaultQuadAllowed();
|
||||||
|
|
||||||
// Persistence
|
// Persistence
|
||||||
virtual ostream & SaveTo(ostream & save);
|
virtual std::ostream & SaveTo(std::ostream & save);
|
||||||
virtual istream & LoadFrom(istream & load);
|
virtual std::istream & LoadFrom(std::istream & load);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _quadAllowed;
|
bool _quadAllowed;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,13 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_2D_i.cxx
|
// File : NETGENPlugin_Hypothesis_2D_i.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 03/04/2006
|
// Date : 03/04/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include "NETGENPlugin_Hypothesis_2D_i.hxx"
|
#include "NETGENPlugin_Hypothesis_2D_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
#include "SMESH_PythonDump.hxx"
|
#include "SMESH_PythonDump.hxx"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_2D_i.hxx
|
// File : NETGENPlugin_Hypothesis_2D_i.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 03/04/2006
|
// Date : 03/04/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_Hypothesis_2D_i_HXX_
|
#ifndef _NETGENPlugin_Hypothesis_2D_i_HXX_
|
||||||
#define _NETGENPlugin_Hypothesis_2D_i_HXX_
|
#define _NETGENPlugin_Hypothesis_2D_i_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,13 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_i.cxx
|
// File : NETGENPlugin_Hypothesis_i.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 03/04/2006
|
// Date : 03/04/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include "NETGENPlugin_Hypothesis_i.hxx"
|
#include "NETGENPlugin_Hypothesis_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
#include "SMESH_PythonDump.hxx"
|
#include "SMESH_PythonDump.hxx"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Hypothesis_i.hxx
|
// File : NETGENPlugin_Hypothesis_i.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 03/04/2006
|
// Date : 03/04/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_Hypothesis_i_HXX_
|
#ifndef _NETGENPlugin_Hypothesis_i_HXX_
|
||||||
#define _NETGENPlugin_Hypothesis_i_HXX_
|
#define _NETGENPlugin_Hypothesis_i_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,21 +19,21 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Mesher.cxx
|
// File : NETGENPlugin_Mesher.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 31/03/2006
|
// Date : 31/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
//
|
||||||
//=============================================================================
|
|
||||||
|
|
||||||
#include "NETGENPlugin_Mesher.hxx"
|
#include "NETGENPlugin_Mesher.hxx"
|
||||||
#include "NETGENPlugin_Hypothesis_2D.hxx"
|
#include "NETGENPlugin_Hypothesis_2D.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_3D.hxx"
|
||||||
|
|
||||||
#include <SMESH_Mesh.hxx>
|
#include <SMESH_Mesh.hxx>
|
||||||
#include <SMESH_Comment.hxx>
|
#include <SMESH_Comment.hxx>
|
||||||
#include <SMESH_ComputeError.hxx>
|
#include <SMESH_ComputeError.hxx>
|
||||||
#include <SMESH_subMesh.hxx>
|
#include <SMESH_subMesh.hxx>
|
||||||
|
#include <SMESH_MesherHelper.hxx>
|
||||||
#include <SMESHDS_Mesh.hxx>
|
#include <SMESHDS_Mesh.hxx>
|
||||||
#include <SMDS_MeshElement.hxx>
|
#include <SMDS_MeshElement.hxx>
|
||||||
#include <SMDS_MeshNode.hxx>
|
#include <SMDS_MeshNode.hxx>
|
||||||
@ -48,6 +49,8 @@
|
|||||||
#include <OSD_Path.hxx>
|
#include <OSD_Path.hxx>
|
||||||
#include <OSD_File.hxx>
|
#include <OSD_File.hxx>
|
||||||
#include <TCollection_AsciiString.hxx>
|
#include <TCollection_AsciiString.hxx>
|
||||||
|
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||||
|
#include <Standard_ErrorHandler.hxx>
|
||||||
|
|
||||||
// Netgen include files
|
// Netgen include files
|
||||||
namespace nglib {
|
namespace nglib {
|
||||||
@ -76,14 +79,25 @@ NETGENPlugin_Mesher::NETGENPlugin_Mesher (SMESH_Mesh* mesh,
|
|||||||
: _mesh (mesh),
|
: _mesh (mesh),
|
||||||
_shape (aShape),
|
_shape (aShape),
|
||||||
_isVolume(isVolume),
|
_isVolume(isVolume),
|
||||||
_optimize(true)
|
_optimize(true),
|
||||||
|
_simpleHyp(NULL)
|
||||||
|
{
|
||||||
|
defaultParameters();
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Initialize global NETGEN parameters with default values
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
|
||||||
|
void NETGENPlugin_Mesher::defaultParameters()
|
||||||
{
|
{
|
||||||
#ifdef WNT
|
#ifdef WNT
|
||||||
netgen::MeshingParameters& mparams = netgen::GlobalMeshingParameters();
|
netgen::MeshingParameters& mparams = netgen::GlobalMeshingParameters();
|
||||||
#else
|
#else
|
||||||
netgen::MeshingParameters& mparams = netgen::mparam;
|
netgen::MeshingParameters& mparams = netgen::mparam;
|
||||||
#endif
|
#endif
|
||||||
// Initialize global NETGEN parameters by default values:
|
|
||||||
// maximal mesh edge size
|
// maximal mesh edge size
|
||||||
mparams.maxh = NETGENPlugin_Hypothesis::GetDefaultMaxSize();
|
mparams.maxh = NETGENPlugin_Hypothesis::GetDefaultMaxSize();
|
||||||
// minimal number of segments per edge
|
// minimal number of segments per edge
|
||||||
@ -132,9 +146,23 @@ void NETGENPlugin_Mesher::SetParameters(const NETGENPlugin_Hypothesis* hyp)
|
|||||||
mparams.quad = static_cast<const NETGENPlugin_Hypothesis_2D*>
|
mparams.quad = static_cast<const NETGENPlugin_Hypothesis_2D*>
|
||||||
(hyp)->GetQuadAllowed() ? 1 : 0;
|
(hyp)->GetQuadAllowed() ? 1 : 0;
|
||||||
_optimize = hyp->GetOptimize();
|
_optimize = hyp->GetOptimize();
|
||||||
|
_simpleHyp = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* Pass simple parameters to NETGEN
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
void NETGENPlugin_Mesher::SetParameters(const NETGENPlugin_SimpleHypothesis_2D* hyp)
|
||||||
|
{
|
||||||
|
_simpleHyp = hyp;
|
||||||
|
if ( _simpleHyp )
|
||||||
|
defaultParameters();
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* Link - a pair of integer numbers
|
* Link - a pair of integer numbers
|
||||||
@ -165,14 +193,18 @@ Standard_Boolean IsEqual(const Link& aLink1, const Link& aLink2)
|
|||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
void NETGENPlugin_Mesher::PrepareOCCgeometry(netgen::OCCGeometry& occgeo,
|
void NETGENPlugin_Mesher::PrepareOCCgeometry(netgen::OCCGeometry& occgeo,
|
||||||
const TopoDS_Shape& shape)
|
const TopoDS_Shape& shape,
|
||||||
|
SMESH_Mesh& mesh,
|
||||||
|
list< SMESH_subMesh* > * meshedSM)
|
||||||
{
|
{
|
||||||
occgeo.shape = shape;
|
|
||||||
occgeo.changed = 1;
|
|
||||||
occgeo.BuildFMap();
|
|
||||||
|
|
||||||
BRepTools::Clean (shape);
|
BRepTools::Clean (shape);
|
||||||
|
try {
|
||||||
|
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||||
|
OCC_CATCH_SIGNALS;
|
||||||
|
#endif
|
||||||
BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh (shape, 0.01, true);
|
BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh (shape, 0.01, true);
|
||||||
|
} catch (Standard_Failure) {
|
||||||
|
}
|
||||||
Bnd_Box bb;
|
Bnd_Box bb;
|
||||||
BRepBndLib::Add (shape, bb);
|
BRepBndLib::Add (shape, bb);
|
||||||
double x1,y1,z1,x2,y2,z2;
|
double x1,y1,z1,x2,y2,z2;
|
||||||
@ -183,6 +215,298 @@ void NETGENPlugin_Mesher::PrepareOCCgeometry(netgen::OCCGeometry& occgeo,
|
|||||||
netgen::Point<3> p1 = netgen::Point<3> (x1,y1,z1);
|
netgen::Point<3> p1 = netgen::Point<3> (x1,y1,z1);
|
||||||
netgen::Point<3> p2 = netgen::Point<3> (x2,y2,z2);
|
netgen::Point<3> p2 = netgen::Point<3> (x2,y2,z2);
|
||||||
occgeo.boundingbox = netgen::Box<3> (p1,p2);
|
occgeo.boundingbox = netgen::Box<3> (p1,p2);
|
||||||
|
|
||||||
|
occgeo.shape = shape;
|
||||||
|
occgeo.changed = 1;
|
||||||
|
//occgeo.BuildFMap();
|
||||||
|
|
||||||
|
// fill maps of shapes of occgeo with not yet meshed subshapes
|
||||||
|
|
||||||
|
// get root submeshes
|
||||||
|
list< SMESH_subMesh* > rootSM;
|
||||||
|
if ( SMESH_subMesh* sm = mesh.GetSubMeshContaining( shape )) {
|
||||||
|
rootSM.push_back( sm );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for ( TopoDS_Iterator it( shape ); it.More(); it.Next() )
|
||||||
|
rootSM.push_back( mesh.GetSubMesh( it.Value() ));
|
||||||
|
}
|
||||||
|
|
||||||
|
// add subshapes of empty submeshes
|
||||||
|
list< SMESH_subMesh* >::iterator rootIt = rootSM.begin(), rootEnd = rootSM.end();
|
||||||
|
for ( ; rootIt != rootEnd; ++rootIt ) {
|
||||||
|
SMESH_subMesh * root = *rootIt;
|
||||||
|
SMESH_subMeshIteratorPtr smIt = root->getDependsOnIterator(/*includeSelf=*/true,
|
||||||
|
/*complexShapeFirst=*/true);
|
||||||
|
// to find a right orientation of subshapes (PAL20462)
|
||||||
|
TopTools_IndexedMapOfShape subShapes;
|
||||||
|
TopExp::MapShapes(root->GetSubShape(), subShapes);
|
||||||
|
while ( smIt->more() ) {
|
||||||
|
SMESH_subMesh* sm = smIt->next();
|
||||||
|
if ( sm->IsEmpty() ) {
|
||||||
|
TopoDS_Shape shape = sm->GetSubShape();
|
||||||
|
if ( shape.ShapeType() != TopAbs_VERTEX )
|
||||||
|
shape = subShapes( subShapes.FindIndex( shape ));// - shape->index->oriented shape
|
||||||
|
switch ( shape.ShapeType() ) {
|
||||||
|
case TopAbs_FACE : occgeo.fmap.Add( shape ); break;
|
||||||
|
case TopAbs_EDGE : occgeo.emap.Add( shape ); break;
|
||||||
|
case TopAbs_VERTEX: occgeo.vmap.Add( shape ); break;
|
||||||
|
case TopAbs_SOLID :occgeo.somap.Add( shape ); break;
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// collect submeshes of meshed shapes
|
||||||
|
else if (meshedSM) {
|
||||||
|
meshedSM->push_back( sm );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
occgeo.facemeshstatus.SetSize (occgeo.fmap.Extent());
|
||||||
|
occgeo.facemeshstatus = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief return id of netgen point corresponding to SMDS node
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
typedef map< const SMDS_MeshNode*, int > TNode2IdMap;
|
||||||
|
|
||||||
|
static int ngNodeId( const SMDS_MeshNode* node,
|
||||||
|
netgen::Mesh& ngMesh,
|
||||||
|
TNode2IdMap& nodeNgIdMap)
|
||||||
|
{
|
||||||
|
int newNgId = ngMesh.GetNP() + 1;
|
||||||
|
|
||||||
|
pair< TNode2IdMap::iterator, bool > it_isNew = nodeNgIdMap.insert( make_pair( node, newNgId ));
|
||||||
|
|
||||||
|
if ( it_isNew.second ) {
|
||||||
|
netgen::MeshPoint p( netgen::Point<3> (node->X(), node->Y(), node->Z()) );
|
||||||
|
ngMesh.AddPoint( p );
|
||||||
|
}
|
||||||
|
return it_isNew.first->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief fill ngMesh with nodes and elements of computed submeshes
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
|
||||||
|
bool NETGENPlugin_Mesher::fillNgMesh(netgen::OCCGeometry& occgeom,
|
||||||
|
netgen::Mesh& ngMesh,
|
||||||
|
vector<SMDS_MeshNode*>& nodeVec,
|
||||||
|
const list< SMESH_subMesh* > & meshedSM)
|
||||||
|
{
|
||||||
|
TNode2IdMap nodeNgIdMap;
|
||||||
|
|
||||||
|
TopTools_MapOfShape visitedShapes;
|
||||||
|
|
||||||
|
SMESH_MesherHelper helper (*_mesh);
|
||||||
|
|
||||||
|
int faceID = occgeom.fmap.Extent();
|
||||||
|
_faceDescriptors.clear();
|
||||||
|
|
||||||
|
list< SMESH_subMesh* >::const_iterator smIt, smEnd = meshedSM.end();
|
||||||
|
for ( smIt = meshedSM.begin(); smIt != smEnd; ++smIt )
|
||||||
|
{
|
||||||
|
SMESH_subMesh* sm = *smIt;
|
||||||
|
if ( !visitedShapes.Add( sm->GetSubShape() ))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
SMESHDS_SubMesh * smDS = sm->GetSubMeshDS();
|
||||||
|
|
||||||
|
switch ( sm->GetSubShape().ShapeType() )
|
||||||
|
{
|
||||||
|
case TopAbs_EDGE: { // EDGE
|
||||||
|
// ----------------------
|
||||||
|
const TopoDS_Edge& geomEdge = TopoDS::Edge( sm->GetSubShape() );
|
||||||
|
|
||||||
|
// Add ng segments for each not meshed face the edge bounds
|
||||||
|
TopTools_MapOfShape visitedAncestors;
|
||||||
|
const TopTools_ListOfShape& ancestors = _mesh->GetAncestors( geomEdge );
|
||||||
|
TopTools_ListIteratorOfListOfShape ancestorIt ( ancestors );
|
||||||
|
for ( ; ancestorIt.More(); ancestorIt.Next() )
|
||||||
|
{
|
||||||
|
const TopoDS_Shape & ans = ancestorIt.Value();
|
||||||
|
if ( ans.ShapeType() != TopAbs_FACE || !visitedAncestors.Add( ans ))
|
||||||
|
continue;
|
||||||
|
const TopoDS_Face& face = TopoDS::Face( ans );
|
||||||
|
|
||||||
|
int faceID = occgeom.fmap.FindIndex( face );
|
||||||
|
if ( faceID < 1 )
|
||||||
|
continue; // meshed face
|
||||||
|
|
||||||
|
// find out orientation of geomEdge within face
|
||||||
|
bool isForwad = false;
|
||||||
|
for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next() ) {
|
||||||
|
if ( geomEdge.IsSame( exp.Current() )) {
|
||||||
|
isForwad = ( exp.Current().Orientation() == geomEdge.Orientation() );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool isQuad = smDS->GetElements()->next()->IsQuadratic();
|
||||||
|
|
||||||
|
// get all nodes from geomEdge
|
||||||
|
StdMeshers_FaceSide fSide( face, geomEdge, _mesh, isForwad, isQuad );
|
||||||
|
const vector<UVPtStruct>& points = fSide.GetUVPtStruct();
|
||||||
|
int i, nbSeg = fSide.NbSegments();
|
||||||
|
|
||||||
|
double otherSeamParam = 0;
|
||||||
|
helper.SetSubShape( face );
|
||||||
|
bool isSeam = helper.IsRealSeam( geomEdge );
|
||||||
|
if ( isSeam )
|
||||||
|
otherSeamParam =
|
||||||
|
helper.GetOtherParam( helper.GetPeriodicIndex() == 1 ? points[0].u : points[0].v );
|
||||||
|
|
||||||
|
// add segments
|
||||||
|
|
||||||
|
int prevNgId = ngNodeId( points[0].node, ngMesh, nodeNgIdMap );
|
||||||
|
|
||||||
|
for ( i = 0; i < nbSeg; ++i )
|
||||||
|
{
|
||||||
|
const UVPtStruct& p1 = points[ i ];
|
||||||
|
const UVPtStruct& p2 = points[ i+1 ];
|
||||||
|
|
||||||
|
netgen::Segment seg;
|
||||||
|
// ng node ids
|
||||||
|
seg.p1 = prevNgId;
|
||||||
|
seg.p2 = prevNgId = ngNodeId( p2.node, ngMesh, nodeNgIdMap );
|
||||||
|
// node param on curve
|
||||||
|
seg.epgeominfo[ 0 ].dist = p1.param;
|
||||||
|
seg.epgeominfo[ 1 ].dist = p2.param;
|
||||||
|
// uv on face
|
||||||
|
seg.epgeominfo[ 0 ].u = p1.u;
|
||||||
|
seg.epgeominfo[ 0 ].v = p1.v;
|
||||||
|
seg.epgeominfo[ 1 ].u = p2.u;
|
||||||
|
seg.epgeominfo[ 1 ].v = p2.v;
|
||||||
|
|
||||||
|
//seg.epgeominfo[ iEnd ].edgenr = edgeID; // = geom.emap.FindIndex(edge);
|
||||||
|
seg.si = faceID; // = geom.fmap.FindIndex (face);
|
||||||
|
seg.edgenr = ngMesh.GetNSeg() + 1; // segment id
|
||||||
|
ngMesh.AddSegment (seg);
|
||||||
|
|
||||||
|
if ( isSeam )
|
||||||
|
{
|
||||||
|
if ( helper.GetPeriodicIndex() == 1 ) {
|
||||||
|
seg.epgeominfo[ 0 ].u = otherSeamParam;
|
||||||
|
seg.epgeominfo[ 1 ].u = otherSeamParam;
|
||||||
|
swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);
|
||||||
|
} else {
|
||||||
|
seg.epgeominfo[ 0 ].v = otherSeamParam;
|
||||||
|
seg.epgeominfo[ 1 ].v = otherSeamParam;
|
||||||
|
swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);
|
||||||
|
}
|
||||||
|
swap (seg.p1, seg.p2);
|
||||||
|
swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);
|
||||||
|
seg.edgenr = ngMesh.GetNSeg() + 1; // segment id
|
||||||
|
ngMesh.AddSegment (seg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // loop on geomEdge ancestors
|
||||||
|
|
||||||
|
break;
|
||||||
|
} // case TopAbs_EDGE
|
||||||
|
|
||||||
|
case TopAbs_FACE: { // FACE
|
||||||
|
// ----------------------
|
||||||
|
const TopoDS_Face& geomFace = TopoDS::Face( sm->GetSubShape() );
|
||||||
|
helper.SetSubShape( geomFace );
|
||||||
|
|
||||||
|
// Find solids the geomFace bounds
|
||||||
|
int solidID1 = 0, solidID2 = 0;
|
||||||
|
const TopTools_ListOfShape& ancestors = _mesh->GetAncestors( geomFace );
|
||||||
|
TopTools_ListIteratorOfListOfShape ancestorIt ( ancestors );
|
||||||
|
for ( ; ancestorIt.More(); ancestorIt.Next() )
|
||||||
|
{
|
||||||
|
const TopoDS_Shape & solid = ancestorIt.Value();
|
||||||
|
if ( solid.ShapeType() == TopAbs_SOLID ) {
|
||||||
|
int id = occgeom.somap.FindIndex ( solid );
|
||||||
|
if ( solidID1 && id != solidID1 ) solidID2 = id;
|
||||||
|
else solidID1 = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
faceID++;
|
||||||
|
_faceDescriptors[ faceID ].first = solidID1;
|
||||||
|
_faceDescriptors[ faceID ].second = solidID2;
|
||||||
|
|
||||||
|
// Orient the face correctly in solidID1 (issue 0020206)
|
||||||
|
bool reverse = false;
|
||||||
|
if ( solidID1 ) {
|
||||||
|
TopoDS_Shape solid = occgeom.somap( solidID1 );
|
||||||
|
for ( TopExp_Explorer f( solid, TopAbs_FACE ); f.More(); f.Next() ) {
|
||||||
|
if ( geomFace.IsSame( f.Current() )) {
|
||||||
|
reverse = SMESH_Algo::IsReversedSubMesh( TopoDS::Face( f.Current()), helper.GetMeshDS() );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add surface elements
|
||||||
|
SMDS_ElemIteratorPtr faces = smDS->GetElements();
|
||||||
|
while ( faces->more() ) {
|
||||||
|
|
||||||
|
const SMDS_MeshElement* f = faces->next();
|
||||||
|
if ( f->NbNodes() % 3 != 0 ) { // not triangle
|
||||||
|
for ( ancestorIt.Initialize(ancestors); ancestorIt.More(); ancestorIt.Next() )
|
||||||
|
if ( ancestorIt.Value().ShapeType() == TopAbs_SOLID ) {
|
||||||
|
sm = _mesh->GetSubMesh( ancestorIt.Value() );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SMESH_ComputeErrorPtr& smError = sm->GetComputeError();
|
||||||
|
smError.reset( new SMESH_ComputeError(COMPERR_BAD_INPUT_MESH,"Not triangle submesh"));
|
||||||
|
smError->myBadElements.push_back( f );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
netgen::Element2d tri(3);
|
||||||
|
tri.SetIndex ( faceID );
|
||||||
|
|
||||||
|
for ( int i = 0; i < 3; ++i ) {
|
||||||
|
const SMDS_MeshNode* node = f->GetNode( i ), * inFaceNode=0;
|
||||||
|
if ( helper.IsSeamShape( node->GetPosition()->GetShapeId() ))
|
||||||
|
if ( helper.IsSeamShape( f->GetNode( i+1 )->GetPosition()->GetShapeId() ))
|
||||||
|
inFaceNode = f->GetNode( i-1 );
|
||||||
|
else
|
||||||
|
inFaceNode = f->GetNode( i+1 );
|
||||||
|
|
||||||
|
gp_XY uv = helper.GetNodeUV( geomFace, node, inFaceNode );
|
||||||
|
if ( reverse ) {
|
||||||
|
tri.GeomInfoPi(3-i).u = uv.X();
|
||||||
|
tri.GeomInfoPi(3-i).v = uv.Y();
|
||||||
|
tri.PNum (3-i) = ngNodeId( node, ngMesh, nodeNgIdMap );
|
||||||
|
} else {
|
||||||
|
tri.GeomInfoPi(i+1).u = uv.X();
|
||||||
|
tri.GeomInfoPi(i+1).v = uv.Y();
|
||||||
|
tri.PNum (i+1) = ngNodeId( node, ngMesh, nodeNgIdMap );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngMesh.AddSurfaceElement (tri);
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
} //
|
||||||
|
|
||||||
|
case TopAbs_VERTEX: { // VERTEX
|
||||||
|
// --------------------------
|
||||||
|
SMDS_NodeIteratorPtr nodeIt = smDS->GetNodes();
|
||||||
|
if ( nodeIt->more() )
|
||||||
|
ngNodeId( nodeIt->next(), ngMesh, nodeNgIdMap );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:;
|
||||||
|
} // switch
|
||||||
|
} // loop on submeshes
|
||||||
|
|
||||||
|
// fill nodeVec
|
||||||
|
nodeVec.resize( ngMesh.GetNP() + 1 );
|
||||||
|
TNode2IdMap::iterator node_NgId, nodeNgIdEnd = nodeNgIdMap.end();
|
||||||
|
for ( node_NgId = nodeNgIdMap.begin(); node_NgId != nodeNgIdEnd; ++node_NgId)
|
||||||
|
nodeVec[ node_NgId->second ] = (SMDS_MeshNode*) node_NgId->first;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -214,31 +538,133 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
netgen::OCCGeometry occgeo;
|
netgen::OCCGeometry occgeo;
|
||||||
PrepareOCCgeometry( occgeo, _shape );
|
list< SMESH_subMesh* > meshedSM;
|
||||||
|
PrepareOCCgeometry( occgeo, _shape, *_mesh, &meshedSM );
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
// Generate the mesh
|
// Generate the mesh
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
netgen::Mesh *ngMesh = NULL;
|
netgen::Mesh *ngMesh = NULL;
|
||||||
// we start always with ANALYSE,
|
|
||||||
// but end depending on _optimize and _isVolume
|
|
||||||
int startWith = netgen::MESHCONST_ANALYSE;
|
|
||||||
int endWith = (_optimize
|
|
||||||
? (_isVolume ? netgen::MESHCONST_OPTVOLUME : netgen::MESHCONST_OPTSURFACE)
|
|
||||||
: netgen::MESHCONST_MESHSURFACE);
|
|
||||||
char *optstr = 0;
|
|
||||||
|
|
||||||
int err = 0;
|
|
||||||
SMESH_Comment comment;
|
SMESH_Comment comment;
|
||||||
|
int err = 0;
|
||||||
|
int nbInitNod = 0;
|
||||||
|
int nbInitSeg = 0;
|
||||||
|
int nbInitFac = 0;
|
||||||
|
// vector of nodes in which node index == netgen ID
|
||||||
|
vector< SMDS_MeshNode* > nodeVec;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// ----------------
|
||||||
|
// compute 1D mesh
|
||||||
|
// ----------------
|
||||||
|
// pass 1D simple parameters to NETGEN
|
||||||
|
if ( _simpleHyp ) {
|
||||||
|
if ( int nbSeg = _simpleHyp->GetNumberOfSegments() ) {
|
||||||
|
// nb of segments
|
||||||
|
mparams.segmentsperedge = nbSeg + 0.1;
|
||||||
|
mparams.maxh = occgeo.boundingbox.Diam();
|
||||||
|
mparams.grading = 0.01;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// segment length
|
||||||
|
mparams.segmentsperedge = 1;
|
||||||
|
mparams.maxh = _simpleHyp->GetLocalLength();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// let netgen create ngMesh and calculate element size on not meshed shapes
|
||||||
|
char *optstr = 0;
|
||||||
|
int startWith = netgen::MESHCONST_ANALYSE;
|
||||||
|
int endWith = netgen::MESHCONST_ANALYSE;
|
||||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||||
if (err) comment << "Error in netgen::OCCGenerateMesh()";
|
if (err) comment << "Error in netgen::OCCGenerateMesh() at MESHCONST_ANALYSE step";
|
||||||
if (!err && !_optimize)
|
|
||||||
|
// fill ngMesh with nodes and elements of computed submeshes
|
||||||
|
err = ! fillNgMesh(occgeo, *ngMesh, nodeVec, meshedSM);
|
||||||
|
nbInitNod = ngMesh->GetNP();
|
||||||
|
nbInitSeg = ngMesh->GetNSeg();
|
||||||
|
nbInitFac = ngMesh->GetNSE();
|
||||||
|
|
||||||
|
// compute mesh
|
||||||
|
if (!err)
|
||||||
{
|
{
|
||||||
// we have got surface mesh only, so generate volume mesh
|
startWith = endWith = netgen::MESHCONST_MESHEDGES;
|
||||||
startWith = endWith = netgen::MESHCONST_MESHVOLUME;
|
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||||
|
if (err) comment << "Error in netgen::OCCGenerateMesh() at 1D mesh generation";
|
||||||
|
}
|
||||||
|
// ---------------------
|
||||||
|
// compute surface mesh
|
||||||
|
// ---------------------
|
||||||
|
if (!err)
|
||||||
|
{
|
||||||
|
// pass 2D simple parameters to NETGEN
|
||||||
|
if ( _simpleHyp ) {
|
||||||
|
if ( double area = _simpleHyp->GetMaxElementArea() ) {
|
||||||
|
// face area
|
||||||
|
mparams.maxh = sqrt(2. * area/sqrt(3.0));
|
||||||
|
mparams.grading = 0.4; // moderate size growth
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// length from edges
|
||||||
|
double length = 0;
|
||||||
|
for ( TopExp_Explorer exp( _shape, TopAbs_EDGE ); exp.More(); exp.Next() )
|
||||||
|
length += SMESH_Algo::EdgeLength( TopoDS::Edge( exp.Current() ));
|
||||||
|
if ( ngMesh->GetNSeg() )
|
||||||
|
mparams.maxh = length / ngMesh->GetNSeg();
|
||||||
|
else
|
||||||
|
mparams.maxh = 1000;
|
||||||
|
mparams.grading = 0.2; // slow size growth
|
||||||
|
}
|
||||||
|
mparams.maxh = min( mparams.maxh, occgeo.boundingbox.Diam()/2 );
|
||||||
|
ngMesh->SetGlobalH (mparams.maxh);
|
||||||
|
netgen::Box<3> bb = occgeo.GetBoundingBox();
|
||||||
|
bb.Increase (bb.Diam()/20);
|
||||||
|
ngMesh->SetLocalH (bb.PMin(), bb.PMax(), mparams.grading);
|
||||||
|
}
|
||||||
|
// let netgen compute 2D mesh
|
||||||
|
startWith = netgen::MESHCONST_MESHSURFACE;
|
||||||
|
endWith = _optimize ? netgen::MESHCONST_OPTSURFACE : netgen::MESHCONST_MESHSURFACE;
|
||||||
|
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||||
|
if (err) comment << "Error in netgen::OCCGenerateMesh() at surface mesh generation";
|
||||||
|
}
|
||||||
|
// ---------------------
|
||||||
|
// generate volume mesh
|
||||||
|
// ---------------------
|
||||||
|
if (!err && _isVolume)
|
||||||
|
{
|
||||||
|
// add ng face descriptors of meshed faces
|
||||||
|
std::map< int, std::pair<int,int> >::iterator fId_soIds = _faceDescriptors.begin();
|
||||||
|
for ( ; fId_soIds != _faceDescriptors.end(); ++fId_soIds ) {
|
||||||
|
int faceID = fId_soIds->first;
|
||||||
|
int solidID1 = fId_soIds->second.first;
|
||||||
|
int solidID2 = fId_soIds->second.second;
|
||||||
|
ngMesh->AddFaceDescriptor (netgen::FaceDescriptor(faceID, solidID1, solidID2, 0));
|
||||||
|
}
|
||||||
|
// pass 3D simple parameters to NETGEN
|
||||||
|
const NETGENPlugin_SimpleHypothesis_3D* simple3d =
|
||||||
|
dynamic_cast< const NETGENPlugin_SimpleHypothesis_3D* > ( _simpleHyp );
|
||||||
|
if ( simple3d ) {
|
||||||
|
if ( double vol = simple3d->GetMaxElementVolume() ) {
|
||||||
|
// max volume
|
||||||
|
mparams.maxh = pow( 72, 1/6. ) * pow( vol, 1/3. );
|
||||||
|
mparams.maxh = min( mparams.maxh, occgeo.boundingbox.Diam()/2 );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// length from faces
|
||||||
|
mparams.maxh = ngMesh->AverageH();
|
||||||
|
}
|
||||||
|
// netgen::ARRAY<double> maxhdom;
|
||||||
|
// maxhdom.SetSize (occgeo.NrSolids());
|
||||||
|
// maxhdom = mparams.maxh;
|
||||||
|
// ngMesh->SetMaxHDomain (maxhdom);
|
||||||
|
ngMesh->SetGlobalH (mparams.maxh);
|
||||||
|
mparams.grading = 0.4;
|
||||||
|
ngMesh->CalcLocalH();
|
||||||
|
}
|
||||||
|
// let netgen compute 3D mesh
|
||||||
|
startWith = netgen::MESHCONST_MESHVOLUME;
|
||||||
|
endWith = _optimize ? netgen::MESHCONST_OPTVOLUME : netgen::MESHCONST_MESHVOLUME;
|
||||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||||
if (err) comment << "Error in netgen::OCCGenerateMesh()";
|
if (err) comment << "Error in netgen::OCCGenerateMesh()";
|
||||||
}
|
}
|
||||||
@ -273,22 +699,21 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
bool isOK = ( !err && (_isVolume ? (nbVol > 0) : (nbFac > 0)) );
|
bool isOK = ( !err && (_isVolume ? (nbVol > 0) : (nbFac > 0)) );
|
||||||
if ( true /*isOK*/ ) // get whatever built
|
if ( true /*isOK*/ ) // get whatever built
|
||||||
{
|
{
|
||||||
// vector of nodes in which node index == netgen ID
|
|
||||||
vector< SMDS_MeshNode* > nodeVec ( nbNod + 1 );
|
|
||||||
// map of nodes assigned to submeshes
|
// map of nodes assigned to submeshes
|
||||||
NCollection_Map<int> pindMap;
|
NCollection_Map<int> pindMap;
|
||||||
// create and insert nodes into nodeVec
|
// create and insert nodes into nodeVec
|
||||||
|
nodeVec.resize( nbNod + 1 );
|
||||||
int i;
|
int i;
|
||||||
for (i = 1; i <= nbNod /*&& isOK*/; ++i )
|
for (i = nbInitNod+1; i <= nbNod /*&& isOK*/; ++i )
|
||||||
{
|
{
|
||||||
const netgen::MeshPoint& ngPoint = ngMesh->Point(i);
|
const netgen::MeshPoint& ngPoint = ngMesh->Point(i);
|
||||||
SMDS_MeshNode* node = NULL;
|
SMDS_MeshNode* node = NULL;
|
||||||
bool newNodeOnVertex = false;
|
bool newNodeOnVertex = false;
|
||||||
TopoDS_Vertex aVert;
|
TopoDS_Vertex aVert;
|
||||||
if (i <= occgeo.vmap.Extent())
|
if (i-nbInitNod <= occgeo.vmap.Extent())
|
||||||
{
|
{
|
||||||
// point on vertex
|
// point on vertex
|
||||||
aVert = TopoDS::Vertex(occgeo.vmap(i));
|
aVert = TopoDS::Vertex(occgeo.vmap(i-nbInitNod));
|
||||||
SMESHDS_SubMesh * submesh = meshDS->MeshElements(aVert);
|
SMESHDS_SubMesh * submesh = meshDS->MeshElements(aVert);
|
||||||
if (submesh)
|
if (submesh)
|
||||||
{
|
{
|
||||||
@ -322,7 +747,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
|
|
||||||
// create mesh segments along geometric edges
|
// create mesh segments along geometric edges
|
||||||
NCollection_Map<Link> linkMap;
|
NCollection_Map<Link> linkMap;
|
||||||
for (i = 1; i <= nbSeg/* && isOK*/; ++i )
|
for (i = nbInitSeg+1; i <= nbSeg/* && isOK*/; ++i )
|
||||||
{
|
{
|
||||||
const netgen::Segment& seg = ngMesh->LineSegment(i);
|
const netgen::Segment& seg = ngMesh->LineSegment(i);
|
||||||
Link link(seg.p1, seg.p2);
|
Link link(seg.p1, seg.p2);
|
||||||
@ -352,7 +777,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
param = param2 * 0.5;
|
param = param2 * 0.5;
|
||||||
if (pindMap.Contains(pind))
|
if (pind <= nbInitNod || pindMap.Contains(pind))
|
||||||
continue;
|
continue;
|
||||||
if (!aEdge.IsNull())
|
if (!aEdge.IsNull())
|
||||||
{
|
{
|
||||||
@ -378,7 +803,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create mesh faces along geometric faces
|
// create mesh faces along geometric faces
|
||||||
for (i = 1; i <= nbFac/* && isOK*/; ++i )
|
for (i = nbInitFac+1; i <= nbFac/* && isOK*/; ++i )
|
||||||
{
|
{
|
||||||
const netgen::Element2d& elem = ngMesh->SurfaceElement(i);
|
const netgen::Element2d& elem = ngMesh->SurfaceElement(i);
|
||||||
int aGeomFaceInd = elem.GetIndex();
|
int aGeomFaceInd = elem.GetIndex();
|
||||||
@ -391,7 +816,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
int pind = elem.PNum(j);
|
int pind = elem.PNum(j);
|
||||||
SMDS_MeshNode* node = nodeVec.at(pind);
|
SMDS_MeshNode* node = nodeVec.at(pind);
|
||||||
nodes.push_back(node);
|
nodes.push_back(node);
|
||||||
if (pindMap.Contains(pind))
|
if (pind <= nbInitNod || pindMap.Contains(pind))
|
||||||
continue;
|
continue;
|
||||||
if (!aFace.IsNull())
|
if (!aFace.IsNull())
|
||||||
{
|
{
|
||||||
@ -445,7 +870,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
int pind = elem.PNum(j);
|
int pind = elem.PNum(j);
|
||||||
SMDS_MeshNode* node = nodeVec.at(pind);
|
SMDS_MeshNode* node = nodeVec.at(pind);
|
||||||
nodes.push_back(node);
|
nodes.push_back(node);
|
||||||
if (pindMap.Contains(pind))
|
if (pind <= nbInitNod || pindMap.Contains(pind))
|
||||||
continue;
|
continue;
|
||||||
if (!aSolid.IsNull())
|
if (!aSolid.IsNull())
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,26 +19,29 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_Mesher.hxx
|
// File : NETGENPlugin_Mesher.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 31/03/2006
|
// Date : 31/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_Mesher_HXX_
|
#ifndef _NETGENPlugin_Mesher_HXX_
|
||||||
#define _NETGENPlugin_Mesher_HXX_
|
#define _NETGENPlugin_Mesher_HXX_
|
||||||
|
|
||||||
#include "NETGENPlugin_Defs.hxx"
|
#include "NETGENPlugin_Defs.hxx"
|
||||||
#include "StdMeshers_FaceSide.hxx"
|
#include "StdMeshers_FaceSide.hxx"
|
||||||
|
#include <map>
|
||||||
|
|
||||||
class SMESH_Mesh;
|
class SMESH_Mesh;
|
||||||
class SMESHDS_Mesh;
|
class SMESHDS_Mesh;
|
||||||
class TopoDS_Shape;
|
class TopoDS_Shape;
|
||||||
class NETGENPlugin_Hypothesis;
|
class NETGENPlugin_Hypothesis;
|
||||||
|
class NETGENPlugin_SimpleHypothesis_2D;
|
||||||
namespace netgen {
|
namespace netgen {
|
||||||
class OCCGeometry;
|
class OCCGeometry;
|
||||||
|
class Mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -53,19 +57,35 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_Mesher
|
|||||||
const bool isVolume);
|
const bool isVolume);
|
||||||
|
|
||||||
void SetParameters(const NETGENPlugin_Hypothesis* hyp);
|
void SetParameters(const NETGENPlugin_Hypothesis* hyp);
|
||||||
|
void SetParameters(const NETGENPlugin_SimpleHypothesis_2D* hyp);
|
||||||
|
|
||||||
bool Compute();
|
bool Compute();
|
||||||
|
|
||||||
static void PrepareOCCgeometry(netgen::OCCGeometry& occgeom,
|
static void PrepareOCCgeometry(netgen::OCCGeometry& occgeom,
|
||||||
const TopoDS_Shape& shape);
|
const TopoDS_Shape& shape,
|
||||||
|
SMESH_Mesh& mesh,
|
||||||
|
std::list< SMESH_subMesh* > * meshedSM=0);
|
||||||
|
|
||||||
static void RemoveTmpFiles();
|
static void RemoveTmpFiles();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
bool fillNgMesh(netgen::OCCGeometry& occgeom,
|
||||||
|
netgen::Mesh& ngMesh,
|
||||||
|
std::vector<SMDS_MeshNode*>& nodeVec,
|
||||||
|
const std::list< SMESH_subMesh* > & meshedSM);
|
||||||
|
|
||||||
|
void defaultParameters();
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SMESH_Mesh* _mesh;
|
SMESH_Mesh* _mesh;
|
||||||
const TopoDS_Shape& _shape;
|
const TopoDS_Shape& _shape;
|
||||||
bool _isVolume;
|
bool _isVolume;
|
||||||
bool _optimize;
|
bool _optimize;
|
||||||
|
|
||||||
|
const NETGENPlugin_SimpleHypothesis_2D * _simpleHyp;
|
||||||
|
std::map< int, std::pair<int,int> > _faceDescriptors;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,15 +19,17 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D.cxx
|
// File : NETGENPlugin_NETGEN_2D.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 20/03/2006
|
// Date : 20/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_2D.hxx"
|
#include "NETGENPlugin_NETGEN_2D.hxx"
|
||||||
#include "NETGENPlugin_Hypothesis_2D.hxx"
|
#include "NETGENPlugin_Hypothesis_2D.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D.hxx"
|
||||||
#include "NETGENPlugin_Mesher.hxx"
|
#include "NETGENPlugin_Mesher.hxx"
|
||||||
|
|
||||||
#include <SMESH_Gen.hxx>
|
#include <SMESH_Gen.hxx>
|
||||||
@ -53,9 +56,11 @@ NETGENPlugin_NETGEN_2D::NETGENPlugin_NETGEN_2D(int hypId, int studyId,
|
|||||||
_name = "NETGEN_2D";
|
_name = "NETGEN_2D";
|
||||||
_shapeType = (1 << TopAbs_FACE); // 1 bit /shape type
|
_shapeType = (1 << TopAbs_FACE); // 1 bit /shape type
|
||||||
_compatibleHypothesis.push_back("NETGEN_Parameters_2D");
|
_compatibleHypothesis.push_back("NETGEN_Parameters_2D");
|
||||||
|
_compatibleHypothesis.push_back("NETGEN_SimpleParameters_2D");
|
||||||
_requireDescretBoundary = false;
|
_requireDescretBoundary = false;
|
||||||
_onlyUnaryInput = false;
|
_onlyUnaryInput = false;
|
||||||
_hypothesis = NULL;
|
_hypothesis = NULL;
|
||||||
|
_supportSubmeshes = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -82,9 +87,6 @@ bool NETGENPlugin_NETGEN_2D::CheckHypothesis
|
|||||||
{
|
{
|
||||||
_hypothesis = NULL;
|
_hypothesis = NULL;
|
||||||
|
|
||||||
list<const SMESHDS_Hypothesis*>::const_iterator itl;
|
|
||||||
const SMESHDS_Hypothesis* theHyp;
|
|
||||||
|
|
||||||
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
|
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
|
||||||
int nbHyp = hyps.size();
|
int nbHyp = hyps.size();
|
||||||
if (!nbHyp)
|
if (!nbHyp)
|
||||||
@ -92,20 +94,20 @@ bool NETGENPlugin_NETGEN_2D::CheckHypothesis
|
|||||||
aStatus = SMESH_Hypothesis::HYP_OK;
|
aStatus = SMESH_Hypothesis::HYP_OK;
|
||||||
return true; // can work with no hypothesis
|
return true; // can work with no hypothesis
|
||||||
}
|
}
|
||||||
|
// use only the first hypothesis
|
||||||
itl = hyps.begin();
|
const SMESHDS_Hypothesis* theHyp = hyps.front();
|
||||||
theHyp = (*itl); // use only the first hypothesis
|
|
||||||
|
|
||||||
string hypName = theHyp->GetName();
|
string hypName = theHyp->GetName();
|
||||||
|
if ( find( _compatibleHypothesis.begin(), _compatibleHypothesis.end(),
|
||||||
if (hypName == "NETGEN_Parameters_2D")
|
hypName ) != _compatibleHypothesis.end() )
|
||||||
{
|
{
|
||||||
_hypothesis = static_cast<const NETGENPlugin_Hypothesis_2D*> (theHyp);
|
_hypothesis = theHyp;
|
||||||
ASSERT(_hypothesis);
|
|
||||||
aStatus = SMESH_Hypothesis::HYP_OK;
|
aStatus = SMESH_Hypothesis::HYP_OK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
|
aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
|
||||||
|
}
|
||||||
|
|
||||||
return aStatus == SMESH_Hypothesis::HYP_OK;
|
return aStatus == SMESH_Hypothesis::HYP_OK;
|
||||||
}
|
}
|
||||||
@ -123,6 +125,7 @@ bool NETGENPlugin_NETGEN_2D::Compute(SMESH_Mesh& aMesh,
|
|||||||
|
|
||||||
NETGENPlugin_Mesher mesher(&aMesh, aShape, false);
|
NETGENPlugin_Mesher mesher(&aMesh, aShape, false);
|
||||||
// NETGENPlugin_Mesher mesher(meshDS, aShape, false);
|
// NETGENPlugin_Mesher mesher(meshDS, aShape, false);
|
||||||
mesher.SetParameters(_hypothesis);
|
mesher.SetParameters(dynamic_cast<const NETGENPlugin_Hypothesis*>(_hypothesis));
|
||||||
|
mesher.SetParameters(dynamic_cast<const NETGENPlugin_SimpleHypothesis_2D*>(_hypothesis));
|
||||||
return mesher.Compute();
|
return mesher.Compute();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D.hxx
|
// File : NETGENPlugin_NETGEN_2D.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 20/03/2006
|
// Date : 20/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D_HXX_
|
#define _NETGENPlugin_NETGEN_2D_HXX_
|
||||||
|
|
||||||
@ -36,7 +37,7 @@
|
|||||||
#include "StdMeshers_MaxElementVolume.hxx"
|
#include "StdMeshers_MaxElementVolume.hxx"
|
||||||
#include "Utils_SALOME_Exception.hxx"
|
#include "Utils_SALOME_Exception.hxx"
|
||||||
|
|
||||||
class NETGENPlugin_Hypothesis_2D;
|
//class NETGENPlugin_Hypothesis_2D;
|
||||||
|
|
||||||
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D: public SMESH_2D_Algo
|
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D: public SMESH_2D_Algo
|
||||||
{
|
{
|
||||||
@ -52,7 +53,7 @@ public:
|
|||||||
const TopoDS_Shape& aShape);
|
const TopoDS_Shape& aShape);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const NETGENPlugin_Hypothesis_2D* _hypothesis;
|
const SMESHDS_Hypothesis* _hypothesis;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,15 +19,17 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D3D.cxx
|
// File : NETGENPlugin_NETGEN_2D3D.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 20/03/2006
|
// Date : 20/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_2D3D.hxx"
|
#include "NETGENPlugin_NETGEN_2D3D.hxx"
|
||||||
#include "NETGENPlugin_Hypothesis.hxx"
|
#include "NETGENPlugin_Hypothesis.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D.hxx"
|
||||||
#include "NETGENPlugin_Mesher.hxx"
|
#include "NETGENPlugin_Mesher.hxx"
|
||||||
|
|
||||||
#include <SMESH_Gen.hxx>
|
#include <SMESH_Gen.hxx>
|
||||||
@ -53,9 +56,11 @@ NETGENPlugin_NETGEN_2D3D::NETGENPlugin_NETGEN_2D3D(int hypId, int studyId,
|
|||||||
_name = "NETGEN_2D3D";
|
_name = "NETGEN_2D3D";
|
||||||
_shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type
|
_shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type
|
||||||
_compatibleHypothesis.push_back("NETGEN_Parameters");
|
_compatibleHypothesis.push_back("NETGEN_Parameters");
|
||||||
|
_compatibleHypothesis.push_back("NETGEN_SimpleParameters_3D");
|
||||||
_requireDescretBoundary = false;
|
_requireDescretBoundary = false;
|
||||||
_onlyUnaryInput = false;
|
_onlyUnaryInput = false;
|
||||||
_hypothesis = NULL;
|
_hypothesis = NULL;
|
||||||
|
_supportSubmeshes = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -84,9 +89,6 @@ bool NETGENPlugin_NETGEN_2D3D::CheckHypothesis
|
|||||||
|
|
||||||
_hypothesis = NULL;
|
_hypothesis = NULL;
|
||||||
|
|
||||||
list<const SMESHDS_Hypothesis*>::const_iterator itl;
|
|
||||||
const SMESHDS_Hypothesis* theHyp;
|
|
||||||
|
|
||||||
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
|
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
|
||||||
int nbHyp = hyps.size();
|
int nbHyp = hyps.size();
|
||||||
if (!nbHyp)
|
if (!nbHyp)
|
||||||
@ -95,19 +97,20 @@ bool NETGENPlugin_NETGEN_2D3D::CheckHypothesis
|
|||||||
return true; // can work with no hypothesis
|
return true; // can work with no hypothesis
|
||||||
}
|
}
|
||||||
|
|
||||||
itl = hyps.begin();
|
const SMESHDS_Hypothesis* theHyp = hyps.front(); // use only the first hypothesis
|
||||||
theHyp = (*itl); // use only the first hypothesis
|
|
||||||
|
|
||||||
string hypName = theHyp->GetName();
|
string hypName = theHyp->GetName();
|
||||||
|
|
||||||
if (hypName == "NETGEN_Parameters")
|
if ( find( _compatibleHypothesis.begin(), _compatibleHypothesis.end(),
|
||||||
|
hypName ) != _compatibleHypothesis.end() )
|
||||||
{
|
{
|
||||||
_hypothesis = static_cast<const NETGENPlugin_Hypothesis*> (theHyp);
|
_hypothesis = theHyp;
|
||||||
ASSERT(_hypothesis);
|
|
||||||
aStatus = SMESH_Hypothesis::HYP_OK;
|
aStatus = SMESH_Hypothesis::HYP_OK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
|
aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
|
||||||
|
}
|
||||||
|
|
||||||
return aStatus == SMESH_Hypothesis::HYP_OK;
|
return aStatus == SMESH_Hypothesis::HYP_OK;
|
||||||
}
|
}
|
||||||
@ -125,6 +128,7 @@ bool NETGENPlugin_NETGEN_2D3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
|
|
||||||
NETGENPlugin_Mesher mesher(&aMesh, aShape, true);
|
NETGENPlugin_Mesher mesher(&aMesh, aShape, true);
|
||||||
// NETGENPlugin_Mesher mesher(meshDS, aShape, true);
|
// NETGENPlugin_Mesher mesher(meshDS, aShape, true);
|
||||||
mesher.SetParameters(_hypothesis);
|
mesher.SetParameters(dynamic_cast<const NETGENPlugin_Hypothesis*>(_hypothesis));
|
||||||
|
mesher.SetParameters(dynamic_cast<const NETGENPlugin_SimpleHypothesis_2D*>(_hypothesis));
|
||||||
return mesher.Compute();
|
return mesher.Compute();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : C++ implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,14 +19,14 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : C++ implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D3D.hxx
|
// File : NETGENPlugin_NETGEN_2D3D.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Date : 20/03/2006
|
// Date : 20/03/2006
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D3D_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D3D_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D3D_HXX_
|
#define _NETGENPlugin_NETGEN_2D3D_HXX_
|
||||||
|
|
||||||
@ -36,7 +37,7 @@
|
|||||||
#include "StdMeshers_MaxElementVolume.hxx"
|
#include "StdMeshers_MaxElementVolume.hxx"
|
||||||
#include "Utils_SALOME_Exception.hxx"
|
#include "Utils_SALOME_Exception.hxx"
|
||||||
|
|
||||||
class NETGENPlugin_Hypothesis;
|
//class NETGENPlugin_Hypothesis;
|
||||||
|
|
||||||
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D3D: public SMESH_3D_Algo
|
class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_2D3D: public SMESH_3D_Algo
|
||||||
{
|
{
|
||||||
@ -52,7 +53,7 @@ public:
|
|||||||
const TopoDS_Shape& aShape);
|
const TopoDS_Shape& aShape);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const NETGENPlugin_Hypothesis* _hypothesis;
|
const SMESHDS_Hypothesis* _hypothesis;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : idl implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,12 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : idl implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D3D_i.cxx
|
// File : NETGENPlugin_NETGEN_2D3D_i.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_2D3D_i.hxx"
|
#include "NETGENPlugin_NETGEN_2D3D_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : idl implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,12 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : idl implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D3D_i.hxx
|
// File : NETGENPlugin_NETGEN_2D3D_i.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D3D_I_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D3D_I_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D3D_I_HXX_
|
#define _NETGENPlugin_NETGEN_2D3D_I_HXX_
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -20,8 +22,7 @@
|
|||||||
// File : NETGENPlugin_NETGEN_2D_ONLY.cxx
|
// File : NETGENPlugin_NETGEN_2D_ONLY.cxx
|
||||||
// Author : Edward AGAPOV (OCC)
|
// Author : Edward AGAPOV (OCC)
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
|
//
|
||||||
|
|
||||||
#include "NETGENPlugin_NETGEN_2D_ONLY.hxx"
|
#include "NETGENPlugin_NETGEN_2D_ONLY.hxx"
|
||||||
|
|
||||||
#include "NETGENPlugin_Mesher.hxx"
|
#include "NETGENPlugin_Mesher.hxx"
|
||||||
@ -114,11 +115,15 @@ bool NETGENPlugin_NETGEN_2D_ONLY::CheckHypothesis (SMESH_Mesh& aMesh,
|
|||||||
_hypLengthFromEdges = 0;
|
_hypLengthFromEdges = 0;
|
||||||
_hypQuadranglePreference = 0;
|
_hypQuadranglePreference = 0;
|
||||||
|
|
||||||
aStatus = HYP_MISSING;
|
|
||||||
|
|
||||||
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape, false);
|
const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape, false);
|
||||||
|
|
||||||
if (hyps.empty()) return false; // can't work with no hypothesis
|
if (hyps.empty())
|
||||||
|
{
|
||||||
|
aStatus = HYP_OK; //SMESH_Hypothesis::HYP_MISSING;
|
||||||
|
return true; // (PAL13464) can work with no hypothesis, LengthFromEdges is default one
|
||||||
|
}
|
||||||
|
|
||||||
|
aStatus = HYP_MISSING;
|
||||||
|
|
||||||
list<const SMESHDS_Hypothesis*>::const_iterator ith;
|
list<const SMESHDS_Hypothesis*>::const_iterator ith;
|
||||||
for (ith = hyps.begin(); ith != hyps.end(); ++ith )
|
for (ith = hyps.begin(); ith != hyps.end(); ++ith )
|
||||||
@ -314,7 +319,9 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh,
|
|||||||
netgen::Mesh * ngMesh = new netgen::Mesh ();
|
netgen::Mesh * ngMesh = new netgen::Mesh ();
|
||||||
|
|
||||||
netgen::OCCGeometry occgeo;
|
netgen::OCCGeometry occgeo;
|
||||||
NETGENPlugin_Mesher::PrepareOCCgeometry( occgeo, F );
|
NETGENPlugin_Mesher::PrepareOCCgeometry( occgeo, F, aMesh );
|
||||||
|
occgeo.fmap.Clear(); // face can be reversed, which is wrong in this case (issue 19978)
|
||||||
|
occgeo.fmap.Add( F );
|
||||||
|
|
||||||
vector< const SMDS_MeshNode* > nodeVec;
|
vector< const SMDS_MeshNode* > nodeVec;
|
||||||
problem = AddSegmentsToMesh( *ngMesh, occgeo, wires, helper, nodeVec );
|
problem = AddSegmentsToMesh( *ngMesh, occgeo, wires, helper, nodeVec );
|
||||||
@ -328,7 +335,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh,
|
|||||||
// --------------------
|
// --------------------
|
||||||
|
|
||||||
double edgeLength = 0;
|
double edgeLength = 0;
|
||||||
if (_hypLengthFromEdges)
|
if (_hypLengthFromEdges || !_hypLengthFromEdges && !_hypMaxElementArea)
|
||||||
{
|
{
|
||||||
int nbSegments = 0;
|
int nbSegments = 0;
|
||||||
for ( int iW = 0; iW < nbWires; ++iW )
|
for ( int iW = 0; iW < nbWires; ++iW )
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -20,7 +22,7 @@
|
|||||||
// File : NETGENPlugin_NETGEN_2D_ONLY.hxx
|
// File : NETGENPlugin_NETGEN_2D_ONLY.hxx
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// Author : Edward AGAPOV (OCC)
|
// Author : Edward AGAPOV (OCC)
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D_ONLY_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D_ONLY_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D_ONLY_HXX_
|
#define _NETGENPlugin_NETGEN_2D_ONLY_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -19,12 +19,11 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
||||||
//
|
|
||||||
// File : NETGENPlugin_NETGEN_2D_ONLY_i.cxx
|
// File : NETGENPlugin_NETGEN_2D_ONLY_i.cxx
|
||||||
// Author : Edward AGAPOV (OCC)
|
// Author : Edward AGAPOV (OCC)
|
||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_2D_ONLY_i.hxx"
|
#include "NETGENPlugin_NETGEN_2D_ONLY_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -19,12 +19,11 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
||||||
//
|
|
||||||
// File : NETGENPlugin_NETGEN_2D_ONLY_i.cxx
|
// File : NETGENPlugin_NETGEN_2D_ONLY_i.cxx
|
||||||
// Author : Edward AGAPOV (OCC)
|
// Author : Edward AGAPOV (OCC)
|
||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D_ONLY_I_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D_ONLY_I_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D_ONLY_I_HXX_
|
#define _NETGENPlugin_NETGEN_2D_ONLY_I_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : idl implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,12 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : idl implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D_i.cxx
|
// File : NETGENPlugin_NETGEN_2D_i.cxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_2D_i.hxx"
|
#include "NETGENPlugin_NETGEN_2D_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// NETGENPlugin : idl implementation
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2006 OPEN CASCADE, CEA/DEN, EDF R&D
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -18,12 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// NETGENPlugin : idl implementation
|
||||||
// File : NETGENPlugin_NETGEN_2D_i.hxx
|
// File : NETGENPlugin_NETGEN_2D_i.hxx
|
||||||
// Author : Michael Sazonov (OCN)
|
// Author : Michael Sazonov (OCN)
|
||||||
// Module : NETGENPlugin
|
// Module : NETGENPlugin
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_2D_I_HXX_
|
#ifndef _NETGENPlugin_NETGEN_2D_I_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_2D_I_HXX_
|
#define _NETGENPlugin_NETGEN_2D_I_HXX_
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -23,9 +25,8 @@
|
|||||||
// Created : lundi 27 Janvier 2003
|
// Created : lundi 27 Janvier 2003
|
||||||
// Author : Nadir BOUHAMOU (CEA)
|
// Author : Nadir BOUHAMOU (CEA)
|
||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// Copyright : CEA 2003
|
|
||||||
// $Header$
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_3D.hxx"
|
#include "NETGENPlugin_NETGEN_3D.hxx"
|
||||||
|
|
||||||
#include "NETGENPlugin_Mesher.hxx"
|
#include "NETGENPlugin_Mesher.hxx"
|
||||||
@ -38,6 +39,8 @@
|
|||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
#include "SMESH_Mesh.hxx"
|
#include "SMESH_Mesh.hxx"
|
||||||
#include "SMESH_MesherHelper.hxx"
|
#include "SMESH_MesherHelper.hxx"
|
||||||
|
#include "SMESH_MeshEditor.hxx"
|
||||||
|
#include "StdMeshers_QuadToTriaAdaptor.hxx"
|
||||||
|
|
||||||
#include <BRep_Tool.hxx>
|
#include <BRep_Tool.hxx>
|
||||||
#include <TopExp.hxx>
|
#include <TopExp.hxx>
|
||||||
@ -61,6 +64,7 @@ namespace nglib {
|
|||||||
#include <nglib.h>
|
#include <nglib.h>
|
||||||
}
|
}
|
||||||
using namespace nglib;
|
using namespace nglib;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
@ -80,6 +84,8 @@ NETGENPlugin_NETGEN_3D::NETGENPlugin_NETGEN_3D(int hypId, int studyId,
|
|||||||
_maxElementVolume = 0.;
|
_maxElementVolume = 0.;
|
||||||
|
|
||||||
_hypMaxElementVolume = NULL;
|
_hypMaxElementVolume = NULL;
|
||||||
|
|
||||||
|
_requireShape = false; // can work without shape
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
@ -168,24 +174,34 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
SMESH_MesherHelper* myTool = &helper;
|
SMESH_MesherHelper* myTool = &helper;
|
||||||
bool _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
|
bool _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
|
||||||
|
|
||||||
typedef map< const SMDS_MeshNode*, int> TNodeToIDMap;
|
typedef map< const SMDS_MeshNode*, int, TIDCompare< SMDS_MeshNode> > TNodeToIDMap;
|
||||||
TNodeToIDMap nodeToNetgenID;
|
TNodeToIDMap nodeToNetgenID;
|
||||||
list< const SMDS_MeshElement* > triangles;
|
list< const SMDS_MeshElement* > triangles;
|
||||||
list< bool > isReversed; // orientation of triangles
|
list< bool > isReversed; // orientation of triangles
|
||||||
|
|
||||||
|
TopAbs_ShapeEnum mainType = aMesh.GetShapeToMesh().ShapeType();
|
||||||
|
bool checkReverse = ( mainType == TopAbs_COMPOUND || mainType == TopAbs_COMPSOLID );
|
||||||
|
|
||||||
// for the degeneraged edge: ignore all but one node on it;
|
// for the degeneraged edge: ignore all but one node on it;
|
||||||
// map storing ids of degen edges and vertices and their netgen id:
|
// map storing ids of degen edges and vertices and their netgen id:
|
||||||
map< int, int* > degenShapeIdToPtrNgId;
|
map< int, int* > degenShapeIdToPtrNgId;
|
||||||
map< int, int* >::iterator shId_ngId;
|
map< int, int* >::iterator shId_ngId;
|
||||||
list< int > degenNgIds;
|
list< int > degenNgIds;
|
||||||
|
|
||||||
|
StdMeshers_QuadToTriaAdaptor Adaptor;
|
||||||
|
Adaptor.Compute(aMesh,aShape);
|
||||||
|
|
||||||
for (TopExp_Explorer exp(aShape,TopAbs_FACE);exp.More();exp.Next())
|
for (TopExp_Explorer exp(aShape,TopAbs_FACE);exp.More();exp.Next())
|
||||||
{
|
{
|
||||||
const TopoDS_Shape& aShapeFace = exp.Current();
|
const TopoDS_Shape& aShapeFace = exp.Current();
|
||||||
const SMESHDS_SubMesh * aSubMeshDSFace = meshDS->MeshElements( aShapeFace );
|
const SMESHDS_SubMesh * aSubMeshDSFace = meshDS->MeshElements( aShapeFace );
|
||||||
if ( aSubMeshDSFace )
|
if ( aSubMeshDSFace )
|
||||||
{
|
{
|
||||||
bool isRev = SMESH_Algo::IsReversedSubMesh( TopoDS::Face(aShapeFace), meshDS );
|
bool isRev = false;
|
||||||
|
if ( checkReverse && helper.NbAncestors(aShapeFace, aMesh, aShape.ShapeType()) > 1 )
|
||||||
|
// IsReversedSubMesh() can work wrong on strongly curved faces,
|
||||||
|
// so we use it as less as possible
|
||||||
|
isRev = SMESH_Algo::IsReversedSubMesh( TopoDS::Face(aShapeFace), meshDS );
|
||||||
|
|
||||||
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
|
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
|
||||||
while ( iteratorElem->more() ) // loop on elements on a face
|
while ( iteratorElem->more() ) // loop on elements on a face
|
||||||
@ -195,9 +211,31 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
if ( !elem )
|
if ( !elem )
|
||||||
return error( COMPERR_BAD_INPUT_MESH, "Null element encounters");
|
return error( COMPERR_BAD_INPUT_MESH, "Null element encounters");
|
||||||
bool isTraingle = ( elem->NbNodes()==3 || (_quadraticMesh && elem->NbNodes()==6 ));
|
bool isTraingle = ( elem->NbNodes()==3 || (_quadraticMesh && elem->NbNodes()==6 ));
|
||||||
if ( !isTraingle )
|
if ( !isTraingle ) {
|
||||||
|
//return error( COMPERR_BAD_INPUT_MESH,
|
||||||
|
// SMESH_Comment("Not triangle element ")<<elem->GetID());
|
||||||
|
// using adaptor
|
||||||
|
std::list<const SMDS_FaceOfNodes*> faces = Adaptor.GetTriangles(elem);
|
||||||
|
if(faces.size()==0) {
|
||||||
return error( COMPERR_BAD_INPUT_MESH,
|
return error( COMPERR_BAD_INPUT_MESH,
|
||||||
SMESH_Comment("Not triangle element ")<<elem->GetID());
|
SMESH_Comment("Not triangles in adaptor for element ")<<elem->GetID());
|
||||||
|
}
|
||||||
|
std::list<const SMDS_FaceOfNodes*>::iterator itf = faces.begin();
|
||||||
|
for(; itf!=faces.end(); itf++ ) {
|
||||||
|
triangles.push_back( (*itf) );
|
||||||
|
isReversed.push_back( isRev );
|
||||||
|
// put triange's nodes to nodeToNetgenID map
|
||||||
|
SMDS_ElemIteratorPtr triangleNodesIt = (*itf)->nodesIterator();
|
||||||
|
while ( triangleNodesIt->more() ) {
|
||||||
|
const SMDS_MeshNode * node =
|
||||||
|
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
||||||
|
if(myTool->IsMedium(node))
|
||||||
|
continue;
|
||||||
|
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
// keep a triangle
|
// keep a triangle
|
||||||
triangles.push_back( elem );
|
triangles.push_back( elem );
|
||||||
isReversed.push_back( isRev );
|
isReversed.push_back( isRev );
|
||||||
@ -210,6 +248,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
continue;
|
continue;
|
||||||
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#ifdef _DEBUG_
|
#ifdef _DEBUG_
|
||||||
// check if a trainge is degenerated
|
// check if a trainge is degenerated
|
||||||
areaControl.GetPoints( elem, nodesCoords );
|
areaControl.GetPoints( elem, nodesCoords );
|
||||||
@ -244,7 +283,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
int Netgen_NbOfNodes = 0;
|
int Netgen_NbOfNodes = 0;
|
||||||
int Netgen_param2ndOrder = 0;
|
int Netgen_param2ndOrder = 0;
|
||||||
double Netgen_paramFine = 1.;
|
double Netgen_paramFine = 1.;
|
||||||
double Netgen_paramSize = _maxElementVolume;
|
double Netgen_paramSize = pow( 72, 1/6. ) * pow( _maxElementVolume, 1/3. );
|
||||||
|
|
||||||
double Netgen_point[3];
|
double Netgen_point[3];
|
||||||
int Netgen_triangle[3];
|
int Netgen_triangle[3];
|
||||||
@ -301,8 +340,10 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
(Netgen_triangle[0] != Netgen_triangle[1] &&
|
(Netgen_triangle[0] != Netgen_triangle[1] &&
|
||||||
Netgen_triangle[0] != Netgen_triangle[2] &&
|
Netgen_triangle[0] != Netgen_triangle[2] &&
|
||||||
Netgen_triangle[2] != Netgen_triangle[1] ))
|
Netgen_triangle[2] != Netgen_triangle[1] ))
|
||||||
|
{
|
||||||
Ng_AddSurfaceElement(Netgen_mesh, NG_TRIG, Netgen_triangle);
|
Ng_AddSurfaceElement(Netgen_mesh, NG_TRIG, Netgen_triangle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
// Generate the volume mesh
|
// Generate the volume mesh
|
||||||
@ -413,19 +454,40 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
else if (MeshType == SMESH_MesherHelper::QUADRATIC)
|
else if (MeshType == SMESH_MesherHelper::QUADRATIC)
|
||||||
_quadraticMesh = true;
|
_quadraticMesh = true;
|
||||||
|
|
||||||
SMDS_FaceIteratorPtr iteratorFace = MeshDS->facesIterator();
|
StdMeshers_QuadToTriaAdaptor Adaptor;
|
||||||
|
Adaptor.Compute(aMesh);
|
||||||
|
|
||||||
while(iteratorFace->more())
|
SMDS_FaceIteratorPtr iteratorFace = MeshDS->facesIterator();
|
||||||
{
|
while(iteratorFace->more()) {
|
||||||
// check element
|
// check element
|
||||||
const SMDS_MeshElement* elem = iteratorFace->next();
|
const SMDS_MeshElement* elem = iteratorFace->next();
|
||||||
if ( !elem )
|
if ( !elem )
|
||||||
return error( COMPERR_BAD_INPUT_MESH, "Null element encounters");
|
return error( COMPERR_BAD_INPUT_MESH, "Null element encounters");
|
||||||
bool isTraingle = ( elem->NbNodes()==3 || (_quadraticMesh && elem->NbNodes()==6 ));
|
bool isTraingle = ( elem->NbNodes()==3 || (_quadraticMesh && elem->NbNodes()==6 ));
|
||||||
if ( !isTraingle )
|
if ( !isTraingle ) {
|
||||||
|
//return error( COMPERR_BAD_INPUT_MESH,
|
||||||
|
// SMESH_Comment("Not triangle element ")<<elem->GetID());
|
||||||
|
// using adaptor
|
||||||
|
std::list<const SMDS_FaceOfNodes*> faces = Adaptor.GetTriangles(elem);
|
||||||
|
if(faces.size()==0) {
|
||||||
return error( COMPERR_BAD_INPUT_MESH,
|
return error( COMPERR_BAD_INPUT_MESH,
|
||||||
SMESH_Comment("Not triangle element ")<<elem->GetID());
|
SMESH_Comment("Not triangles in adaptor for element ")<<elem->GetID());
|
||||||
|
}
|
||||||
|
std::list<const SMDS_FaceOfNodes*>::iterator itf = faces.begin();
|
||||||
|
for(; itf!=faces.end(); itf++ ) {
|
||||||
|
triangles.push_back( (*itf) );
|
||||||
|
// put triange's nodes to nodeToNetgenID map
|
||||||
|
SMDS_ElemIteratorPtr triangleNodesIt = (*itf)->nodesIterator();
|
||||||
|
while ( triangleNodesIt->more() ) {
|
||||||
|
const SMDS_MeshNode * node =
|
||||||
|
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
||||||
|
if(aHelper->IsMedium(node))
|
||||||
|
continue;
|
||||||
|
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
// keep a triangle
|
// keep a triangle
|
||||||
triangles.push_back( elem );
|
triangles.push_back( elem );
|
||||||
// put elem nodes to nodeToNetgenID map
|
// put elem nodes to nodeToNetgenID map
|
||||||
@ -435,10 +497,10 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
|
||||||
if(aHelper->IsMedium(node))
|
if(aHelper->IsMedium(node))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
nodeToNetgenID.insert( make_pair( node, invalid_ID ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------
|
// ---------------------------------
|
||||||
// Feed the Netgen with surface mesh
|
// Feed the Netgen with surface mesh
|
||||||
@ -447,7 +509,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
|||||||
int Netgen_NbOfNodes = 0;
|
int Netgen_NbOfNodes = 0;
|
||||||
int Netgen_param2ndOrder = 0;
|
int Netgen_param2ndOrder = 0;
|
||||||
double Netgen_paramFine = 1.;
|
double Netgen_paramFine = 1.;
|
||||||
double Netgen_paramSize = _maxElementVolume;
|
double Netgen_paramSize = pow( 72, 1/6. ) * pow( _maxElementVolume, 1/3. );
|
||||||
|
|
||||||
double Netgen_point[3];
|
double Netgen_point[3];
|
||||||
int Netgen_triangle[3];
|
int Netgen_triangle[3];
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS, L3S, LJLL, MENSI
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License.
|
// version 2.1 of the License.
|
||||||
//
|
//
|
||||||
// This library is distributed in the hope that it will be useful
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
@ -25,7 +27,7 @@
|
|||||||
// Project : SALOME
|
// Project : SALOME
|
||||||
// $Header$
|
// $Header$
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_3D_HXX_
|
#ifndef _NETGENPlugin_NETGEN_3D_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_3D_HXX_
|
#define _NETGENPlugin_NETGEN_3D_HXX_
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -19,14 +19,13 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
||||||
//
|
|
||||||
// File : NETGENPlugin_NETGEN_3D_i.cxx
|
// File : NETGENPlugin_NETGEN_3D_i.cxx
|
||||||
// Moved here from SMESH_NETGEN_3D_i.cxx
|
// Moved here from SMESH_NETGEN_3D_i.cxx
|
||||||
// Author : Nadir Bouhamou CEA
|
// Author : Nadir Bouhamou CEA
|
||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#include "NETGENPlugin_NETGEN_3D_i.hxx"
|
#include "NETGENPlugin_NETGEN_3D_i.hxx"
|
||||||
#include "SMESH_Gen.hxx"
|
#include "SMESH_Gen.hxx"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -19,14 +19,13 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
|
||||||
//
|
|
||||||
// File : NETGENPlugin_NETGEN_3D_i.hxx
|
// File : NETGENPlugin_NETGEN_3D_i.hxx
|
||||||
// Moved here from SMESH_NETGEN_3D_i.hxx
|
// Moved here from SMESH_NETGEN_3D_i.hxx
|
||||||
// Author : Nadir Bouhamou CEA
|
// Author : Nadir Bouhamou CEA
|
||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#ifndef _NETGENPlugin_NETGEN_3D_I_HXX_
|
#ifndef _NETGENPlugin_NETGEN_3D_I_HXX_
|
||||||
#define _NETGENPlugin_NETGEN_3D_I_HXX_
|
#define _NETGENPlugin_NETGEN_3D_I_HXX_
|
||||||
|
|
||||||
|
208
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cxx
Normal file
208
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.cxx
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_2D.cxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D.hxx"
|
||||||
|
#include "NETGENPlugin_Hypothesis.hxx"
|
||||||
|
|
||||||
|
#include <SMESH_Mesh.hxx>
|
||||||
|
#include <SMESH_subMesh.hxx>
|
||||||
|
#include <SMESH_ControlsDef.hxx>
|
||||||
|
|
||||||
|
#include <TopExp_Explorer.hxx>
|
||||||
|
|
||||||
|
#include <utilities.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D::NETGENPlugin_SimpleHypothesis_2D (int hypId,
|
||||||
|
int studyId,
|
||||||
|
SMESH_Gen * gen)
|
||||||
|
: SMESH_Hypothesis(hypId, studyId, gen),
|
||||||
|
_nbSegments ((int)NETGENPlugin_Hypothesis::GetDefaultNbSegPerEdge()),
|
||||||
|
_segmentLength(0),
|
||||||
|
_area (0.)
|
||||||
|
{
|
||||||
|
_name = "NETGEN_SimpleParameters_2D";
|
||||||
|
_param_algo_dim = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D::SetNumberOfSegments(int nb) throw (SALOME_Exception)
|
||||||
|
{
|
||||||
|
if ( nb < 1 )
|
||||||
|
throw SALOME_Exception("Number of segments must be positive");
|
||||||
|
if (nb != _nbSegments)
|
||||||
|
{
|
||||||
|
_nbSegments = nb;
|
||||||
|
if ( _nbSegments ) _segmentLength = 0.;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D::SetLocalLength(double segmentLength)
|
||||||
|
throw (SALOME_Exception)
|
||||||
|
{
|
||||||
|
if ( segmentLength < DBL_MIN )
|
||||||
|
throw SALOME_Exception("segment length must be more than zero");
|
||||||
|
if (segmentLength != _segmentLength)
|
||||||
|
{
|
||||||
|
_segmentLength = segmentLength;
|
||||||
|
if ( _segmentLength > DBL_MIN ) _nbSegments = 0;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D::LengthFromEdges()
|
||||||
|
{
|
||||||
|
if (_area > DBL_MIN )
|
||||||
|
{
|
||||||
|
_area = 0;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D::SetMaxElementArea(double area)
|
||||||
|
{
|
||||||
|
if ( area < DBL_MIN )
|
||||||
|
area = 0.;
|
||||||
|
if (_area != area)
|
||||||
|
{
|
||||||
|
_area = area;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
ostream & NETGENPlugin_SimpleHypothesis_2D::SaveTo(ostream & save)
|
||||||
|
{
|
||||||
|
save << _nbSegments << " " << _segmentLength << " " << _area;
|
||||||
|
|
||||||
|
return save;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
istream & NETGENPlugin_SimpleHypothesis_2D::LoadFrom(istream & load)
|
||||||
|
{
|
||||||
|
bool isOK = true;
|
||||||
|
double val;
|
||||||
|
|
||||||
|
isOK = (load >> val);
|
||||||
|
if (isOK)
|
||||||
|
_nbSegments = (int) val;
|
||||||
|
else
|
||||||
|
load.clear(ios::badbit | load.rdstate());
|
||||||
|
|
||||||
|
isOK = (load >> val);
|
||||||
|
if (isOK)
|
||||||
|
_segmentLength = val;
|
||||||
|
else
|
||||||
|
load.clear(ios::badbit | load.rdstate());
|
||||||
|
|
||||||
|
isOK = (load >> val);
|
||||||
|
if (isOK)
|
||||||
|
_area = val;
|
||||||
|
else
|
||||||
|
load.clear(ios::badbit | load.rdstate());
|
||||||
|
|
||||||
|
return load;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Does nothing
|
||||||
|
* \param theMesh - the built mesh
|
||||||
|
* \param theShape - the geometry of interest
|
||||||
|
* \retval bool - always false
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
bool NETGENPlugin_SimpleHypothesis_2D::SetParametersByMesh(const SMESH_Mesh* theMesh,
|
||||||
|
const TopoDS_Shape& theShape)
|
||||||
|
{
|
||||||
|
// Find out nb of segments.
|
||||||
|
int nbSeg = 0, nbEdges = 0;
|
||||||
|
TopExp_Explorer exp( theShape, TopAbs_EDGE );
|
||||||
|
for ( ; exp.More(); exp.Next() ) {
|
||||||
|
SMESH_subMesh* sm = theMesh->GetSubMeshContaining( exp.Current() );
|
||||||
|
if ( sm && !sm->IsEmpty() ) {
|
||||||
|
nbSeg += sm->GetSubMeshDS()->NbElements();
|
||||||
|
nbEdges++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( nbEdges )
|
||||||
|
_nbSegments = nbSeg / nbEdges;
|
||||||
|
|
||||||
|
// Find out max face area
|
||||||
|
_area = 0;
|
||||||
|
SMESH::Controls::Area areaControl;
|
||||||
|
SMESH::Controls::TSequenceOfXYZ nodesCoords;
|
||||||
|
const int nbFacesToCheck = 100;
|
||||||
|
for ( exp.Init( theShape, TopAbs_FACE ); exp.More(); exp.Next() ) {
|
||||||
|
SMESH_subMesh* sm = theMesh->GetSubMeshContaining( exp.Current() );
|
||||||
|
if ( sm && !sm->IsEmpty() ) {
|
||||||
|
SMDS_ElemIteratorPtr fIt = sm->GetSubMeshDS()->GetElements();
|
||||||
|
int nbCheckedFaces = 0;
|
||||||
|
while ( fIt->more() && nbCheckedFaces++ < nbFacesToCheck ) {
|
||||||
|
const SMDS_MeshElement* elem = fIt->next();
|
||||||
|
areaControl.GetPoints( elem, nodesCoords );
|
||||||
|
_area = max( _area, areaControl.GetValue( nodesCoords ));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nbEdges;
|
||||||
|
}
|
98
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.hxx
Normal file
98
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D.hxx
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_2D.hxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#ifndef _NETGENPlugin_SimpleHypothesis_2D_HXX_
|
||||||
|
#define _NETGENPlugin_SimpleHypothesis_2D_HXX_
|
||||||
|
|
||||||
|
#include "NETGENPlugin_Defs.hxx"
|
||||||
|
|
||||||
|
#include "SMESH_Hypothesis.hxx"
|
||||||
|
#include "Utils_SALOME_Exception.hxx"
|
||||||
|
|
||||||
|
// Simplified parameters of NETGEN
|
||||||
|
//
|
||||||
|
|
||||||
|
class NETGENPLUGIN_EXPORT NETGENPlugin_SimpleHypothesis_2D: public SMESH_Hypothesis
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D(int hypId, int studyId, SMESH_Gen * gen);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <number of segments> value
|
||||||
|
*/
|
||||||
|
void SetNumberOfSegments(int nb) throw (SALOME_Exception);
|
||||||
|
/*!
|
||||||
|
* Returns <number of segments> value.
|
||||||
|
* Can be zero in case if LocalLength() has been set
|
||||||
|
*/
|
||||||
|
int GetNumberOfSegments() const { return _nbSegments; }
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <segment length> value
|
||||||
|
*/
|
||||||
|
void SetLocalLength(double segmentLength) throw (SALOME_Exception);
|
||||||
|
/*!
|
||||||
|
* Returns <segment length> value.
|
||||||
|
* Can be zero in case if NumberOfSegments() has been set
|
||||||
|
*/
|
||||||
|
double GetLocalLength() const { return _segmentLength; }
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element area> to be dependent on 1D discretization
|
||||||
|
*/
|
||||||
|
void LengthFromEdges();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets <maximum element area> value.
|
||||||
|
* Zero or negative value means same as LengthFromEdges().
|
||||||
|
*/
|
||||||
|
void SetMaxElementArea(double area);
|
||||||
|
/*!
|
||||||
|
* Returns <maximum element area> value.
|
||||||
|
* Can be zero in case of LengthFromEdges()
|
||||||
|
*/
|
||||||
|
double GetMaxElementArea() const { return _area; }
|
||||||
|
|
||||||
|
// Persistence
|
||||||
|
virtual std::ostream & SaveTo(std::ostream & save);
|
||||||
|
virtual std::istream & LoadFrom(std::istream & load);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set parameters by mesh
|
||||||
|
* \param theMesh - the built mesh
|
||||||
|
* \param theShape - the geometry of interest
|
||||||
|
* \retval bool - true if theShape is meshed
|
||||||
|
*/
|
||||||
|
virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
|
||||||
|
|
||||||
|
private:
|
||||||
|
int _nbSegments;
|
||||||
|
double _segmentLength, _area;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
195
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D_i.cxx
Normal file
195
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D_i.cxx
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_2D_i.cxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D_i.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D.hxx"
|
||||||
|
|
||||||
|
#include <SMESH_Gen.hxx>
|
||||||
|
#include <SMESH_PythonDump.hxx>
|
||||||
|
|
||||||
|
#include <Utils_CorbaException.hxx>
|
||||||
|
#include <utilities.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::NETGENPlugin_SimpleHypothesis_2D_i
|
||||||
|
*
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i::
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i (PortableServer::POA_ptr thePOA,
|
||||||
|
int theStudyId,
|
||||||
|
::SMESH_Gen* theGenImpl)
|
||||||
|
: SALOME::GenericObj_i( thePOA ),
|
||||||
|
SMESH_Hypothesis_i( thePOA )
|
||||||
|
{
|
||||||
|
MESSAGE( "NETGENPlugin_SimpleHypothesis_2D_i::NETGENPlugin_SimpleHypothesis_2D_i" );
|
||||||
|
myBaseImpl = new ::NETGENPlugin_SimpleHypothesis_2D (theGenImpl->GetANewId(),
|
||||||
|
theStudyId,
|
||||||
|
theGenImpl);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::~NETGENPlugin_SimpleHypothesis_2D_i
|
||||||
|
*
|
||||||
|
* Destructor
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i::~NETGENPlugin_SimpleHypothesis_2D_i()
|
||||||
|
{
|
||||||
|
MESSAGE( "NETGENPlugin_SimpleHypothesis_2D_i::~NETGENPlugin_SimpleHypothesis_2D_i" );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::SetNumberOfSegments
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D_i::SetNumberOfSegments(CORBA::Short nb)
|
||||||
|
throw ( SALOME::SALOME_Exception )
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::SetNumberOfSegments");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
try {
|
||||||
|
this->GetImpl()->SetNumberOfSegments(nb);
|
||||||
|
}
|
||||||
|
catch (SALOME_Exception& S_ex) {
|
||||||
|
THROW_SALOME_CORBA_EXCEPTION( S_ex.what(), SALOME::BAD_PARAM );
|
||||||
|
}
|
||||||
|
SMESH::TPythonDump() << _this() << ".SetNumberOfSegments( " << nb << " )";
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::GetNumberOfSegments()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
CORBA::Short NETGENPlugin_SimpleHypothesis_2D_i::GetNumberOfSegments()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::GetNumberOfSegments");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
return this->GetImpl()->GetNumberOfSegments();
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* LocalLength()
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D_i::SetLocalLength(CORBA::Double segmentLength)
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::SetLocalLength");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
try {
|
||||||
|
this->GetImpl()->SetLocalLength(segmentLength);
|
||||||
|
}
|
||||||
|
catch (SALOME_Exception& S_ex) {
|
||||||
|
THROW_SALOME_CORBA_EXCEPTION( S_ex.what(), SALOME::BAD_PARAM );
|
||||||
|
}
|
||||||
|
SMESH::TPythonDump() << _this() << ".LocalLength( " << segmentLength << " )";
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* GetLocalLength()
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
|
||||||
|
CORBA::Double NETGENPlugin_SimpleHypothesis_2D_i::GetLocalLength()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::GetLocalLength");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
return this->GetImpl()->GetLocalLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::LengthFromEdges()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D_i::LengthFromEdges()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::LengthFromEdges");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
this->GetImpl()->LengthFromEdges();
|
||||||
|
SMESH::TPythonDump() << _this() << ".LengthFromEdges()";
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::SetMaxElementArea()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_2D_i::SetMaxElementArea(CORBA::Double area)
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::SetMaxElementArea");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
this->GetImpl()->SetMaxElementArea(area);
|
||||||
|
SMESH::TPythonDump() << _this() << ".SetMaxElementArea( " << area << " )";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::GetMaxElementArea()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
CORBA::Double NETGENPlugin_SimpleHypothesis_2D_i::GetMaxElementArea()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::GetMaxElementArea");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
return this->GetImpl()->GetMaxElementArea();
|
||||||
|
}
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_2D_i::GetImpl
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
::NETGENPlugin_SimpleHypothesis_2D* NETGENPlugin_SimpleHypothesis_2D_i::GetImpl()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_2D_i::GetImpl");
|
||||||
|
return (::NETGENPlugin_SimpleHypothesis_2D*)myBaseImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Verify whether hypothesis supports given entity type
|
||||||
|
* \param type - dimension (see SMESH::Dimension enumeration)
|
||||||
|
* \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
|
||||||
|
*
|
||||||
|
* Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
CORBA::Boolean NETGENPlugin_SimpleHypothesis_2D_i::IsDimSupported( SMESH::Dimension type )
|
||||||
|
{
|
||||||
|
return type == SMESH::DIM_2D;
|
||||||
|
}
|
75
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D_i.hxx
Normal file
75
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D_i.hxx
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_2D_i.hxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#ifndef _NETGENPlugin_SimpleHypothesis_2D_i_HXX_
|
||||||
|
#define _NETGENPlugin_SimpleHypothesis_2D_i_HXX_
|
||||||
|
|
||||||
|
#include "NETGENPlugin_Defs.hxx"
|
||||||
|
|
||||||
|
#include <SALOMEconfig.h>
|
||||||
|
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
|
||||||
|
|
||||||
|
#include "SMESH_Hypothesis_i.hxx"
|
||||||
|
|
||||||
|
class SMESH_Gen;
|
||||||
|
class NETGENPlugin_SimpleHypothesis_2D;
|
||||||
|
|
||||||
|
// Simplified NETGEN parameters (2D case)
|
||||||
|
|
||||||
|
class NETGENPLUGIN_EXPORT NETGENPlugin_SimpleHypothesis_2D_i:
|
||||||
|
public virtual POA_NETGENPlugin::NETGENPlugin_SimpleHypothesis_2D,
|
||||||
|
public virtual SMESH_Hypothesis_i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Constructor
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i (PortableServer::POA_ptr thePOA,
|
||||||
|
int theStudyId,
|
||||||
|
::SMESH_Gen* theGenImpl);
|
||||||
|
// Destructor
|
||||||
|
virtual ~NETGENPlugin_SimpleHypothesis_2D_i();
|
||||||
|
|
||||||
|
void SetNumberOfSegments(CORBA::Short nb) throw ( SALOME::SALOME_Exception );
|
||||||
|
CORBA::Short GetNumberOfSegments();
|
||||||
|
|
||||||
|
void SetLocalLength(CORBA::Double segmentLength);
|
||||||
|
CORBA::Double GetLocalLength();
|
||||||
|
|
||||||
|
|
||||||
|
void LengthFromEdges();
|
||||||
|
|
||||||
|
void SetMaxElementArea(CORBA::Double area);
|
||||||
|
CORBA::Double GetMaxElementArea();
|
||||||
|
|
||||||
|
|
||||||
|
// Get implementation
|
||||||
|
::NETGENPlugin_SimpleHypothesis_2D* GetImpl();
|
||||||
|
|
||||||
|
// Verify whether hypothesis supports given entity type
|
||||||
|
CORBA::Boolean IsDimSupported( SMESH::Dimension type );
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
152
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cxx
Normal file
152
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.cxx
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_3D.cxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_3D.hxx"
|
||||||
|
#include "NETGENPlugin_Hypothesis.hxx"
|
||||||
|
|
||||||
|
#include <SMESH_ControlsDef.hxx>
|
||||||
|
#include <SMESH_Mesh.hxx>
|
||||||
|
#include <SMESH_subMesh.hxx>
|
||||||
|
|
||||||
|
#include <TopExp_Explorer.hxx>
|
||||||
|
|
||||||
|
#include <utilities.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D::NETGENPlugin_SimpleHypothesis_3D (int hypId,
|
||||||
|
int studyId,
|
||||||
|
SMESH_Gen * gen)
|
||||||
|
: NETGENPlugin_SimpleHypothesis_2D(hypId, studyId, gen),
|
||||||
|
_volume(0)
|
||||||
|
{
|
||||||
|
_name = "NETGEN_SimpleParameters_3D";
|
||||||
|
_param_algo_dim = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_3D::LengthFromFaces()
|
||||||
|
{
|
||||||
|
if (_volume > DBL_MIN )
|
||||||
|
{
|
||||||
|
_volume = 0;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_3D::SetMaxElementVolume(double value)
|
||||||
|
{
|
||||||
|
if ( value < DBL_MIN )
|
||||||
|
value = 0.;
|
||||||
|
if (_volume != value)
|
||||||
|
{
|
||||||
|
_volume = value;
|
||||||
|
NotifySubMeshesHypothesisModification();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
ostream & NETGENPlugin_SimpleHypothesis_3D::SaveTo(ostream & save)
|
||||||
|
{
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D::SaveTo( save );
|
||||||
|
save << " " << _volume;
|
||||||
|
|
||||||
|
return save;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
istream & NETGENPlugin_SimpleHypothesis_3D::LoadFrom(istream & load)
|
||||||
|
{
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D::LoadFrom(load);
|
||||||
|
|
||||||
|
bool isOK = true;
|
||||||
|
double val;
|
||||||
|
|
||||||
|
isOK = (load >> val);
|
||||||
|
if (isOK)
|
||||||
|
_volume = val;
|
||||||
|
else
|
||||||
|
load.clear(ios::badbit | load.rdstate());
|
||||||
|
|
||||||
|
return load;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Does nothing
|
||||||
|
* \param theMesh - the built mesh
|
||||||
|
* \param theShape - the geometry of interest
|
||||||
|
* \retval bool - always false
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
bool NETGENPlugin_SimpleHypothesis_3D::SetParametersByMesh(const SMESH_Mesh* theMesh,
|
||||||
|
const TopoDS_Shape& theShape)
|
||||||
|
{
|
||||||
|
if ( NETGENPlugin_SimpleHypothesis_2D::SetParametersByMesh(theMesh, theShape) )
|
||||||
|
{
|
||||||
|
// Find out max volume
|
||||||
|
_volume = 0;
|
||||||
|
SMESH::Controls::Volume volControl;
|
||||||
|
volControl.SetMesh( ((SMESH_Mesh*)theMesh)->GetMeshDS() );
|
||||||
|
const int nbElemToCheck = 100;
|
||||||
|
for ( TopExp_Explorer exp( theShape, TopAbs_SOLID ); exp.More(); exp.Next() ) {
|
||||||
|
SMESH_subMesh* sm = theMesh->GetSubMeshContaining( exp.Current() );
|
||||||
|
if ( sm && !sm->IsEmpty() ) {
|
||||||
|
SMDS_ElemIteratorPtr fIt = sm->GetSubMeshDS()->GetElements();
|
||||||
|
int nbCheckedElems = 0;
|
||||||
|
while ( fIt->more() && nbCheckedElems++ < nbElemToCheck ) {
|
||||||
|
const SMDS_MeshElement* elem = fIt->next();
|
||||||
|
_volume = max( _volume, volControl.GetValue( elem->GetID() ));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return int( _volume );
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
66
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.hxx
Normal file
66
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D.hxx
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_3D.hxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#ifndef _NETGENPlugin_SimpleHypothesis_3D_HXX_
|
||||||
|
#define _NETGENPlugin_SimpleHypothesis_3D_HXX_
|
||||||
|
|
||||||
|
#include "NETGENPlugin_Defs.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D.hxx"
|
||||||
|
|
||||||
|
#include <Utils_SALOME_Exception.hxx>
|
||||||
|
|
||||||
|
// Simplified parameters of NETGEN
|
||||||
|
//
|
||||||
|
|
||||||
|
class NETGENPLUGIN_EXPORT NETGENPlugin_SimpleHypothesis_3D: public NETGENPlugin_SimpleHypothesis_2D
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D(int hypId, int studyId, SMESH_Gen * gen);
|
||||||
|
|
||||||
|
void LengthFromFaces();
|
||||||
|
|
||||||
|
void SetMaxElementVolume(double value);
|
||||||
|
double GetMaxElementVolume() const { return _volume; }
|
||||||
|
|
||||||
|
// Persistence
|
||||||
|
virtual std::ostream & SaveTo(std::ostream & save);
|
||||||
|
virtual std::istream & LoadFrom(std::istream & load);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set parameters by mesh
|
||||||
|
* \param theMesh - the built mesh
|
||||||
|
* \param theShape - the geometry of interest
|
||||||
|
* \retval bool - true if theShape is meshed
|
||||||
|
*/
|
||||||
|
virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
|
||||||
|
|
||||||
|
private:
|
||||||
|
double _volume;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
135
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D_i.cxx
Normal file
135
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D_i.cxx
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_3D_i.cxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_3D_i.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_3D.hxx"
|
||||||
|
|
||||||
|
#include <SMESH_Gen.hxx>
|
||||||
|
#include <SMESH_PythonDump.hxx>
|
||||||
|
|
||||||
|
#include <Utils_CorbaException.hxx>
|
||||||
|
#include <utilities.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::NETGENPlugin_SimpleHypothesis_3D_i
|
||||||
|
*
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D_i::
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D_i (PortableServer::POA_ptr thePOA,
|
||||||
|
int theStudyId,
|
||||||
|
::SMESH_Gen* theGenImpl)
|
||||||
|
: SALOME::GenericObj_i( thePOA ),
|
||||||
|
SMESH_Hypothesis_i( thePOA ),
|
||||||
|
NETGENPlugin_SimpleHypothesis_2D_i( thePOA,theStudyId,theGenImpl )
|
||||||
|
{
|
||||||
|
MESSAGE( "NETGENPlugin_SimpleHypothesis_3D_i::NETGENPlugin_SimpleHypothesis_3D_i" );
|
||||||
|
if ( myBaseImpl )
|
||||||
|
delete myBaseImpl;
|
||||||
|
myBaseImpl = new ::NETGENPlugin_SimpleHypothesis_3D (theGenImpl->GetANewId(),
|
||||||
|
theStudyId,
|
||||||
|
theGenImpl);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::~NETGENPlugin_SimpleHypothesis_3D_i
|
||||||
|
*
|
||||||
|
* Destructor
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D_i::~NETGENPlugin_SimpleHypothesis_3D_i()
|
||||||
|
{
|
||||||
|
MESSAGE( "NETGENPlugin_SimpleHypothesis_3D_i::~NETGENPlugin_SimpleHypothesis_3D_i" );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::LengthFromFaces()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_3D_i::LengthFromFaces()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_3D_i::LengthFromFaces");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
this->GetImpl()->LengthFromFaces();
|
||||||
|
SMESH::TPythonDump() << _this() << ".LengthFromFaces()";
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::SetMaxElementVolume()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
void NETGENPlugin_SimpleHypothesis_3D_i::SetMaxElementVolume(CORBA::Double value)
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_3D_i::SetMaxElementVolume");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
this->GetImpl()->SetMaxElementVolume(value);
|
||||||
|
SMESH::TPythonDump() << _this() << ".SetMaxElementVolume( " << value << " )";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::GetMaxElementVolume()
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
CORBA::Double NETGENPlugin_SimpleHypothesis_3D_i::GetMaxElementVolume()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_3D_i::GetMaxElementVolume");
|
||||||
|
ASSERT(myBaseImpl);
|
||||||
|
return this->GetImpl()->GetMaxElementVolume();
|
||||||
|
}
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* NETGENPlugin_SimpleHypothesis_3D_i::GetImpl
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
::NETGENPlugin_SimpleHypothesis_3D* NETGENPlugin_SimpleHypothesis_3D_i::GetImpl()
|
||||||
|
{
|
||||||
|
MESSAGE("NETGENPlugin_SimpleHypothesis_3D_i::GetImpl");
|
||||||
|
return (::NETGENPlugin_SimpleHypothesis_3D*)myBaseImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Verify whether hypothesis supports given entity type
|
||||||
|
* \param type - dimension (see SMESH::Dimension enumeration)
|
||||||
|
* \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
|
||||||
|
*
|
||||||
|
* Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
CORBA::Boolean NETGENPlugin_SimpleHypothesis_3D_i::IsDimSupported( SMESH::Dimension type )
|
||||||
|
{
|
||||||
|
return type == SMESH::DIM_3D;
|
||||||
|
}
|
66
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D_i.hxx
Normal file
66
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_3D_i.hxx
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
//
|
||||||
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
// License as published by the Free Software Foundation; either
|
||||||
|
// version 2.1 of the License.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
//
|
||||||
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
|
//
|
||||||
|
// NETGENPlugin : C++ implementation
|
||||||
|
// File : NETGENPlugin_SimpleHypothesis_3D_i.hxx
|
||||||
|
// Author : Edward AGAPOV
|
||||||
|
// Project : SALOME
|
||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
#ifndef _NETGENPlugin_SimpleHypothesis_3D_i_HXX_
|
||||||
|
#define _NETGENPlugin_SimpleHypothesis_3D_i_HXX_
|
||||||
|
|
||||||
|
#include "NETGENPlugin_Defs.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D_i.hxx"
|
||||||
|
|
||||||
|
#include <SALOMEconfig.h>
|
||||||
|
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
|
||||||
|
|
||||||
|
class SMESH_Gen;
|
||||||
|
class NETGENPlugin_SimpleHypothesis_3D;
|
||||||
|
|
||||||
|
// Simplified NETGEN parameters (3D case)
|
||||||
|
|
||||||
|
class NETGENPLUGIN_EXPORT NETGENPlugin_SimpleHypothesis_3D_i:
|
||||||
|
public virtual POA_NETGENPlugin::NETGENPlugin_SimpleHypothesis_3D,
|
||||||
|
public virtual NETGENPlugin_SimpleHypothesis_2D_i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Constructor
|
||||||
|
NETGENPlugin_SimpleHypothesis_3D_i (PortableServer::POA_ptr thePOA,
|
||||||
|
int theStudyId,
|
||||||
|
::SMESH_Gen* theGenImpl);
|
||||||
|
// Destructor
|
||||||
|
virtual ~NETGENPlugin_SimpleHypothesis_3D_i();
|
||||||
|
|
||||||
|
void LengthFromFaces();
|
||||||
|
|
||||||
|
void SetMaxElementVolume(CORBA::Double value);
|
||||||
|
CORBA::Double GetMaxElementVolume();
|
||||||
|
|
||||||
|
// Get implementation
|
||||||
|
::NETGENPlugin_SimpleHypothesis_3D* GetImpl();
|
||||||
|
|
||||||
|
// Verify whether hypothesis supports given entity type
|
||||||
|
CORBA::Boolean IsDimSupported( SMESH::Dimension type );
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -1,6 +1,6 @@
|
|||||||
// SMESH NETGENPlugin : implementaion of SMESH idl descriptions
|
// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
@ -19,13 +19,12 @@
|
|||||||
//
|
//
|
||||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||||
//
|
//
|
||||||
//
|
// SMESH NETGENPlugin : implementaion of SMESH idl descriptions
|
||||||
//
|
|
||||||
// File : NETGENPlugin.cxx
|
// File : NETGENPlugin.cxx
|
||||||
// Author : Julia DOROVSKIKH
|
// Author : Julia DOROVSKIKH
|
||||||
// Module : SMESH
|
// Module : SMESH
|
||||||
// $Header$
|
// $Header$
|
||||||
|
//
|
||||||
#include "utilities.h"
|
#include "utilities.h"
|
||||||
|
|
||||||
#include "NETGENPlugin_NETGEN_3D_i.hxx"
|
#include "NETGENPlugin_NETGEN_3D_i.hxx"
|
||||||
@ -34,6 +33,8 @@
|
|||||||
#include "NETGENPlugin_NETGEN_2D3D_i.hxx"
|
#include "NETGENPlugin_NETGEN_2D3D_i.hxx"
|
||||||
#include "NETGENPlugin_Hypothesis_i.hxx"
|
#include "NETGENPlugin_Hypothesis_i.hxx"
|
||||||
#include "NETGENPlugin_Hypothesis_2D_i.hxx"
|
#include "NETGENPlugin_Hypothesis_2D_i.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_2D_i.hxx"
|
||||||
|
#include "NETGENPlugin_SimpleHypothesis_3D_i.hxx"
|
||||||
|
|
||||||
template <class T> class NETGENPlugin_Creator_i:public HypothesisCreator_i<T>
|
template <class T> class NETGENPlugin_Creator_i:public HypothesisCreator_i<T>
|
||||||
{
|
{
|
||||||
@ -72,6 +73,10 @@ extern "C"
|
|||||||
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_Hypothesis_i>;
|
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_Hypothesis_i>;
|
||||||
else if (strcmp(aHypName, "NETGEN_Parameters_2D") == 0)
|
else if (strcmp(aHypName, "NETGEN_Parameters_2D") == 0)
|
||||||
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_Hypothesis_2D_i>;
|
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_Hypothesis_2D_i>;
|
||||||
|
else if (strcmp(aHypName, "NETGEN_SimpleParameters_2D") == 0)
|
||||||
|
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_SimpleHypothesis_2D_i>;
|
||||||
|
else if (strcmp(aHypName, "NETGEN_SimpleParameters_3D") == 0)
|
||||||
|
aCreator = new NETGENPlugin_Creator_i<NETGENPlugin_SimpleHypothesis_3D_i>;
|
||||||
else ;
|
else ;
|
||||||
|
|
||||||
return aCreator;
|
return aCreator;
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
# This is a Qt message file in .po format. Each msgid starts with
|
|
||||||
# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
|
|
||||||
# would be translated to "Pub", not "Foo::Pub".
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
|
||||||
"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
|
|
||||||
"PO-Revision-Date: YYYY-MM-DD\n"
|
|
||||||
"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
# ObjectBrowser
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
|
|
||||||
#mesh_tree_algo_netgen
|
|
||||||
msgid "ICON_SMESH_TREE_ALGO_NETGEN_3D"
|
|
||||||
msgstr "mesh_tree_algo_tetra.png"
|
|
||||||
#msgstr "mesh_tree_algo_netgen.png"
|
|
Loading…
Reference in New Issue
Block a user