Merge from V5_1_main branch 24/11/2010
This commit is contained in:
parent
b347c8933d
commit
d7d66641f1
@ -94,8 +94,8 @@ if test "x$NETGEN_HOME" != "x"; then
|
||||
|
||||
CPPFLAGS_old="$CPPFLAGS"
|
||||
CXXFLAGS_old="$CXXFLAGS"
|
||||
CPPFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CPPFLAGS"
|
||||
CXXFLAGS="$NETGEN_INCLUDES $CAS_CPPFLAGS $CXXFLAGS"
|
||||
CPPFLAGS="$CAS_CPPFLAGS $NETGEN_INCLUDES $CPPFLAGS"
|
||||
CXXFLAGS="$CAS_CPPFLAGS $NETGEN_INCLUDES $CXXFLAGS"
|
||||
|
||||
AC_MSG_CHECKING(for Netgen header file)
|
||||
|
||||
|
15
configure.ac
15
configure.ac
@ -29,7 +29,7 @@
|
||||
# Reorganization for usage of autotools
|
||||
# Created from configure.in.base
|
||||
#
|
||||
AC_INIT([Salome2 Project NETGENPLUGIN module], [6.1.0], [webmaster.salome@opencascade.com], [SalomeNETGENPLUGIN])
|
||||
AC_INIT([Salome2 Project NETGENPLUGIN module], [6.2.0], [webmaster.salome@opencascade.com], [SalomeNETGENPLUGIN])
|
||||
AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_TARGET
|
||||
@ -413,6 +413,19 @@ echo
|
||||
# chmod +x ./bin/salome/*;
|
||||
#])
|
||||
|
||||
AC_CONFIG_COMMANDS([hack_libtool],[
|
||||
sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\
|
||||
if test \"\$(echo \$[@] | grep -E '\\\-L/usr/lib(/../lib)?(64)? ')\" == \"\" \n\
|
||||
then\n\
|
||||
cmd=\"\1 \$[@]\"\n\
|
||||
else\n\
|
||||
cmd=\"\1 \"\`echo \$[@] | sed -r -e 's|(.*)-L/usr/lib(/../lib)?(64)? (.*)|\\\1\\\4 -L/usr/lib\\\3|g'\`\n\
|
||||
fi\n\
|
||||
\$cmd\n\
|
||||
}\n\
|
||||
CC=\"hack_libtool\"%g" libtool
|
||||
],[])
|
||||
|
||||
# This list is initiated using autoscan and must be updated manually
|
||||
# when adding a new file <filename>.in to manage. When you execute
|
||||
# autoscan, the Makefile list is generated in the output file configure.scan.
|
||||
|
@ -49,9 +49,9 @@ nodist_libNETGENPluginGUI_la_SOURCES= \
|
||||
# additionnal information to compil and link file
|
||||
|
||||
libNETGENPluginGUI_la_CPPFLAGS = \
|
||||
$(CAS_CPPFLAGS) \
|
||||
$(NETGEN_INCLUDES) \
|
||||
$(QT_INCLUDES) \
|
||||
$(CAS_CPPFLAGS) \
|
||||
$(PYTHON_INCLUDES) \
|
||||
$(KERNEL_CXXFLAGS) \
|
||||
$(GUI_CXXFLAGS) \
|
||||
@ -74,5 +74,6 @@ libNETGENPluginGUI_la_LDFLAGS = \
|
||||
# resources files
|
||||
nodist_salomeres_DATA= \
|
||||
NETGENPlugin_images.qm \
|
||||
NETGENPlugin_msg_en.qm
|
||||
NETGENPlugin_msg_en.qm \
|
||||
NETGENPlugin_msg_fr.qm
|
||||
|
||||
|
@ -30,7 +30,6 @@
|
||||
|
||||
#include <SMESHGUI_Utils.h>
|
||||
#include <SMESHGUI_HypothesesUtils.h>
|
||||
#include <SMESHGUI.h>
|
||||
#include <SMESHGUI_SpinBox.h>
|
||||
#include <GeomSelectionTools.h>
|
||||
|
||||
@ -165,7 +164,7 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
|
||||
|
||||
aGroupLayout->addWidget( new QLabel( tr( "NETGEN_GROWTH_RATE" ), GroupC1 ), row, 0 );
|
||||
myGrowthRate = new SMESHGUI_SpinBox( GroupC1 );
|
||||
myGrowthRate->RangeStepAndValidator( .1, 10., .1, "parametric_precision" );
|
||||
myGrowthRate->RangeStepAndValidator( .0001, 10., .1, "parametric_precision" );
|
||||
aGroupLayout->addWidget( myGrowthRate, row, 1 );
|
||||
row++;
|
||||
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include <SMESHGUI_Utils.h>
|
||||
#include <SMESHGUI_HypothesesUtils.h>
|
||||
#include <SMESHGUI_SpinBox.h>
|
||||
#include <SMESHGUI.h>
|
||||
|
||||
// IDL includes
|
||||
#include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
|
||||
|
@ -1,169 +1,147 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<!--
|
||||
Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||
|
||||
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
-->
|
||||
<TS version="1.1" >
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<source>NETGEN_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_2D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D simple parameters</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D simple parameters</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_ALLOW_QUADRANGLES</source>
|
||||
<translation>Allow Quadrangles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_COARSE</source>
|
||||
<translation>Coarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_CUSTOM</source>
|
||||
<translation>Custom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINE</source>
|
||||
<translation>Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINENESS</source>
|
||||
<translation>Fineness</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_GROWTH_RATE</source>
|
||||
<translation>Growth Rate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MAX_SIZE</source>
|
||||
<translation>Max. Size</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MODERATE</source>
|
||||
<translation>Moderate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_OPTIMIZE</source>
|
||||
<translation>Optimize</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SECOND_ORDER</source>
|
||||
<translation>Second Order</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_EDGE</source>
|
||||
<translation>Nb. Segs per Edge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_RADIUS</source>
|
||||
<translation>Nb. Segs per Radius</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYCOARSE</source>
|
||||
<translation>Very Coarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYFINE</source>
|
||||
<translation>Very Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_1D</source>
|
||||
<translation>1D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_2D</source>
|
||||
<translation>2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_3D</source>
|
||||
<translation>3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_EDGES</source>
|
||||
<translation>Length from edges</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_FACES</source>
|
||||
<translation>Length from faces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LOCAL_SIZE</source>
|
||||
<translation>Local sizes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_VERTEX</source>
|
||||
<translation>On Vertex</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_EDGE</source>
|
||||
<translation>On Edge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_FACE</source>
|
||||
<translation>On Sub-Face</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_REMOVE</source>
|
||||
<translation>Remove</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_ENTRY_COLUMN</source>
|
||||
<translation>Entry</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_NAME_COLUMN</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_LOCALSIZE_COLUMN</source>
|
||||
<translation>Value</translation>
|
||||
</message>
|
||||
</context>
|
||||
<TS version="2.0" language="en_US">
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<source>NETGEN_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_2D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D simple parameters</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D simple parameters</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_ALLOW_QUADRANGLES</source>
|
||||
<translation>Allow Quadrangles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_COARSE</source>
|
||||
<translation>Coarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_CUSTOM</source>
|
||||
<translation>Custom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINE</source>
|
||||
<translation>Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINENESS</source>
|
||||
<translation>Fineness</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_GROWTH_RATE</source>
|
||||
<translation>Growth Rate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MAX_SIZE</source>
|
||||
<translation>Max. Size</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MODERATE</source>
|
||||
<translation>Moderate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_OPTIMIZE</source>
|
||||
<translation>Optimize</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SECOND_ORDER</source>
|
||||
<translation>Second Order</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_EDGE</source>
|
||||
<translation>Nb. Segs per Edge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_RADIUS</source>
|
||||
<translation>Nb. Segs per Radius</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYCOARSE</source>
|
||||
<translation>Very Coarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYFINE</source>
|
||||
<translation>Very Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_1D</source>
|
||||
<translation>1D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_2D</source>
|
||||
<translation>2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_3D</source>
|
||||
<translation>3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_EDGES</source>
|
||||
<translation>Length from edges</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_FACES</source>
|
||||
<translation>Length from faces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LOCAL_SIZE</source>
|
||||
<translation>Local sizes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_VERTEX</source>
|
||||
<translation>On Vertex</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_EDGE</source>
|
||||
<translation>On Edge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_FACE</source>
|
||||
<translation>On Sub-Face</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_REMOVE</source>
|
||||
<translation>Remove</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_ENTRY_COLUMN</source>
|
||||
<translation>Entry</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_NAME_COLUMN</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_LOCALSIZE_COLUMN</source>
|
||||
<translation>Value</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
147
src/GUI/NETGENPlugin_msg_fr.ts
Executable file
147
src/GUI/NETGENPlugin_msg_fr.ts
Executable file
@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="fr_FR">
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<source>NETGEN_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_2D_TITLE</source>
|
||||
<translation>Construction d'une hypothèse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_3D_TITLE</source>
|
||||
<translation>Construction d'une hypothèse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_HYPOTHESIS</source>
|
||||
<translation>Netgen 3D paramètres simplifiés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_3D_TITLE</source>
|
||||
<translation>Construction d'une hypothèse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_HYPOTHESIS</source>
|
||||
<translation>Netgen 2D paramètres simplifiés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SimpleParameters_2D_TITLE</source>
|
||||
<translation>Construction d'une hypothèse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_ALLOW_QUADRANGLES</source>
|
||||
<translation>Autoriser les quadrangles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_COARSE</source>
|
||||
<translation>Grossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_CUSTOM</source>
|
||||
<translation>Personnalisé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINE</source>
|
||||
<translation>Fin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_FINENESS</source>
|
||||
<translation>Finesse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_GROWTH_RATE</source>
|
||||
<translation>Taux d'accroissement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MAX_SIZE</source>
|
||||
<translation>Taille maximale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_MODERATE</source>
|
||||
<translation>Moyen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_OPTIMIZE</source>
|
||||
<translation>Optimiser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SECOND_ORDER</source>
|
||||
<translation>Second ordre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_EDGE</source>
|
||||
<translation>Nb. segments par arête</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_SEG_PER_RADIUS</source>
|
||||
<translation>Nb. segments par rayon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYCOARSE</source>
|
||||
<translation>Très grossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_VERYFINE</source>
|
||||
<translation>Très fin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_1D</source>
|
||||
<translation>1D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_2D</source>
|
||||
<translation>2D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_3D</source>
|
||||
<translation>3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_EDGES</source>
|
||||
<translation>Longueur à partir des arêtes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NG_LENGTH_FROM_FACES</source>
|
||||
<translation>Longueur à partir des faces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LOCAL_SIZE</source>
|
||||
<translation>Tailles locales</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_VERTEX</source>
|
||||
<translation>Sur un point</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_EDGE</source>
|
||||
<translation>Sur une arête</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_FACE</source>
|
||||
<translation>Sur une sous-face</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>NETGEN_LSZ_REMOVE</source>
|
||||
<translation>Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_ENTRY_COLUMN</source>
|
||||
<translation>Entrée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_NAME_COLUMN</source>
|
||||
<translation>Nom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LSZ_LOCALSIZE_COLUMN</source>
|
||||
<translation>Valeur</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,6 +1,66 @@
|
||||
diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.cpp netgen-4.5.new/libsrc/csg/meshsurf.cpp
|
||||
--- netgen-4.5.old/libsrc/csg/meshsurf.cpp 2006-02-14 08:54:35.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/csg/meshsurf.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/algprim.cpp netgen-4.5_new/libsrc/csg/algprim.cpp
|
||||
--- netgen-4.5_orig/libsrc/csg/algprim.cpp 2006-01-25 16:30:28.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/algprim.cpp 2010-06-23 12:35:22.000000000 +0400
|
||||
@@ -108,7 +108,7 @@
|
||||
void Plane :: GetPrimitiveData (char *& classname,
|
||||
ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "plane";
|
||||
+ classname = (char*)"plane";
|
||||
coeffs.SetSize (6);
|
||||
coeffs.Elem(1) = p(0);
|
||||
coeffs.Elem(2) = p(1);
|
||||
@@ -355,7 +355,7 @@
|
||||
|
||||
void Sphere :: GetPrimitiveData (char *& classname, ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "sphere";
|
||||
+ classname = (char*)"sphere";
|
||||
coeffs.SetSize (4);
|
||||
coeffs.Elem(1) = c(0);
|
||||
coeffs.Elem(2) = c(1);
|
||||
@@ -760,7 +760,7 @@
|
||||
|
||||
void Cylinder :: GetPrimitiveData (char *& classname, ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "cylinder";
|
||||
+ classname = (char*)"cylinder";
|
||||
coeffs.SetSize (7);
|
||||
coeffs.Elem(1) = a(0);
|
||||
coeffs.Elem(2) = a(1);
|
||||
@@ -1243,7 +1243,7 @@
|
||||
|
||||
void Cone :: GetPrimitiveData (char *& classname, ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "cone";
|
||||
+ classname = (char*)"cone";
|
||||
coeffs.SetSize (8);
|
||||
coeffs.Elem(1) = a(0);
|
||||
coeffs.Elem(2) = a(1);
|
||||
@@ -1446,7 +1446,7 @@
|
||||
|
||||
void Torus :: GetPrimitiveData (char *& classname, ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "torus";
|
||||
+ classname = (char*)"torus";
|
||||
coeffs.SetSize (8);
|
||||
coeffs.Elem(1) = c(0);
|
||||
coeffs.Elem(2) = c(1);
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/brick.cpp netgen-4.5_new/libsrc/csg/brick.cpp
|
||||
--- netgen-4.5_orig/libsrc/csg/brick.cpp 2006-02-08 15:23:15.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/brick.cpp 2010-06-23 12:35:35.000000000 +0400
|
||||
@@ -345,7 +345,7 @@
|
||||
void Brick ::
|
||||
GetPrimitiveData (char *& classname, ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "brick";
|
||||
+ classname = (char*)"brick";
|
||||
coeffs.SetSize(12);
|
||||
coeffs.Elem(1) = p1(0);
|
||||
coeffs.Elem(2) = p1(1);
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/meshsurf.cpp netgen-4.5_new/libsrc/csg/meshsurf.cpp
|
||||
--- netgen-4.5_orig/libsrc/csg/meshsurf.cpp 2006-02-14 11:54:35.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/meshsurf.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -77,11 +77,12 @@
|
||||
}
|
||||
|
||||
@ -15,9 +75,9 @@ diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.cpp netgen-4.5.new/libsrc/csg/mesh
|
||||
}
|
||||
|
||||
void MeshOptimize2dSurfaces :: ProjectPoint2 (INDEX surfind, INDEX surfind2,
|
||||
diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.hpp netgen-4.5.new/libsrc/csg/meshsurf.hpp
|
||||
--- netgen-4.5.old/libsrc/csg/meshsurf.hpp 2004-01-20 11:49:44.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/csg/meshsurf.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/meshsurf.hpp netgen-4.5_new/libsrc/csg/meshsurf.hpp
|
||||
--- netgen-4.5_orig/libsrc/csg/meshsurf.hpp 2004-01-20 14:49:44.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/meshsurf.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -45,7 +45,7 @@
|
||||
MeshOptimize2dSurfaces (const CSGeometry & ageometry);
|
||||
|
||||
@ -27,9 +87,33 @@ diff -Naur netgen-4.5.old/libsrc/csg/meshsurf.hpp netgen-4.5.new/libsrc/csg/mesh
|
||||
///
|
||||
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point3d & p) const;
|
||||
///
|
||||
diff -Naur netgen-4.5.old/libsrc/general/profiler.cpp netgen-4.5.new/libsrc/general/profiler.cpp
|
||||
--- netgen-4.5.old/libsrc/general/profiler.cpp 2006-01-11 10:05:59.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/general/profiler.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/polyhedra.cpp netgen-4.5_new/libsrc/csg/polyhedra.cpp
|
||||
--- netgen-4.5_orig/libsrc/csg/polyhedra.cpp 2006-02-09 13:33:11.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/polyhedra.cpp 2010-06-23 12:36:00.000000000 +0400
|
||||
@@ -287,7 +287,7 @@
|
||||
void Polyhedra :: GetPrimitiveData (char *& classname,
|
||||
ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "Polyhedra";
|
||||
+ classname = (char*)"Polyhedra";
|
||||
coeffs.SetSize(0);
|
||||
coeffs.Append (points.Size());
|
||||
coeffs.Append (faces.Size());
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/csg/surface.cpp netgen-4.5_new/libsrc/csg/surface.cpp
|
||||
--- netgen-4.5_orig/libsrc/csg/surface.cpp 2006-02-08 15:23:16.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/csg/surface.cpp 2010-06-23 12:35:47.000000000 +0400
|
||||
@@ -215,7 +215,7 @@
|
||||
void Primitive :: GetPrimitiveData (char *& classname,
|
||||
ARRAY<double> & coeffs) const
|
||||
{
|
||||
- classname = "undef";
|
||||
+ classname = (char*)"undef";
|
||||
coeffs.SetSize (0);
|
||||
}
|
||||
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/general/profiler.cpp netgen-4.5_new/libsrc/general/profiler.cpp
|
||||
--- netgen-4.5_orig/libsrc/general/profiler.cpp 2006-01-11 13:05:59.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/general/profiler.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -34,8 +34,14 @@
|
||||
{
|
||||
StopTimer (total_timer);
|
||||
@ -47,20 +131,49 @@ diff -Naur netgen-4.5.old/libsrc/general/profiler.cpp netgen-4.5.new/libsrc/gene
|
||||
}
|
||||
|
||||
|
||||
diff -Naur netgen-4.5.old/libsrc/include/mystdlib.h netgen-4.5.new/libsrc/include/mystdlib.h
|
||||
--- netgen-4.5.old/libsrc/include/mystdlib.h 2006-01-16 14:16:56.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/include/mystdlib.h 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/geom2d/genmesh2d.cpp netgen-4.5_new/libsrc/geom2d/genmesh2d.cpp
|
||||
--- netgen-4.5_orig/libsrc/geom2d/genmesh2d.cpp 2006-02-16 19:17:47.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/geom2d/genmesh2d.cpp 2010-06-23 12:36:59.000000000 +0400
|
||||
@@ -121,11 +121,11 @@
|
||||
|
||||
int hsteps = mp.optsteps2d;
|
||||
|
||||
- mp.optimize2d = "smcm";
|
||||
+ mp.optimize2d = (char*)"smcm";
|
||||
mp.optsteps2d = hsteps/2;
|
||||
Optimize2d (*mesh, mp);
|
||||
|
||||
- mp.optimize2d = "Smcm";
|
||||
+ mp.optimize2d = (char*)"Smcm";
|
||||
mp.optsteps2d = (hsteps+1)/2;
|
||||
Optimize2d (*mesh, mp);
|
||||
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/gprim/geom2d.hpp netgen-4.5_new/libsrc/gprim/geom2d.hpp
|
||||
--- netgen-4.5_orig/libsrc/gprim/geom2d.hpp 2004-01-20 14:49:44.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/gprim/geom2d.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -53,7 +53,7 @@
|
||||
int IsOnLongLine (const Line2d & l, const Point2d & p);
|
||||
int Hit (const Line2d & l1, const Line2d & l2, double heps = EPSGEOM);
|
||||
ostream & operator<<(ostream & s, const Line2d & l);
|
||||
-Point2d CrossPoint (const PLine2d & l1, const PLine2d & l2);
|
||||
+Point2d CrossPoint (const Line2d & l1, const Line2d & l2);
|
||||
int Parallel (const PLine2d & l1, const PLine2d & l2, double peps = EPSGEOM);
|
||||
int IsOnLine (const PLine2d & l, const Point2d & p, double heps = EPSGEOM);
|
||||
int IsOnLongLine (const PLine2d & l, const Point2d & p);
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/gprim/geom3d.hpp netgen-4.5_new/libsrc/gprim/geom3d.hpp
|
||||
--- netgen-4.5_orig/libsrc/gprim/geom3d.hpp 2004-08-30 16:04:04.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/gprim/geom3d.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <cmath>
|
||||
#include <cctype>
|
||||
#include <ctime>
|
||||
+#include <cstring>
|
||||
#endif
|
||||
|
||||
|
||||
diff -Naur netgen-4.5.old/libsrc/interface/Makefile netgen-4.5.new/libsrc/interface/Makefile
|
||||
--- netgen-4.5.old/libsrc/interface/Makefile 2005-08-09 14:14:59.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/interface/Makefile 2009-08-07 08:41:22.000000000 +0000
|
||||
inline Point3d Center (const Point3d & p1, const Point3d & p2, const Point3d & p3);
|
||||
inline Point3d Center (const Point3d & p1, const Point3d & p2,
|
||||
const Point3d & p3, const Point3d & p4);
|
||||
+inline double Dist2 (const Point3d & p1, const Point3d & p2);
|
||||
ostream & operator<<(ostream & s, const Point3d & p);
|
||||
inline Vec3d operator- (const Vec3d & p1, const Vec3d & v);
|
||||
inline Vec3d operator+ (const Vec3d & p1, const Vec3d & v);
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/interface/Makefile 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -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
|
||||
@ -68,9 +181,9 @@ diff -Naur netgen-4.5.old/libsrc/interface/Makefile netgen-4.5.new/libsrc/interf
|
||||
#
|
||||
lib = nginterface
|
||||
libpath = libsrc/interface
|
||||
diff -Naur netgen-4.5.old/libsrc/interface/nglib.cpp netgen-4.5.new/libsrc/interface/nglib.cpp
|
||||
--- netgen-4.5.old/libsrc/interface/nglib.cpp 2005-10-18 13:53:18.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/interface/nglib.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/interface/nglib.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -56,7 +56,8 @@
|
||||
|
||||
void Ng_Exit ()
|
||||
@ -81,9 +194,33 @@ diff -Naur netgen-4.5.old/libsrc/interface/nglib.cpp netgen-4.5.new/libsrc/inter
|
||||
}
|
||||
|
||||
|
||||
diff -Naur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
|
||||
--- netgen-4.5.old/libsrc/makefile.inc 2005-09-02 13:17:51.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/makefile.inc 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/interface/writeuser.cpp netgen-4.5_new/libsrc/interface/writeuser.cpp
|
||||
--- netgen-4.5_orig/libsrc/interface/writeuser.cpp 2005-08-09 18:14:59.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/interface/writeuser.cpp 2010-06-23 12:37:42.000000000 +0400
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
void RegisterUserFormats (ARRAY<const char*> & names)
|
||||
{
|
||||
- char *types[] =
|
||||
+ const char *types[] =
|
||||
{
|
||||
"Neutral Format",
|
||||
"Surface Mesh Format" ,
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/linalg/densemat.hpp netgen-4.5_new/libsrc/linalg/densemat.hpp
|
||||
--- netgen-4.5_orig/libsrc/linalg/densemat.hpp 2005-12-09 15:26:19.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/linalg/densemat.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
+class DenseMatrix;
|
||||
+void CalcAtA (const DenseMatrix & a, DenseMatrix & m2);
|
||||
|
||||
class DenseMatrix
|
||||
{
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/makefile.inc 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -8,17 +8,14 @@
|
||||
LIBSRC_DIR=$(CPP_DIR)/libsrc
|
||||
LIB_DIR=$(CPP_DIR)/lib/$(MACHINE)
|
||||
@ -107,9 +244,9 @@ diff -Naur netgen-4.5.old/libsrc/makefile.inc netgen-4.5.new/libsrc/makefile.inc
|
||||
#
|
||||
ARFLAGS = r
|
||||
#
|
||||
diff -Naur netgen-4.5.old/libsrc/makefile.mach.LINUX netgen-4.5.new/libsrc/makefile.mach.LINUX
|
||||
--- netgen-4.5.old/libsrc/makefile.mach.LINUX 2004-10-11 19:49:26.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/makefile.mach.LINUX 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/makefile.mach.LINUX 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -16,7 +16,7 @@
|
||||
#
|
||||
CFLAGS2 =
|
||||
@ -119,9 +256,9 @@ diff -Naur netgen-4.5.old/libsrc/makefile.mach.LINUX netgen-4.5.new/libsrc/makef
|
||||
-ftemplate-depth-99 -finline-limit=10000 \
|
||||
-Wdisabled-optimization -funroll-loops -DnoNGSOLVE
|
||||
|
||||
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 16:08:19.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/meshing/improve2.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/meshing/improve2.cpp netgen-4.5_new/libsrc/meshing/improve2.cpp
|
||||
--- netgen-4.5_orig/libsrc/meshing/improve2.cpp 2006-01-11 19:08:19.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/meshing/improve2.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <opti.hpp>
|
||||
|
||||
@ -131,9 +268,9 @@ diff -Naur netgen-4.5.old/libsrc/meshing/improve2.cpp netgen-4.5.new/libsrc/mesh
|
||||
#endif
|
||||
|
||||
namespace netgen
|
||||
diff -Naur netgen-4.5.old/libsrc/meshing/improve2.hpp netgen-4.5.new/libsrc/meshing/improve2.hpp
|
||||
--- netgen-4.5.old/libsrc/meshing/improve2.hpp 2004-10-12 19:22:55.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/meshing/improve2.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/meshing/improve2.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -32,17 +32,16 @@
|
||||
///
|
||||
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
||||
@ -160,9 +297,9 @@ diff -Naur netgen-4.5.old/libsrc/meshing/improve2.hpp netgen-4.5.new/libsrc/mesh
|
||||
|
||||
///
|
||||
virtual void GetNormalVector(INDEX surfind, const Point3d & p, PointGeomInfo & gi, Vec3d & n) const;
|
||||
diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.cpp netgen-4.5.new/libsrc/meshing/meshtype.cpp
|
||||
--- netgen-4.5.old/libsrc/meshing/meshtype.cpp 2006-02-10 10:11:08.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/meshing/meshtype.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/meshing/meshtype.cpp netgen-4.5_new/libsrc/meshing/meshtype.cpp
|
||||
--- netgen-4.5_orig/libsrc/meshing/meshtype.cpp 2006-02-10 13:11:08.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/meshing/meshtype.cpp 2010-06-23 12:39:02.000000000 +0400
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <mystdlib.h>
|
||||
+#include <float.h>
|
||||
@ -178,9 +315,21 @@ diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.cpp netgen-4.5.new/libsrc/mesh
|
||||
err += 1e12;
|
||||
else
|
||||
err += frob * frob / det;
|
||||
diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.hpp netgen-4.5.new/libsrc/meshing/meshtype.hpp
|
||||
--- netgen-4.5.old/libsrc/meshing/meshtype.hpp 2006-02-10 10:11:08.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/meshing/meshtype.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
@@ -2222,9 +2223,9 @@
|
||||
|
||||
MeshingParameters :: MeshingParameters ()
|
||||
{
|
||||
- optimize3d = "cmdmstm";
|
||||
+ optimize3d = (char*)"cmdmstm";
|
||||
optsteps3d = 3;
|
||||
- optimize2d = "smsmsmSmSmSm";
|
||||
+ optimize2d = (char*)"smsmsmSmSmSm";
|
||||
optsteps2d = 3;
|
||||
opterrpow = 2;
|
||||
blockfill = 1;
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/meshing/meshtype.hpp netgen-4.5_new/libsrc/meshing/meshtype.hpp
|
||||
--- netgen-4.5_orig/libsrc/meshing/meshtype.hpp 2006-02-10 13:11:08.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/meshing/meshtype.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -13,7 +13,7 @@
|
||||
Classes for NETGEN
|
||||
*/
|
||||
@ -190,9 +339,9 @@ diff -Naur netgen-4.5.old/libsrc/meshing/meshtype.hpp netgen-4.5.new/libsrc/mesh
|
||||
enum ELEMENT_TYPE {
|
||||
SEGMENT = 1, SEGMENT3 = 2,
|
||||
TRIG = 10, QUAD=11, TRIG6 = 12, QUAD6 = 13, QUAD8 = 14,
|
||||
diff -Naur netgen-4.5.old/libsrc/meshing/smoothing2.cpp netgen-4.5.new/libsrc/meshing/smoothing2.cpp
|
||||
--- netgen-4.5.old/libsrc/meshing/smoothing2.cpp 2006-01-11 16:08:20.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/meshing/smoothing2.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/meshing/smoothing2.cpp netgen-4.5_new/libsrc/meshing/smoothing2.cpp
|
||||
--- netgen-4.5_orig/libsrc/meshing/smoothing2.cpp 2006-01-11 19:08:20.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/meshing/smoothing2.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -300,7 +300,7 @@
|
||||
double Opti2SurfaceMinFunction ::
|
||||
FuncGrad (const Vector & x, Vector & grad) const
|
||||
@ -311,9 +460,9 @@ diff -Naur netgen-4.5.old/libsrc/meshing/smoothing2.cpp netgen-4.5.new/libsrc/me
|
||||
if (moveisok)
|
||||
{
|
||||
for (j = 0; j < locelements.Size(); j++)
|
||||
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 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Inter2d.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Inter2d.cxx netgen-4.5_new/libsrc/occ/Partition_Inter2d.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Inter2d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Inter2d.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -29,10 +29,10 @@
|
||||
// $Header$
|
||||
|
||||
@ -327,9 +476,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter2d.cxx netgen-4.5.new/libsrc
|
||||
#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 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Inter3d.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Inter3d.cxx netgen-4.5_new/libsrc/occ/Partition_Inter3d.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Inter3d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Inter3d.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -29,13 +29,17 @@
|
||||
// $Header$
|
||||
|
||||
@ -349,9 +498,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Inter3d.cxx netgen-4.5.new/libsrc
|
||||
#include <BRepOffset_Tool.hxx>
|
||||
#include <BRep_Builder.hxx>
|
||||
#include <BRep_Tool.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 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Loop.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Loop.cxx netgen-4.5_new/libsrc/occ/Partition_Loop.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Loop.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Loop.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -29,12 +29,14 @@
|
||||
// $Header$
|
||||
|
||||
@ -369,9 +518,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop.cxx netgen-4.5.new/libsrc/oc
|
||||
#include <BRep_Builder.hxx>
|
||||
#include <BRepAlgo_FaceRestrictor.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 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Loop2d.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Loop2d.cxx netgen-4.5_new/libsrc/occ/Partition_Loop2d.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Loop2d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Loop2d.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -12,9 +12,11 @@
|
||||
// $Header$
|
||||
|
||||
@ -385,9 +534,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop2d.cxx netgen-4.5.new/libsrc/
|
||||
#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 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Loop3d.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Loop3d.cxx netgen-4.5_new/libsrc/occ/Partition_Loop3d.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Loop3d.cxx 2005-06-09 18:51:10.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Loop3d.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -10,6 +10,11 @@
|
||||
// Module : GEOM
|
||||
|
||||
@ -400,9 +549,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Loop3d.cxx netgen-4.5.new/libsrc/
|
||||
#include "Partition_Loop3d.ixx"
|
||||
|
||||
#include <TopExp_Explorer.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 06:33:27.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/Partition_Spliter.cxx 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/Partition_Spliter.cxx netgen-4.5_new/libsrc/occ/Partition_Spliter.cxx
|
||||
--- netgen-4.5_orig/libsrc/occ/Partition_Spliter.cxx 2005-07-11 10:33:27.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/occ/Partition_Spliter.cxx 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -29,14 +29,15 @@
|
||||
// $Header$
|
||||
|
||||
@ -421,9 +570,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/Partition_Spliter.cxx netgen-4.5.new/libsrc
|
||||
#include <Precision.hxx>
|
||||
#include <TopAbs_Orientation.hxx>
|
||||
#include <TopExp.hxx>
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occconstruction.cpp netgen-4.5.new/libsrc/occ/occconstruction.cpp
|
||||
--- netgen-4.5.old/libsrc/occ/occconstruction.cpp 2005-12-06 15:15:53.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occconstruction.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/occconstruction.cpp netgen-4.5_new/libsrc/occ/occconstruction.cpp
|
||||
--- netgen-4.5_orig/libsrc/occ/occconstruction.cpp 2005-12-06 18:15:53.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/occconstruction.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -28,8 +28,8 @@
|
||||
#include <BRepAlgoAPI_Common.hxx>
|
||||
#include <BRepAlgoAPI_Fuse.hxx>
|
||||
@ -435,9 +584,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/occconstruction.cpp netgen-4.5.new/libsrc/o
|
||||
#include <BRepOffsetAPI_MakeOffsetShape.hxx>
|
||||
#include <ShapeFix_Shape.hxx>
|
||||
namespace netgen
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/occgenmesh.cpp
|
||||
--- netgen-4.5.old/libsrc/occ/occgenmesh.cpp 2006-02-07 10:12:48.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occgenmesh.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/occgenmesh.cpp netgen-4.5_new/libsrc/occ/occgenmesh.cpp
|
||||
--- netgen-4.5_orig/libsrc/occ/occgenmesh.cpp 2006-02-07 13:12:48.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/occgenmesh.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -28,7 +28,7 @@
|
||||
return Point<3> (p.X(), p.Y(), p.Z());
|
||||
}
|
||||
@ -447,7 +596,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
ARRAY<MeshPoint> & ps,
|
||||
ARRAY<double> & params,
|
||||
Mesh & mesh)
|
||||
@@ -49,23 +49,19 @@
|
||||
@@ -49,23 +49,18 @@
|
||||
hvalue[0] = 0;
|
||||
pnt = c->Value(s0);
|
||||
|
||||
@ -460,11 +609,12 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
{
|
||||
oldpnt = pnt;
|
||||
pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
|
||||
+ double dist = pnt.Distance(oldpnt);
|
||||
hvalue[i] = hvalue[i-1] +
|
||||
1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
|
||||
- hvalue[i] = hvalue[i-1] +
|
||||
- 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
|
||||
- pnt.Distance(oldpnt);
|
||||
+ dist;
|
||||
+ double dist = pnt.Distance(oldpnt);
|
||||
+ hvalue[i] = hvalue[i-1] + min( 1.0,
|
||||
+ 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*dist);
|
||||
|
||||
//(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
|
||||
// << " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
|
||||
@ -475,7 +625,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
}
|
||||
|
||||
// nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
|
||||
@@ -74,7 +70,7 @@
|
||||
@@ -74,13 +69,16 @@
|
||||
ps.SetSize(nsubedges-1);
|
||||
params.SetSize(nsubedges+1);
|
||||
|
||||
@ -484,7 +634,17 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
int i1 = 0;
|
||||
do
|
||||
{
|
||||
@@ -112,7 +108,7 @@
|
||||
if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
|
||||
{
|
||||
- params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
|
||||
+ // EAP. For nsubedges comparable to DIVIDEEDGESECTIONS (issue 0021073)
|
||||
+ double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
|
||||
+ params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
|
||||
+ //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
|
||||
pnt = c->Value(params[i]);
|
||||
ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
|
||||
i++;
|
||||
@@ -112,7 +110,7 @@
|
||||
|
||||
static void FindEdges (OCCGeometry & geom, Mesh & mesh)
|
||||
{
|
||||
@ -493,7 +653,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
multithread.task = "Edge meshing";
|
||||
|
||||
(*testout) << "edge meshing" << endl;
|
||||
@@ -124,6 +120,7 @@
|
||||
@@ -124,6 +122,7 @@
|
||||
(*testout) << "nedges = " << nedges << endl;
|
||||
|
||||
double eps = 1e-6 * geom.GetBoundingBox().Diam();
|
||||
@ -501,7 +661,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
for (int i = 1; i <= nvertices; i++)
|
||||
{
|
||||
@@ -133,7 +130,7 @@
|
||||
@@ -133,7 +132,7 @@
|
||||
bool exists = 0;
|
||||
if (merge_solids)
|
||||
for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
|
||||
@ -510,7 +670,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
{
|
||||
exists = 1;
|
||||
break;
|
||||
@@ -163,6 +160,7 @@
|
||||
@@ -163,6 +162,7 @@
|
||||
{
|
||||
TopoDS_Face face = TopoDS::Face(exp1.Current());
|
||||
int facenr = geom.fmap.FindIndex(face);
|
||||
@ -518,7 +678,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
if (face2solid[0][facenr-1] == 0)
|
||||
face2solid[0][facenr-1] = solidnr;
|
||||
@@ -184,6 +182,9 @@
|
||||
@@ -184,6 +184,9 @@
|
||||
int facenr = 0;
|
||||
int edgenr = 0;
|
||||
|
||||
@ -528,7 +688,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
(*testout) << "faces = " << geom.fmap.Extent() << endl;
|
||||
int curr = 0;
|
||||
@@ -232,6 +233,11 @@
|
||||
@@ -232,6 +235,11 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -540,7 +700,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
|
||||
geom.vmap.FindIndex(TopExp::LastVertex (edge)))
|
||||
{
|
||||
@@ -276,8 +282,8 @@
|
||||
@@ -276,8 +284,8 @@
|
||||
pnums.Last() = -1;
|
||||
for (PointIndex pi = 1; pi < first_ep; pi++)
|
||||
{
|
||||
@ -551,7 +711,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,7 +293,7 @@
|
||||
@@ -287,7 +295,7 @@
|
||||
bool exists = 0;
|
||||
int j;
|
||||
for (j = first_ep; j <= mesh.GetNP(); j++)
|
||||
@ -560,7 +720,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
{
|
||||
exists = 1;
|
||||
break;
|
||||
@@ -394,7 +400,7 @@
|
||||
@@ -394,7 +402,7 @@
|
||||
int i, j, k;
|
||||
int changed;
|
||||
|
||||
@ -569,7 +729,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
multithread.task = "Surface meshing";
|
||||
|
||||
geom.facemeshstatus = 0;
|
||||
@@ -751,7 +757,7 @@
|
||||
@@ -751,7 +759,7 @@
|
||||
multithread.task = savetask;
|
||||
}
|
||||
|
||||
@ -578,7 +738,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
{
|
||||
double hret;
|
||||
kappa *= mparam.curvaturesafety;
|
||||
@@ -779,7 +785,7 @@
|
||||
@@ -779,7 +787,7 @@
|
||||
double nq = n*q;
|
||||
|
||||
Point<3> p = p0 + 0.5*n;
|
||||
@ -587,7 +747,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
if (lambda >= 0 && lambda <= 1)
|
||||
{
|
||||
@@ -799,55 +805,55 @@
|
||||
@@ -799,55 +807,55 @@
|
||||
|
||||
|
||||
|
||||
@ -663,7 +823,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
//(*testout) << "curvature " << curvature << endl;
|
||||
|
||||
@@ -886,51 +892,47 @@
|
||||
@@ -886,51 +894,47 @@
|
||||
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()));
|
||||
|
||||
@ -730,7 +890,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
(*testout) << pnt.X() << " " << pnt.Y() << " " << pnt.Z() << endl;
|
||||
*/
|
||||
}
|
||||
@@ -970,7 +972,7 @@
|
||||
@@ -970,7 +974,7 @@
|
||||
if (mparam.uselocalh)
|
||||
{
|
||||
|
||||
@ -739,7 +899,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
multithread.percent = 0;
|
||||
|
||||
mesh->SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
|
||||
@@ -1075,7 +1077,6 @@
|
||||
@@ -1075,7 +1079,6 @@
|
||||
if (triangulation.IsNull()) continue;
|
||||
|
||||
BRepAdaptor_Surface sf(face, Standard_True);
|
||||
@ -747,7 +907,7 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
|
||||
int ntriangles = triangulation -> NbTriangles();
|
||||
for (int j = 1; j <= ntriangles; j++)
|
||||
@@ -1096,7 +1097,7 @@
|
||||
@@ -1096,7 +1099,7 @@
|
||||
maxside = max (maxside, p[1].Distance(p[2]));
|
||||
//cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
|
||||
|
||||
@ -756,9 +916,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgenmesh.cpp netgen-4.5.new/libsrc/occ/oc
|
||||
//cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
|
||||
}
|
||||
}
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occgeom.cpp netgen-4.5.new/libsrc/occ/occgeom.cpp
|
||||
--- netgen-4.5.old/libsrc/occ/occgeom.cpp 2006-01-25 13:35:50.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occgeom.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/occgeom.cpp netgen-4.5_new/libsrc/occ/occgeom.cpp
|
||||
--- netgen-4.5_orig/libsrc/occ/occgeom.cpp 2006-01-25 16:35:50.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/occgeom.cpp 2010-06-23 12:38:22.000000000 +0400
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "ShapeAnalysis_ShapeContents.hxx"
|
||||
#include "ShapeAnalysis_CheckSmallFace.hxx"
|
||||
@ -935,9 +1095,29 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgeom.cpp netgen-4.5.new/libsrc/occ/occge
|
||||
|
||||
return true;
|
||||
}
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occgeom.hpp netgen-4.5.new/libsrc/occ/occgeom.hpp
|
||||
--- netgen-4.5.old/libsrc/occ/occgeom.hpp 2006-01-25 13:35:50.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occgeom.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
@@ -1190,16 +1189,16 @@
|
||||
return occgeo;
|
||||
}
|
||||
|
||||
- char * shapesname[] =
|
||||
+ const char * shapesname[] =
|
||||
{" ", "CompSolids", "Solids", "Shells",
|
||||
|
||||
"Faces", "Wires", "Edges", "Vertices"};
|
||||
|
||||
- char * shapename[] =
|
||||
+ const char * shapename[] =
|
||||
{" ", "CompSolid", "Solid", "Shell",
|
||||
"Face", "Wire", "Edge", "Vertex"};
|
||||
|
||||
- char * orientationstring[] =
|
||||
+ const char * orientationstring[] =
|
||||
{"+", "-"};
|
||||
|
||||
void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/occgeom.hpp netgen-4.5_new/libsrc/occ/occgeom.hpp
|
||||
--- netgen-4.5_orig/libsrc/occ/occgeom.hpp 2006-01-25 16:35:50.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/occgeom.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -15,8 +15,6 @@
|
||||
#include "Geom_Curve.hxx"
|
||||
#include "Geom2d_Curve.hxx"
|
||||
@ -1014,9 +1194,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/occgeom.hpp netgen-4.5.new/libsrc/occ/occge
|
||||
OCCSurface GetSurface (int surfi)
|
||||
{
|
||||
cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.cpp netgen-4.5.new/libsrc/occ/occmeshsurf.cpp
|
||||
--- netgen-4.5.old/libsrc/occ/occmeshsurf.cpp 2006-01-25 13:36:26.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occmeshsurf.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/occmeshsurf.cpp netgen-4.5_new/libsrc/occ/occmeshsurf.cpp
|
||||
--- netgen-4.5_orig/libsrc/occ/occmeshsurf.cpp 2006-01-25 16:36:26.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/occmeshsurf.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -5,6 +5,8 @@
|
||||
#include <occgeom.hpp>
|
||||
#include <meshing.hpp>
|
||||
@ -1132,9 +1312,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.cpp netgen-4.5.new/libsrc/occ/o
|
||||
|
||||
|
||||
|
||||
diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.hpp netgen-4.5.new/libsrc/occ/occmeshsurf.hpp
|
||||
--- netgen-4.5.old/libsrc/occ/occmeshsurf.hpp 2005-06-09 14:51:10.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/occmeshsurf.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/occ/occmeshsurf.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -151,7 +151,7 @@
|
||||
MeshOptimize2dOCCSurfaces (const OCCGeometry & ageometry);
|
||||
|
||||
@ -1154,9 +1334,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/occmeshsurf.hpp netgen-4.5.new/libsrc/occ/o
|
||||
};
|
||||
|
||||
|
||||
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 11:35:43.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/occ/utilities.h 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/occ/utilities.h netgen-4.5_new/libsrc/occ/utilities.h
|
||||
--- netgen-4.5_orig/libsrc/occ/utilities.h 2005-02-11 14:35:43.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/occ/utilities.h 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <string>
|
||||
@ -1165,9 +1345,9 @@ diff -Naur netgen-4.5.old/libsrc/occ/utilities.h netgen-4.5.new/libsrc/occ/utili
|
||||
#include <cstdlib>
|
||||
// #include "SALOME_Log.hxx"
|
||||
|
||||
diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp
|
||||
--- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp 2006-01-11 16:08:20.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.cpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5_new/libsrc/stlgeom/meshstlsurface.cpp
|
||||
--- netgen-4.5_orig/libsrc/stlgeom/meshstlsurface.cpp 2006-01-11 19:08:20.000000000 +0300
|
||||
+++ netgen-4.5_new/libsrc/stlgeom/meshstlsurface.cpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -946,20 +946,23 @@
|
||||
}
|
||||
|
||||
@ -1216,9 +1396,9 @@ diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.cpp netgen-4.5.new/libsr
|
||||
void MeshOptimizeSTLSurface :: GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const
|
||||
{
|
||||
n = geom.GetChartNormalVector();
|
||||
diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp
|
||||
--- netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp 2004-09-30 13:13:56.000000000 +0000
|
||||
+++ netgen-4.5.new/libsrc/stlgeom/meshstlsurface.hpp 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/libsrc/stlgeom/meshstlsurface.hpp 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -79,12 +79,10 @@
|
||||
virtual void SelectSurfaceOfPoint (const Point3d & p,
|
||||
const PointGeomInfo & gi);
|
||||
@ -1233,9 +1413,39 @@ diff -Naur netgen-4.5.old/libsrc/stlgeom/meshstlsurface.hpp netgen-4.5.new/libsr
|
||||
virtual void GetNormalVector(INDEX surfind, const Point3d & p, Vec3d & n) const;
|
||||
};
|
||||
|
||||
diff -Naur netgen-4.5.old/makeForSalome.sh netgen-4.5.new/makeForSalome.sh
|
||||
--- netgen-4.5.old/makeForSalome.sh 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ netgen-4.5.new/makeForSalome.sh 2009-08-07 08:41:22.000000000 +0000
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/libsrc/stlgeom/stlgeommesh.cpp netgen-4.5_new/libsrc/stlgeom/stlgeommesh.cpp
|
||||
--- netgen-4.5_orig/libsrc/stlgeom/stlgeommesh.cpp 2004-08-10 03:39:45.000000000 +0400
|
||||
+++ netgen-4.5_new/libsrc/stlgeom/stlgeommesh.cpp 2010-06-23 12:39:38.000000000 +0400
|
||||
@@ -1437,7 +1437,7 @@
|
||||
|
||||
if (!optstring || strlen(optstring) == 0)
|
||||
{
|
||||
- mparam.optimize2d = "smcm";
|
||||
+ mparam.optimize2d = (char*)"smcm";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1453,7 +1453,7 @@
|
||||
mparam.grading);
|
||||
mesh -> LoadLocalMeshSize (mparam.meshsizefilename);
|
||||
mesh -> CalcLocalHFromSurfaceCurvature (stlparam.resthsurfmeshcurvfac);
|
||||
- mparam.optimize2d = "cmsmSm";
|
||||
+ mparam.optimize2d = (char*)"cmsmSm";
|
||||
STLSurfaceOptimization (*stlgeometry, *mesh, mparam);
|
||||
#ifdef STAT_STREAM
|
||||
(*statout) << GetTime() << " & ";
|
||||
@@ -1559,7 +1559,7 @@
|
||||
|
||||
if (!optstring || strlen(optstring) == 0)
|
||||
{
|
||||
- mparam.optimize3d = "cmdmstm";
|
||||
+ mparam.optimize3d = (char*)"cmdmstm";
|
||||
}
|
||||
else
|
||||
{
|
||||
diff -Naur --exclude=CVS netgen-4.5_orig/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_new/makeForSalome.sh 2010-06-23 13:19:48.000000000 +0400
|
||||
@@ -0,0 +1,35 @@
|
||||
+#! /bin/sh
|
||||
+cp ngtcltk/ngnewdelete.* libsrc/interface/
|
||||
@ -1268,7 +1478,7 @@ diff -Naur netgen-4.5.old/makeForSalome.sh netgen-4.5.new/makeForSalome.sh
|
||||
+fi
|
||||
+
|
||||
+cp libsrc/interface/nglib.h libsrc/general/*.hpp libsrc/csg/*.hpp libsrc/geom2d/*.hpp \
|
||||
+ libsrc/gprim/*.hpp libsrc/linalg/*.hpp libsrc/meshing/*.hpp \
|
||||
+ libsrc/occ/*.hpp libsrc/opti/*.hpp libsrc/include/mydefs.hpp \
|
||||
+ libsrc/stlgeom/*.hpp libsrc/include/mystdlib.h \
|
||||
+ install/include
|
||||
+ libsrc/gprim/*.hpp libsrc/linalg/*.hpp libsrc/meshing/*.hpp \
|
||||
+ libsrc/occ/*.hpp libsrc/opti/*.hpp libsrc/include/mydefs.hpp \
|
||||
+ libsrc/stlgeom/*.hpp libsrc/include/mystdlib.h \
|
||||
+ install/include
|
||||
|
@ -76,6 +76,7 @@
|
||||
namespace netgen {
|
||||
extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, int, int, char*);
|
||||
extern MeshingParameters mparam;
|
||||
extern volatile multithreadt multithread;
|
||||
}
|
||||
|
||||
using namespace nglib;
|
||||
@ -493,6 +494,10 @@ bool NETGENPlugin_Mesher::fillNgMesh(const netgen::OCCGeometry& occgeom,
|
||||
seg.si = faceID; // = geom.fmap.FindIndex (face);
|
||||
seg.edgenr = ngMesh.GetNSeg() + 1; // segment id
|
||||
ngMesh.AddSegment (seg);
|
||||
|
||||
netgen::Point3d ngP1(p1.node->X(), p1.node->Y(), p1.node->Z());
|
||||
netgen::Point3d ngP2(p2.node->X(), p2.node->Y(), p2.node->Z());
|
||||
ngMesh.RestrictLocalH( netgen::Center( ngP1,ngP2), Dist(ngP1,ngP2));
|
||||
#ifdef DUMP_SEGMENTS
|
||||
cout << "Segment: " << seg.edgenr << " on SMESH face " << helper.GetMeshDS()->ShapeToIndex( face ) << endl
|
||||
<< "\tface index: " << seg.si << endl
|
||||
@ -1396,6 +1401,66 @@ int NETGENPlugin_Mesher::FillSMesh(const netgen::OCCGeometry& occgeo,
|
||||
return comment.empty() ? 0 : 1;
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Restrict size of elements on the given edge
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
void setLocalSize(const TopoDS_Edge& edge,
|
||||
double size,
|
||||
netgen::Mesh& mesh)
|
||||
{
|
||||
const int nb = 1000;
|
||||
Standard_Real u1, u2;
|
||||
Handle(Geom_Curve) curve = BRep_Tool::Curve(edge, u1, u2);
|
||||
Standard_Real delta = (u2-u1)/nb;
|
||||
for(int i=0; i<nb; i++)
|
||||
{
|
||||
Standard_Real u = u1 + delta*i;
|
||||
gp_Pnt p = curve->Value(u);
|
||||
netgen::Point3d pi(p.X(), p.Y(), p.Z());
|
||||
mesh.RestrictLocalH(pi, size);
|
||||
double resultSize = mesh.GetH(pi);
|
||||
if ( resultSize - size > 0.1*size )
|
||||
// netgen does restriction iff oldH/newH > 1.2 (localh.cpp:136)
|
||||
mesh.RestrictLocalH(pi, resultSize/1.201);
|
||||
}
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Convert error into text
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
std::string text(int err)
|
||||
{
|
||||
if ( !err )
|
||||
return string("");
|
||||
return
|
||||
SMESH_Comment("Error in netgen::OCCGenerateMesh() at ") << netgen::multithread.task;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Convert exception into text
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
std::string text(Standard_Failure& ex)
|
||||
{
|
||||
SMESH_Comment str("Exception in netgen::OCCGenerateMesh()");
|
||||
str << " at " << netgen::multithread.task
|
||||
<< ": " << ex.DynamicType()->Name();
|
||||
if ( ex.GetMessageString() && strlen( ex.GetMessageString() ))
|
||||
str << ": " << ex.GetMessageString();
|
||||
return str;
|
||||
}
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* Here we are going to use the NETGEN mesher
|
||||
@ -1458,71 +1523,81 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
|
||||
// vector of nodes in which node index == netgen ID
|
||||
vector< const SMDS_MeshNode* > nodeVec;
|
||||
try
|
||||
|
||||
{
|
||||
// ----------------
|
||||
// compute 1D mesh
|
||||
// ----------------
|
||||
// Pass 1D simple parameters to NETGEN
|
||||
if ( _simpleHyp ) {
|
||||
if ( int nbSeg = _simpleHyp->GetNumberOfSegments() ) {
|
||||
if ( _simpleHyp )
|
||||
{
|
||||
// not to RestrictLocalH() according to curvature during MESHCONST_ANALYSE
|
||||
mparams.uselocalh = false;
|
||||
mparams.grading = 0.8; // not limitited size growth
|
||||
|
||||
if ( _simpleHyp->GetNumberOfSegments() )
|
||||
// nb of segments
|
||||
mparams.segmentsperedge = nbSeg + 0.1;
|
||||
mparams.maxh = occgeo.boundingbox.Diam();
|
||||
mparams.grading = 0.01;
|
||||
}
|
||||
else {
|
||||
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);
|
||||
if (err) comment << "Error in netgen::OCCGenerateMesh() at MESHCONST_ANALYSE step";
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
comment << text(err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
if ( !ngMesh )
|
||||
return false;
|
||||
err = 1;
|
||||
}
|
||||
ngLib.setMesh(( Ng_Mesh*) ngMesh );
|
||||
|
||||
// --------------------------------
|
||||
// Local size on vertices and edges
|
||||
// --------------------------------
|
||||
|
||||
if ( ! _simpleHyp )
|
||||
if ( _simpleHyp )
|
||||
{
|
||||
// Pass 1D simple parameters to NETGEN
|
||||
// --------------------------------
|
||||
int nbSeg = _simpleHyp->GetNumberOfSegments();
|
||||
double segSize = _simpleHyp->GetLocalLength();
|
||||
for ( int iE = 1; iE <= occgeo.emap.Extent(); ++iE )
|
||||
{
|
||||
for(std::map<int,double>::const_iterator it=EdgeId2LocalSize.begin(); it!=EdgeId2LocalSize.end(); it++)
|
||||
{
|
||||
int key = (*it).first;
|
||||
double hi = (*it).second;
|
||||
const TopoDS_Shape& shape = ShapesWithLocalSize.FindKey(key);
|
||||
const TopoDS_Edge& e = TopoDS::Edge(shape);
|
||||
Standard_Real u1, u2;
|
||||
Handle(Geom_Curve) curve = BRep_Tool::Curve(e, u1, u2);
|
||||
GeomAdaptor_Curve AdaptCurve(curve);
|
||||
double length = GCPnts_AbscissaPoint::Length(AdaptCurve, u1, u2);
|
||||
int nb = length/hi;
|
||||
if(nb<2) nb=2;
|
||||
Standard_Real delta = (u2-u1)/nb;
|
||||
for(int i=0; i<nb; i++)
|
||||
{
|
||||
Standard_Real u = u1 + delta*i;
|
||||
gp_Pnt p = curve->Value(u);
|
||||
netgen::Point3d pi(p.X(), p.Y(), p.Z());
|
||||
ngMesh->RestrictLocalH(pi, hi);
|
||||
}
|
||||
}
|
||||
for(std::map<int,double>::const_iterator it=VertexId2LocalSize.begin(); it!=VertexId2LocalSize.end(); it++)
|
||||
{
|
||||
int key = (*it).first;
|
||||
double hi = (*it).second;
|
||||
const TopoDS_Shape& shape = ShapesWithLocalSize.FindKey(key);
|
||||
const TopoDS_Vertex& v = TopoDS::Vertex(shape);
|
||||
gp_Pnt p = BRep_Tool::Pnt(v);
|
||||
netgen::Point3d pi(p.X(), p.Y(), p.Z());
|
||||
ngMesh->RestrictLocalH(pi, hi);
|
||||
}
|
||||
const TopoDS_Edge& e = TopoDS::Edge( occgeo.emap(iE));
|
||||
if ( nbSeg )
|
||||
segSize = SMESH_Algo::EdgeLength( e ) / ( nbSeg - 0.4 );
|
||||
setLocalSize( e, segSize, *ngMesh );
|
||||
}
|
||||
}
|
||||
else // if ( ! _simpleHyp )
|
||||
{
|
||||
// Local size on vertices and edges
|
||||
// --------------------------------
|
||||
for(std::map<int,double>::const_iterator it=EdgeId2LocalSize.begin(); it!=EdgeId2LocalSize.end(); it++)
|
||||
{
|
||||
int key = (*it).first;
|
||||
double hi = (*it).second;
|
||||
const TopoDS_Shape& shape = ShapesWithLocalSize.FindKey(key);
|
||||
const TopoDS_Edge& e = TopoDS::Edge(shape);
|
||||
setLocalSize( e, hi, *ngMesh );
|
||||
}
|
||||
for(std::map<int,double>::const_iterator it=VertexId2LocalSize.begin(); it!=VertexId2LocalSize.end(); it++)
|
||||
{
|
||||
int key = (*it).first;
|
||||
double hi = (*it).second;
|
||||
const TopoDS_Shape& shape = ShapesWithLocalSize.FindKey(key);
|
||||
const TopoDS_Vertex& v = TopoDS::Vertex(shape);
|
||||
gp_Pnt p = BRep_Tool::Pnt(v);
|
||||
netgen::Point3d pi(p.X(), p.Y(), p.Z());
|
||||
ngMesh->RestrictLocalH(pi, hi);
|
||||
}
|
||||
}
|
||||
|
||||
// Precompute internal edges (issue 0020676) in order to
|
||||
// add mesh on them correctly (twice) to netgen mesh
|
||||
@ -1536,16 +1611,24 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
|
||||
// let netgen compute element size by the main geometry in temporary mesh
|
||||
netgen::Mesh *tmpNgMesh = NULL;
|
||||
netgen::OCCGenerateMesh(occgeo, tmpNgMesh, startWith, endWith, optstr);
|
||||
// compute mesh on internal edges
|
||||
endWith = netgen::MESHCONST_MESHEDGES;
|
||||
err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, startWith, endWith, optstr);
|
||||
if (err) comment << "Error in netgen::OCCGenerateMesh() at meshing internal edges";
|
||||
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
netgen::OCCGenerateMesh(occgeo, tmpNgMesh, startWith, endWith, optstr);
|
||||
// compute mesh on internal edges
|
||||
endWith = netgen::MESHCONST_MESHEDGES;
|
||||
err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, startWith, endWith, optstr);
|
||||
comment << text(err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
err = 1;
|
||||
}
|
||||
// fill SMESH by netgen mesh
|
||||
vector< const SMDS_MeshNode* > tmpNodeVec;
|
||||
FillSMesh( intOccgeo, *tmpNgMesh, initState, *_mesh, tmpNodeVec, comment );
|
||||
err = ( !comment.empty() );
|
||||
err = ( err || !comment.empty() );
|
||||
|
||||
nglib::Ng_DeleteMesh((nglib::Ng_Mesh*)tmpNgMesh);
|
||||
}
|
||||
@ -1562,9 +1645,20 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
if (!err)
|
||||
{
|
||||
startWith = endWith = netgen::MESHCONST_MESHEDGES;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
if (err) comment << "Error in netgen::OCCGenerateMesh() at 1D mesh generation";
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
comment << text(err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
err = 1;
|
||||
}
|
||||
}
|
||||
mparams.uselocalh = true; // restore as it is used at surface optimization
|
||||
|
||||
// ---------------------
|
||||
// compute surface mesh
|
||||
// ---------------------
|
||||
@ -1613,55 +1707,25 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
initState = NETGENPlugin_ngMeshInfo(ngMesh);
|
||||
}
|
||||
|
||||
// Precompute internal faces (issue 0020676) in order to
|
||||
// add mesh on them correctly (twice to emulate the crack) to netgen mesh
|
||||
//if ( internals.hasInternalFaces() )
|
||||
// {
|
||||
// // fill SMESH with generated segments
|
||||
// FillSMesh( occgeo, *ngMesh, initState, *_mesh, nodeVec, comment );
|
||||
|
||||
// // load internal shapes into a separate OCCGeometry
|
||||
// netgen::OCCGeometry intOccgeo;
|
||||
// list< SMESH_subMesh* > boundarySM;
|
||||
// internals.getInternalFaces( intOccgeo.fmap, intOccgeo.emap, meshedSM, boundarySM);
|
||||
// intOccgeo.boundingbox = occgeo.boundingbox;
|
||||
// intOccgeo.shape = occgeo.shape;
|
||||
// intOccgeo.facemeshstatus.SetSize (intOccgeo.fmap.Extent());
|
||||
// intOccgeo.facemeshstatus = 0;
|
||||
|
||||
// // let netgen compute element size by the main geometry in temporary mesh
|
||||
// int start = netgen::MESHCONST_ANALYSE, end = netgen::MESHCONST_ANALYSE;
|
||||
// netgen::Mesh *tmpNgMesh = NULL;
|
||||
// netgen::OCCGenerateMesh(occgeo, tmpNgMesh, start, end, optstr);
|
||||
|
||||
// // add already computed elements from submeshes of internal faces to tmpNgMesh
|
||||
// vector< const SMDS_MeshNode* > tmpNodeVec;
|
||||
// fillNgMesh(intOccgeo, *tmpNgMesh, tmpNodeVec, boundarySM);
|
||||
// addIntVerticesInFaces( intOccgeo, *tmpNgMesh, tmpNodeVec, internals );
|
||||
|
||||
// // compute mesh on internal faces
|
||||
// NETGENPlugin_ngMeshInfo prevState(tmpNgMesh);
|
||||
// start = netgen::MESHCONST_MESHEDGES;
|
||||
// end = netgen::MESHCONST_MESHSURFACE;
|
||||
// err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, start, end, optstr);
|
||||
// if (err) comment << "Error in netgen::OCCGenerateMesh() at meshing internal faces";
|
||||
|
||||
// // fill SMESH with computed elements
|
||||
// FillSMesh( intOccgeo, *tmpNgMesh, prevState, *_mesh, tmpNodeVec, comment );
|
||||
// err = ( !comment.empty() );
|
||||
|
||||
// // finally, correctly add elements on internal faces to netgen mesh
|
||||
// err = ! fillNgMesh(occgeo, *ngMesh, nodeVec, meshedSM);
|
||||
// initState = NETGENPlugin_ngMeshInfo(ngMesh);
|
||||
|
||||
// nglib::Ng_DeleteMesh((nglib::Ng_Mesh*)tmpNgMesh);
|
||||
// }
|
||||
|
||||
// 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";
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
comment << text (err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
err = 1;
|
||||
}
|
||||
catch (netgen::NgException exc)
|
||||
{
|
||||
error->myName = err = COMPERR_ALGO_FAILED;
|
||||
comment << exc.What();
|
||||
}
|
||||
}
|
||||
// ---------------------
|
||||
// generate volume mesh
|
||||
@ -1689,10 +1753,6 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
// 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();
|
||||
@ -1710,23 +1770,65 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
initState = NETGENPlugin_ngMeshInfo(ngMesh);
|
||||
}
|
||||
// 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);
|
||||
if (err) comment << "Error in netgen::OCCGenerateMesh()";
|
||||
startWith = endWith = netgen::MESHCONST_MESHVOLUME;
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
comment << text(err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
err = 1;
|
||||
}
|
||||
catch (netgen::NgException exc)
|
||||
{
|
||||
error->myName = err = COMPERR_ALGO_FAILED;
|
||||
comment << exc.What();
|
||||
}
|
||||
// Let netgen optimize 3D mesh
|
||||
if ( !err && _optimize )
|
||||
{
|
||||
startWith = endWith = netgen::MESHCONST_OPTVOLUME;
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
|
||||
comment << text(err);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << text(ex);
|
||||
err = 1;
|
||||
}
|
||||
catch (netgen::NgException exc)
|
||||
{
|
||||
error->myName = err = COMPERR_ALGO_FAILED;
|
||||
comment << exc.What();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!err && mparams.secondorder > 0)
|
||||
{
|
||||
netgen::OCCRefinementSurfaces ref (occgeo);
|
||||
ref.MakeSecondOrder (*ngMesh);
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS;
|
||||
netgen::OCCRefinementSurfaces ref (occgeo);
|
||||
ref.MakeSecondOrder (*ngMesh);
|
||||
}
|
||||
catch (Standard_Failure& ex)
|
||||
{
|
||||
comment << "Exception in netgen at passing to 2nd order ";
|
||||
err = 1;
|
||||
}
|
||||
catch (netgen::NgException exc)
|
||||
{
|
||||
error->myName = err = COMPERR_ALGO_FAILED;
|
||||
comment << exc.What();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (netgen::NgException exc)
|
||||
{
|
||||
error->myName = err = COMPERR_ALGO_FAILED;
|
||||
comment << exc.What();
|
||||
}
|
||||
|
||||
int nbNod = ngMesh->GetNP();
|
||||
int nbSeg = ngMesh->GetNSeg();
|
||||
int nbFac = ngMesh->GetNSE();
|
||||
@ -1734,10 +1836,10 @@ bool NETGENPlugin_Mesher::Compute()
|
||||
bool isOK = ( !err && (_isVolume ? (nbVol > 0) : (nbFac > 0)) );
|
||||
|
||||
MESSAGE((err ? "Mesh Generation failure" : "End of Mesh Generation") <<
|
||||
", nb nodes: " << nbNod <<
|
||||
", nb nodes: " << nbNod <<
|
||||
", nb segments: " << nbSeg <<
|
||||
", nb faces: " << nbFac <<
|
||||
", nb volumes: " << nbVol);
|
||||
", nb faces: " << nbFac <<
|
||||
", nb volumes: " << nbVol);
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// Feed back the SMESHDS with the generated Nodes and Elements
|
||||
@ -1934,7 +2036,7 @@ bool NETGENPlugin_Mesher::Evaluate(MapShapeNbElems& aResMap)
|
||||
aVec[SMDSEntity_Quad_Triangle] = nbFaces;
|
||||
}
|
||||
else {
|
||||
aVec[SMDSEntity_Node] = nbNodes;
|
||||
aVec[SMDSEntity_Node] = Max ( nbNodes, 0 );
|
||||
aVec[SMDSEntity_Triangle] = nbFaces;
|
||||
}
|
||||
aResMap[sm].swap(aVec);
|
||||
|
@ -179,9 +179,14 @@ static TError AddSegmentsToMesh(netgen::Mesh& ngMesh,
|
||||
{
|
||||
StdMeshers_FaceSidePtr wire = wires[ iW ];
|
||||
if ( wire->MissVertexNode() )
|
||||
return TError
|
||||
(new SMESH_ComputeError(COMPERR_BAD_INPUT_MESH, "Missing nodes on vertices"));
|
||||
|
||||
{
|
||||
// Commented for issue 0020960. It worked for the case, let's wait for case where it doesn't.
|
||||
// It seems that there is no reason for this limitation
|
||||
// return TError
|
||||
// (new SMESH_ComputeError(COMPERR_BAD_INPUT_MESH, "Missing nodes on vertices"));
|
||||
if (getenv("USER") && string("eap")==getenv("USER"))
|
||||
cout << "Warning: NETGENPlugin_NETGEN_2D_ONLY : try to work with missing nodes on vertices"<<endl;
|
||||
}
|
||||
const vector<UVPtStruct>& uvPtVec = wire->GetUVPtStruct();
|
||||
if ( uvPtVec.size() != wire->NbPoints() )
|
||||
return TError
|
||||
|
@ -235,7 +235,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
||||
if ( !isTraingle )
|
||||
{
|
||||
// use adaptor to convert quadrangle face into triangles
|
||||
const list<const SMDS_FaceOfNodes*>* faces = Adaptor.GetTriangles(elem);
|
||||
const list<const SMDS_MeshFace*>* faces = Adaptor.GetTriangles(elem);
|
||||
if(faces==0)
|
||||
return error( COMPERR_BAD_INPUT_MESH,
|
||||
SMESH_Comment("No triangles in adaptor for element ")<<elem->GetID());
|
||||
@ -423,25 +423,22 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
||||
_quadraticMesh = true;
|
||||
|
||||
StdMeshers_QuadToTriaAdaptor Adaptor;
|
||||
Adaptor.Compute(aMesh);
|
||||
if ( aMesh.NbQuadrangles() > 0 )
|
||||
Adaptor.Compute(aMesh);
|
||||
|
||||
SMDS_FaceIteratorPtr fIt = MeshDS->facesIterator();
|
||||
TIDSortedElemSet sortedFaces; // 0020279: control the "random" use when using mesh algorithms
|
||||
while( fIt->more()) sortedFaces.insert( fIt->next() );
|
||||
|
||||
TIDSortedElemSet::iterator itFace = sortedFaces.begin(), fEnd = sortedFaces.end();
|
||||
for ( ; itFace != fEnd; ++itFace )
|
||||
SMDS_FaceIteratorPtr fIt = MeshDS->facesIterator(/*idInceasingOrder=*/true);
|
||||
while( fIt->more())
|
||||
{
|
||||
// check element
|
||||
const SMDS_MeshElement* elem = *itFace;
|
||||
const SMDS_MeshElement* elem = fIt->next();
|
||||
if ( !elem )
|
||||
return error( COMPERR_BAD_INPUT_MESH, "Null element encounters");
|
||||
|
||||
vector< const SMDS_MeshElement* > trias;
|
||||
bool isTraingle = ( elem->NbNodes() == ( elem->IsQuadratic() ? 6 : 3 ));
|
||||
bool isTraingle = ( elem->NbCornerNodes() == 3 );
|
||||
if ( !isTraingle ) {
|
||||
// using adaptor
|
||||
const list<const SMDS_FaceOfNodes*>* faces = Adaptor.GetTriangles(elem);
|
||||
const list<const SMDS_MeshFace*>* faces = Adaptor.GetTriangles(elem);
|
||||
if(faces==0)
|
||||
continue; // Issue 0020682. There already can be 3d mesh
|
||||
trias.assign( faces->begin(), faces->end() );
|
||||
@ -508,6 +505,13 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
||||
Ng_AddSurfaceElement(Netgen_mesh, NG_TRIG, Netgen_triangle);
|
||||
}
|
||||
|
||||
// vector of nodes in which node index == netgen ID
|
||||
vector< const SMDS_MeshNode* > nodeVec ( nodeToNetgenID.size() + 1 );
|
||||
// insert old nodes into nodeVec
|
||||
for ( n_id = nodeToNetgenID.begin(); n_id != nodeToNetgenID.end(); ++n_id )
|
||||
nodeVec.at( n_id->second ) = n_id->first;
|
||||
nodeToNetgenID.clear();
|
||||
|
||||
// -------------------------
|
||||
// Generate the volume mesh
|
||||
// -------------------------
|
||||
@ -531,11 +535,17 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
||||
status = NG_VOLUME_FAILURE;
|
||||
}
|
||||
catch (...) {
|
||||
error("Bad mesh input!!!");
|
||||
error("Exception in Ng_GenerateVolumeMesh()");
|
||||
status = NG_VOLUME_FAILURE;
|
||||
}
|
||||
if ( GetComputeError()->IsOK() ) {
|
||||
error( status, "Bad mesh input!!!");
|
||||
switch ( status ) {
|
||||
case NG_SURFACE_INPUT_ERROR:error( status, "NG_SURFACE_INPUT_ERROR");
|
||||
case NG_VOLUME_FAILURE: error( status, "NG_VOLUME_FAILURE");
|
||||
case NG_STL_INPUT_ERROR: error( status, "NG_STL_INPUT_ERROR");
|
||||
case NG_SURFACE_FAILURE: error( status, "NG_SURFACE_FAILURE");
|
||||
case NG_FILE_NOT_FOUND: error( status, "NG_FILE_NOT_FOUND");
|
||||
};
|
||||
}
|
||||
|
||||
int Netgen_NbOfNodesNew = Ng_GetNP(Netgen_mesh);
|
||||
@ -550,25 +560,24 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
|
||||
// Feed back the SMESHDS with the generated Nodes and Volume Elements
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
if ( status == NG_VOLUME_FAILURE )
|
||||
{
|
||||
SMESH_ComputeErrorPtr err = NETGENPlugin_Mesher::readErrors(nodeVec);
|
||||
if ( err && !err->myBadElements.empty() )
|
||||
error( err );
|
||||
}
|
||||
|
||||
bool isOK = ( Netgen_NbOfTetra > 0 );// get whatever built
|
||||
if ( isOK )
|
||||
{
|
||||
// vector of nodes in which node index == netgen ID
|
||||
vector< const SMDS_MeshNode* > nodeVec ( Netgen_NbOfNodesNew + 1 );
|
||||
// insert old nodes into nodeVec
|
||||
for ( n_id = nodeToNetgenID.begin(); n_id != nodeToNetgenID.end(); ++n_id ) {
|
||||
nodeVec.at( n_id->second ) = n_id->first;
|
||||
}
|
||||
// create and insert new nodes into nodeVec
|
||||
nodeVec.resize( Netgen_NbOfNodesNew + 1 );
|
||||
int nodeIndex = Netgen_NbOfNodes + 1;
|
||||
|
||||
for ( ; nodeIndex <= Netgen_NbOfNodesNew; ++nodeIndex )
|
||||
{
|
||||
Ng_GetPoint( Netgen_mesh, nodeIndex, Netgen_point );
|
||||
SMDS_MeshNode * node = aHelper->AddNode(Netgen_point[0],
|
||||
Netgen_point[1],
|
||||
Netgen_point[2]);
|
||||
nodeVec.at(nodeIndex) = node;
|
||||
nodeVec.at(nodeIndex) = aHelper->AddNode(Netgen_point[0],Netgen_point[1],Netgen_point[2]);
|
||||
}
|
||||
|
||||
// create tetrahedrons
|
||||
|
Loading…
Reference in New Issue
Block a user