[packages/netgen-mesher] - started update to 6.2.2404 - doesn't build with mpi - removed obsolete patches and added patches f
baggins
baggins at pld-linux.org
Sat Dec 28 19:48:46 CET 2024
commit 88b5f9b0680a955dda4c5fc560cfdcb5015380de
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Dec 28 20:29:36 2024 +0100
- started update to 6.2.2404
- doesn't build with mpi
- removed obsolete patches and added patches from fedora
0002-Rename-libraries-add-library-versions.patch | 35 +
0010-rename-netgen-binary.patch | 12 +
link-libraries.patch | 23 +
netgen-5.3.0_fixes.patch | 887 -----------------------
netgen-5.3.0_metis.patch | 94 ---
netgen-5.3.0_msc-ver.patch | 31 -
netgen-5.3.1_build.patch | 372 ----------
netgen-mesher.png | Bin 0 -> 3871 bytes
netgen-mesher.spec | 239 +++---
netgen-mesher_egg-info-version.patch | 12 +
netgen_fallback-version.patch | 14 +
netgen_include-order.patch | 49 ++
std-namespace.patch | 124 ++++
13 files changed, 358 insertions(+), 1534 deletions(-)
---
diff --git a/netgen-mesher.spec b/netgen-mesher.spec
index 59ff9d8..4a8c09d 100644
--- a/netgen-mesher.spec
+++ b/netgen-mesher.spec
@@ -1,42 +1,48 @@
+#
+# Conditional build:
+%bcond_with mpich # build mpich packages
+#
Summary: Automatic mesh generation tool
Name: netgen-mesher
-Version: 5.3.1
+Version: 6.2.2404
Release: 0.1
License: LGPLv2
Group: Libraries
-URL: http://sourceforge.net/projects/netgen-mesher/
-Source0: http://downloads.sourceforge.net/netgen-mesher/netgen-%{version}.tar.gz
-# Source0-md5: afd5a9b0b1296c242a9c554f06af6510
-Source1: %{name}.png
+Source0: https://github.com/NGSolve/netgen/archive/v%{version}/netgen-%{version}.tar.gz
+# Source0-md5: 0d1dd5b8858e35ed2564ec86703ff602
+Source1: netgen-mesher.png
Source2: %{name}.desktop
-# Fix various configure.ac and Makefiles issues:
-# - Fix configure.ac to correctly detect dependencies
-# - Fix makefile for togl
-# - Rename shared libaries, the original names are often way too generic
-# - Add missing libraries to LIBADD
-# - Fix nglib invalid soname
-Patch0: netgen-5.3.1_build.patch
-# Some fixes to the code (taken from salome netgen plugin)
-Patch1: netgen-5.3.0_fixes.patch
-# Fix build against recent metis
-Patch2: netgen-5.3.0_metis.patch
# Set a default NETGENDIR appropriate for the fedora packaging
-Patch3: netgen-5.3.0_netgendir.patch
-# Remove some MSC_VER ifdefs (why are they there?)
-Patch4: netgen-5.3.0_msc-ver.patch
+Patch0: netgen-5.3.0_netgendir.patch
# Make some includes relative (needed for when headers are in -private subpackage)
-Patch5: netgen-5.3.0_relative-includes.patch
+Patch1: netgen-5.3.0_relative-includes.patch
+# Rename shared libaries (the original names are often way too generic), add library version
+Patch2: 0002-Rename-libraries-add-library-versions.patch
+# Rename binary in cmake so that exported modules work correctly
+Patch3: 0010-rename-netgen-binary.patch
+# Link against libjpeg and ffmpeg
+Patch4: link-libraries.patch
+# Fix fallback version
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1993574#c11
+Patch5: netgen_fallback-version.patch
+# Fix Status typedef symbol collision by re-ordering includes
+# /usr/include/mpich-x86_64/mpicxx.h:160:18: error: expected identifier before ‘int’
+# 160 | friend class Status;
+Patch6: netgen_include-order.patch
+# Fix invalid egg-info version
+Patch7: netgen-mesher_egg-info-version.patch
+Patch8: std-namespace.patch
+URL: https://www.ngsolve.org/
BuildRequires: Mesa-libGLU-devel
-BuildRequires: OCE-devel
-BuildRequires: Togl-devel
-BuildRequires: autoconf
-BuildRequires: automake
+BuildRequires: OpenCASCADE-devel
+BuildRequires: cmake
+BuildRequires: ffmpeg-devel
BuildRequires: desktop-file-utils
BuildRequires: dos2unix
BuildRequires: libjpeg-turbo-devel
-BuildRequires: libtool
BuildRequires: metis-devel
-BuildRequires: mpich-devel
+%{?with_mpich:BuildRequires: mpich-c++-devel}
+BuildRequires: python3-pybind11
BuildRequires: tk-devel
BuildRequires: xorg-lib-libXmu-devel
Requires: %{name}-common = %{version}-%{release}
@@ -79,39 +85,6 @@ Requires: %{name}-devel = %{version}-%{release}
Private headers of netgen, needed to build certain netgen based
software packages.
-
-
-###############################################################################
-
-%package openmpi
-Summary: Netgen compiled against openmpi
-# Require explicitly for dir ownership and to guarantee the pickup of the right runtime
-Requires: %{name}-common = %{version}-%{release}
-Requires: %{name}-openmpi-libs = %{version}-%{release}
-Requires: openmpi
-
-%description openmpi
-Netgen compiled against openmpi.
-
-%package openmpi-libs
-Summary: Netgen libraries compiled against openmpi
-
-%description openmpi-libs
-Netgen libraries compiled against openmpi.
-
-%package openmpi-devel
-Summary: Development files for Netgen compiled against openmpi
-# Require explicitly for dir ownership
-Requires: %{name}-openmpi = %{version}-%{release}
-Requires: openmpi-devel
-
-%description openmpi-devel
-Development files for Netgen compiled against openmpi.
-
-
-
-###############################################################################
-
%package mpich
Summary: Netgen compiled against mpich
# Require explicitly for dir ownership and to guarantee the pickup of the right runtime
@@ -137,68 +110,66 @@ Requires: mpich-devel
%description mpich-devel
Development files for Netgen compiled against mpich.
-
-###############################################################################
-
%prep
%setup -q -n netgen-%{version}
-# Convert line endings
-find . -type f -exec dos2unix {} \;
-
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
-
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%build
-autoreconf -ifv
-### serial version ###
-mkdir serial
-cd serial
-%configure --enable-occ --with-togl=%{tcl_sitearch}/Togl1.7 --enable-jpeglib \
- --includedir=%{_includedir}/%{name} --datadir=%{_datadir}/%{name}
-# --enable-ffmpeg
-# Fix unused-direct-shlib-dependency
-sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
-%{__make} %{?_smp_mflags}
-cd ..
-
-### openmpi version ###
-%{_openmpi_load}
-export CXX=mpicxx
-mkdir openmpi
-cd openmpi
-%configure --enable-occ --with-togl=%{tcl_sitearch}/Togl1.7 --enable-jpeglib --enable-parallel \
- --bindir=$MPI_BIN --libdir=$MPI_LIB --includedir=$MPI_INCLUDE/%{name} --datadir=%{_datadir}/%{name}
-# --enable-ffmpeg
-# Fix unused-direct-shlib-dependency
-sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
-%{__make} %{?_smp_mflags}
-cd ..
-%{_openmpi_unload}
+mkdir -p build
+cd build
+%cmake ../ \
+ -DUSE_SUPERBUILD=OFF \
+ -DUSE_NATIVE_ARCH=OFF \
+ -DNG_INSTALL_SUFFIX=netgen_mesher \
+ -DNG_INSTALL_DIR_INCLUDE=%{_includedir}/%{name} \
+ -DNG_INSTALL_DIR_LIB=%{_libdir} \
+ -DNG_INSTALL_DIR_CMAKE=%{_libdir}/cmake/%{name} \
+ -DNG_INSTALL_DIR_PYTHON=%{py3_sitearch} \
+ -DPREFER_SYSTEM_PYBIND11=ON \
+ -DUSE_JPEG=ON \
+ -DUSE_MPEG=ON \
+ -DUSE_OCC=ON \
+ -DOpenGL_GL_PREFERENCE=GLVND
+
+%{__make}
### mpich version ###
-%{_mpich_load}
+%if %{with mpich}
+cd ../
+mkdir -p build-mpich
+cd build-mpich
export CXX=mpicxx
-mkdir mpich
-cd mpich
-%configure --enable-occ --with-togl=%{tcl_sitearch}/Togl1.7 --enable-jpeglib --enable-parallel \
- --bindir=$MPI_BIN --libdir=$MPI_LIB --includedir=$MPI_INCLUDE/%{name} --datadir=%{_datadir}/%{name}
-# --enable-ffmpeg
-# Fix unused-direct-shlib-dependency
-sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
-%{__make} %{?_smp_mflags}
-cd ..
-%{_mpich_unload}
+%cmake ../ \
+ -DUSE_SUPERBUILD=OFF \
+ -DUSE_NATIVE_ARCH=OFF \
+ -DNG_INSTALL_SUFFIX=netgen_mesher \
+ -DNG_INSTALL_DIR_INCLUDE=%{_includedir}/mpich/%{name} \
+ -DNG_INSTALL_DIR_BIN=%{_libdir}/mpich/bin/ \
+ -DNG_INSTALL_DIR_LIB=%{_libdir}/mpich/lib/ \
+ -DNG_INSTALL_DIR_CMAKE=%{_libdir}/mpich/lib/cmake/%{name} \
+ -DNG_INSTALL_DIR_PYTHON=%{_libdir}/mpich/python%{python3_version}/site-packages \
+ -DPREFER_SYSTEM_PYBIND11=ON \
+ -DUSE_JPEG=ON \
+ -DUSE_MPEG=ON \
+ -DUSE_OCC=ON \
+ -DUSE_MPI=ON \
+ -DOpenGL_GL_PREFERENCE=GLVND
+
+%{__make}
+%endif
%install
%define writepkgconfig() \
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/$MPI_LIB/pkgconfig; \
+install -d -m 0755 $RPM_BUILD_ROOT/$MPI_LIB/pkgconfig; \
cat > $RPM_BUILD_ROOT/$MPI_LIB/pkgconfig/%{name}.pc << EOF\
prefix=%{_prefix}\
exec_prefix=${prefix}\
@@ -214,45 +185,30 @@ Cflags: -I\\\${includedir}\
EOF\
%{nil}
-### openmpi version ###
-%{_openmpi_load}
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT -C openmpi
-%writepkgconfig
-# Avoid conflicts with netgen, remove data files (are correctly installed below)
-mv $RPM_BUILD_ROOT/$MPI_BIN/netgen $RPM_BUILD_ROOT/$MPI_BIN/%{name}
-rm -f $RPM_BUILD_ROOT/$MPI_BIN/*.tcl rm -f $RPM_BUILD_ROOT/$MPI_BIN/*.ocf
-%{_openmpi_unload}
-
### mpich version ###
-%{_mpich_load}
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT -C mpich
+%if %{with mpich}
+%{__make} -C build-mpich install \
+ DESTDIR=$RPM_BUILD_ROOT
%writepkgconfig
# Avoid conflicts with netgen, remove data files (are correctly installed below)
mv $RPM_BUILD_ROOT/$MPI_BIN/netgen $RPM_BUILD_ROOT/$MPI_BIN/%{name}
rm -f $RPM_BUILD_ROOT/$MPI_BIN/*.tcl rm -f $RPM_BUILD_ROOT/$MPI_BIN/*.ocf
-%{_mpich_unload}
+%endif
### serial version ###
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT -C serial
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
+
export MPI_LIB=%{_libdir}
export MPI_INCLUDE=%{_includedir}
%writepkgconfig
-# Avoid conflicts with netgen, move data files to correct place
-mv $RPM_BUILD_ROOT/%{_bindir}/netgen $RPM_BUILD_ROOT/%{_bindir}/%{name}
-mv $RPM_BUILD_ROOT%{_bindir}/*.tcl $RPM_BUILD_ROOT%{_bindir}/*.ocf $RPM_BUILD_ROOT%{_datadir}/%{name}
-chmod -x $RPM_BUILD_ROOT%{_datadir}/%{name}/*.tcl $RPM_BUILD_ROOT%{_datadir}/%{name}/*.ocf
-
-find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
# Install icon and desktop file
-install -Dpm 0644 %SOURCE1 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
-desktop-file-install --dir $RPM_BUILD_ROOT/%{_desktopdir}/ %SOURCE2
+install -Dpm 0644 %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
+desktop-file-install --dir %{buildroot}/%{_datadir}/applications/ %{SOURCE2}
# Delete the doc folder, the files are in %%doc below
-rm -rf $RPM_BUILD_ROOT/%{_docdir}
+rm -rf %{buildroot}/%{_prefix}/doc
# Install private headers
(
@@ -260,6 +216,8 @@ cd libsrc
find \( -name *.hpp -or -name *.hxx -or -name *.h -or -name *.ixx -or -name *.jxx \) -exec install -Dpm 0644 {} $RPM_BUILD_ROOT%{_includedir}/%{name}/private/{} \;
)
+# Install the nglib.h header
+install -Dpm 0644 nglib/nglib.h %{buildroot}%{_includedir}/%{name}/nglib.h
%post common
%update_desktop_database
@@ -279,11 +237,6 @@ fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%post openmpi-libs -p /sbin/ldconfig
-%postun openmpi-libs -p /sbin/ldconfig
-
-%post mpich-libs -p /sbin/ldconfig
-%postun mpich-libs -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
@@ -316,22 +269,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%{_includedir}/%{name}/private
-%files openmpi
-%defattr(644,root,root,755)
-%{_libdir}/openmpi/bin/*
-
-%files openmpi-libs
-%defattr(644,root,root,755)
-%{_libdir}/openmpi/lib/*.so.*
-%{_libdir}/openmpi/lib/libnglib-%{version}.so
-
-%files openmpi-devel
-%defattr(644,root,root,755)
-%{_includedir}/openmpi*/%{name}
-%{_libdir}/openmpi/lib/*.so
-%{_libdir}/openmpi/lib/pkgconfig/%{name}.pc
-%exclude %{_libdir}/openmpi/lib/libnglib-%{version}.so
-
+%if %{with mpich}
%files mpich
%defattr(644,root,root,755)
%{_libdir}/mpich/bin/*
@@ -347,3 +285,4 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/mpich/lib/*.so
%{_libdir}/mpich/lib/pkgconfig/%{name}.pc
%exclude %{_libdir}/mpich/lib/libnglib-%{version}.so
+%endif
diff --git a/0002-Rename-libraries-add-library-versions.patch b/0002-Rename-libraries-add-library-versions.patch
new file mode 100644
index 0000000..4a99e91
--- /dev/null
+++ b/0002-Rename-libraries-add-library-versions.patch
@@ -0,0 +1,35 @@
+diff -rupN --no-dereference netgen-6.2.2406/CMakeLists.txt netgen-6.2.2406-new/CMakeLists.txt
+--- netgen-6.2.2406/CMakeLists.txt 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/CMakeLists.txt 2024-12-03 18:26:10.964477186 +0100
+@@ -248,8 +248,10 @@ endif(APPLE)
+
+ #######################################################################
+ add_library(nglib ${NGLIB_LIBRARY_TYPE})
++set_target_properties(nglib PROPERTIES VERSION ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR})
+ if(USE_GUI)
+ add_library(nggui ${NGGUI_LIBRARY_TYPE})
++ set_target_properties(nggui PROPERTIES VERSION ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR})
+ if(WIN32)
+ set_target_properties( nggui PROPERTIES OUTPUT_NAME "libnggui")
+ endif(WIN32)
+diff -rupN --no-dereference netgen-6.2.2406/libsrc/core/CMakeLists.txt netgen-6.2.2406-new/libsrc/core/CMakeLists.txt
+--- netgen-6.2.2406/libsrc/core/CMakeLists.txt 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/libsrc/core/CMakeLists.txt 2024-12-03 18:26:10.964477186 +0100
+@@ -14,6 +14,7 @@ add_library(ngcore ${NGCORE_LIBRARY_TYPE
+ version.cpp
+ ng_mpi_wrapper.cpp
+ )
++set_target_properties(ngcore PROPERTIES VERSION ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR})
+
+ string(REPLACE "|" ";" ng_compile_flags_replace_sep "${NG_COMPILE_FLAGS}")
+ target_compile_options(ngcore PUBLIC ${ng_compile_flags_replace_sep})
+diff -rupN --no-dereference netgen-6.2.2406/ng/Togl2.1/CMakeLists.txt netgen-6.2.2406-new/ng/Togl2.1/CMakeLists.txt
+--- netgen-6.2.2406/ng/Togl2.1/CMakeLists.txt 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/ng/Togl2.1/CMakeLists.txt 2024-12-03 18:26:10.965477158 +0100
+@@ -33,4 +33,6 @@ endif(WIN32)
+ target_include_directories(togl PUBLIC ${OPENGL_INCLUDE_DIR})
+ target_link_libraries(togl PUBLIC ${OPENGL_LIBRARY})
+ set_target_properties(togl PROPERTIES POSITION_INDEPENDENT_CODE ON )
++set_target_properties(togl PROPERTIES OUTPUT_NAME "ngtogl")
++set_target_properties(togl PROPERTIES VERSION ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR})
+ install(TARGETS togl DESTINATION ${NG_INSTALL_DIR} COMPONENT netgen)
diff --git a/0010-rename-netgen-binary.patch b/0010-rename-netgen-binary.patch
new file mode 100644
index 0000000..ae5d3b7
--- /dev/null
+++ b/0010-rename-netgen-binary.patch
@@ -0,0 +1,12 @@
+diff -rupN --no-dereference netgen-6.2.2406/ng/CMakeLists.txt netgen-6.2.2406-new/ng/CMakeLists.txt
+--- netgen-6.2.2406/ng/CMakeLists.txt 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/ng/CMakeLists.txt 2024-12-03 18:26:11.278468519 +0100
+@@ -31,6 +31,8 @@ if(USE_GUI)
+ target_link_libraries( netgen ${Python3_LIBRARIES} ${TCL_LIBRARY} ${TK_LIBRARY})
+ endif(NOT BUILD_FOR_CONDA)
+
++ set_target_properties(netgen PROPERTIES OUTPUT_NAME netgen-mesher)
++
+ install(TARGETS nggui ${NG_INSTALL_DIR})
+ endif(USE_GUI)
+
diff --git a/link-libraries.patch b/link-libraries.patch
new file mode 100644
index 0000000..4bce838
--- /dev/null
+++ b/link-libraries.patch
@@ -0,0 +1,23 @@
+diff -rupN --no-dereference netgen-6.2.2406/CMakeLists.txt netgen-6.2.2406-new/CMakeLists.txt
+--- netgen-6.2.2406/CMakeLists.txt 2024-12-03 18:26:11.119472907 +0100
++++ netgen-6.2.2406-new/CMakeLists.txt 2024-12-03 18:26:11.383465621 +0100
+@@ -252,6 +252,7 @@ set_target_properties(nglib PROPERTIES V
+ if(USE_GUI)
+ add_library(nggui ${NGGUI_LIBRARY_TYPE})
+ set_target_properties(nggui PROPERTIES VERSION ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR})
++ target_link_libraries(nggui PRIVATE ${JPEG_LIBRARIES} ${FFMPEG_LIBRARIES})
+ if(WIN32)
+ set_target_properties( nggui PROPERTIES OUTPUT_NAME "libnggui")
+ endif(WIN32)
+diff -rupN --no-dereference netgen-6.2.2406/ng/CMakeLists.txt netgen-6.2.2406-new/ng/CMakeLists.txt
+--- netgen-6.2.2406/ng/CMakeLists.txt 2024-12-03 18:26:11.376465814 +0100
++++ netgen-6.2.2406-new/ng/CMakeLists.txt 2024-12-03 18:26:11.384465593 +0100
+@@ -23,7 +23,7 @@ if(USE_GUI)
+ if(WIN32)
+ target_sources(netgen PRIVATE ../windows/netgen.rc)
+ endif(WIN32)
+- target_link_libraries( netgen nglib nggui netgen_python netgen_gui)
++ target_link_libraries( netgen nglib nggui netgen_python netgen_gui ${JPEG_LIBRARIES} ${FFMPEG_LIBRARIES})
+ install(TARGETS netgen ${NG_INSTALL_DIR})
+ if(APPLE)
+ set_target_properties(netgen PROPERTIES OUTPUT_NAME netgen)
diff --git a/netgen-5.3.0_fixes.patch b/netgen-5.3.0_fixes.patch
deleted file mode 100644
index a1e146f..0000000
--- a/netgen-5.3.0_fixes.patch
+++ /dev/null
@@ -1,887 +0,0 @@
-diff -rupN netgen-5.3.0/libsrc/meshing/meshtype.cpp netgen-5.3.0-new/libsrc/meshing/meshtype.cpp
---- netgen-5.3.0/libsrc/meshing/meshtype.cpp 2014-09-01 20:54:48.985249216 +0200
-+++ netgen-5.3.0-new/libsrc/meshing/meshtype.cpp 2014-09-01 20:55:10.298248328 +0200
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h> // to get DBL_MIN defined
-
- #include "meshing.hpp"
-
-@@ -666,7 +667,8 @@ namespace netgen
-
- double det = trans.Det();
-
-- if (det <= 0)
-+ // if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- err += 1e12;
- else
- err += frob * frob / det;
-@@ -722,7 +724,8 @@ namespace netgen
-
- double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
-
-- if (det <= 0)
-+ // if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- {
- dd = 0;
- return 1e12;
-@@ -806,7 +809,8 @@ namespace netgen
- = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
- + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
-
-- if (det <= 0)
-+ // if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- err += 1e12;
- else
- {
-@@ -856,7 +860,8 @@ namespace netgen
- frob /= 2;
-
- double det = trans.Det();
-- if (det <= 0)
-+ //if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- err += 1e12;
- else
- err += frob * frob / det;
-@@ -1864,7 +1869,8 @@ namespace netgen
- case PYRAMID:
- {
- double noz = 1-p(2);
-- if (noz == 0.0) noz = 1e-10;
-+ //if (noz == 0.0) noz = 1e-10;
-+ if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
-
- double xi = p(0) / noz;
- double eta = p(1) / noz;
-@@ -2030,7 +2036,8 @@ namespace netgen
-
- double det = -trans.Det();
-
-- if (det <= 0)
-+ //if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- err += 1e12;
- else
- err += frob * frob * frob / det;
-@@ -2102,7 +2109,8 @@ namespace netgen
- ddet *= -1;
-
-
-- if (det <= 0)
-+ //if (det <= 0)
-+ if (det <= DBL_MIN) // avoid FPE
- err += 1e12;
- else
- {
-@@ -2184,7 +2192,7 @@ namespace netgen
-
- det *= -1;
-
-- if (det <= 0)
-+ if (det <= DBL_MIN)
- err += 1e12;
- else
- {
-@@ -2513,10 +2521,10 @@ namespace netgen
-
- MeshingParameters :: MeshingParameters ()
- {
-- optimize3d = "cmdmustm";
-+ optimize3d = (char*)"cmdmustm"; // optimize3d = "cmdmustm";
- //optimize3d = "cmdmstm";
- optsteps3d = 3;
-- optimize2d = "smsmsmSmSmSm";
-+ optimize2d = (char*)"smsmsmSmSmSm"; // optimize2d = "smsmsmSmSmSm";
- optsteps2d = 3;
- opterrpow = 2;
- blockfill = 1;
-diff -rupN netgen-5.3.0/libsrc/meshing/meshtype.hpp netgen-5.3.0-new/libsrc/meshing/meshtype.hpp
---- netgen-5.3.0/libsrc/meshing/meshtype.hpp 2014-09-01 20:54:48.973249217 +0200
-+++ netgen-5.3.0-new/libsrc/meshing/meshtype.hpp 2014-09-01 20:55:10.298248328 +0200
-@@ -15,6 +15,7 @@ namespace netgen
- Classes for NETGEN
- */
-
-+class Mesh; // added due to compilation errors on some platforms
-
-
- enum ELEMENT_TYPE {
-diff -rupN netgen-5.3.0/libsrc/meshing/smoothing2.cpp netgen-5.3.0-new/libsrc/meshing/smoothing2.cpp
---- netgen-5.3.0/libsrc/meshing/smoothing2.cpp 2014-09-01 20:54:49.063249213 +0200
-+++ netgen-5.3.0-new/libsrc/meshing/smoothing2.cpp 2014-09-01 20:55:10.299248328 +0200
-@@ -361,7 +361,8 @@ namespace netgen
- vgrad = 0;
- double badness = 0;
-
-- ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ //normal already computed: ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ n = ld.normal;
- pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
-
- // meshthis -> ProjectPoint (surfi, pp1);
-@@ -577,7 +578,8 @@ namespace netgen
- vgrad = 0;
- badness = 0;
-
-- ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ //normal already computed: ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ n = ld.normal;
-
- pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
-
-@@ -649,7 +651,8 @@ namespace netgen
- vgrad = 0;
- badness = 0;
-
-- ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ //normal already computed: ld.meshthis -> GetNormalVector (ld.surfi, ld.sp1, ld.gi1, n);
-+ n = ld.normal;
-
- // pp1 = sp1;
- // pp1.Add2 (x.Get(1), t1, x.Get(2), t2);
-@@ -1079,7 +1082,7 @@ namespace netgen
- {
- mesh[pi] = Point<3> (origp);
- }
--
-+ break; // exit as <fact> is not used anymore
- }
- }
- }
-diff -rupN netgen-5.3.0/libsrc/occ/occconstruction.cpp netgen-5.3.0-new/libsrc/occ/occconstruction.cpp
---- netgen-5.3.0/libsrc/occ/occconstruction.cpp 2014-09-01 20:54:48.461249238 +0200
-+++ netgen-5.3.0-new/libsrc/occ/occconstruction.cpp 2014-09-01 20:55:10.299248328 +0200
-@@ -28,7 +28,7 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
- //#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
-diff -rupN netgen-5.3.0/libsrc/occ/occgenmesh.cpp netgen-5.3.0-new/libsrc/occ/occgenmesh.cpp
---- netgen-5.3.0/libsrc/occ/occgenmesh.cpp 2014-09-01 20:54:48.330249244 +0200
-+++ netgen-5.3.0-new/libsrc/occ/occgenmesh.cpp 2014-09-01 20:55:10.300248328 +0200
-@@ -57,6 +57,8 @@ namespace netgen
-
-
-
-+
-+ static // useless out of this file
- double ComputeH (double kappa)
- {
- double hret;
-@@ -74,8 +76,7 @@ namespace netgen
- }
-
-
--
--
-+ static // useless out of this file
- void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
- BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)
- {
-@@ -171,8 +172,8 @@ namespace netgen
- if(h < 1e-4*maxside)
- return;
-
--
-- if (h > 30) return;
-+ // commented to restrict H on a large sphere for example
-+ //if (h > 30) return;
- }
-
- if (h < maxside && depth < 10)
-@@ -231,6 +232,7 @@ namespace netgen
-
-
-
-+ static // useless out of this file
- void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,
- Array<double> & params, Mesh & mesh)
- {
-@@ -250,8 +252,8 @@ namespace netgen
- hvalue[0] = 0;
- pnt = c->Value(s0);
-
-- double olddist = 0;
-- double dist = 0;
-+ //double olddist = 0; -- useless variables
-+ //double dist = 0;
-
- int tmpVal = (int)(DIVIDEEDGESECTIONS);
-
-@@ -259,15 +261,19 @@ namespace netgen
- {
- oldpnt = pnt;
- pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
-+ // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
- hvalue[i] = hvalue[i-1] +
-- 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-- pnt.Distance(oldpnt);
-+ // 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+ // pnt.Distance(oldpnt);
-+ min( 1.0,
-+ 1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+ pnt.Distance(oldpnt));
-
- //(*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;
-
-- olddist = dist;
-- dist = pnt.Distance(oldpnt);
-+ //olddist = dist; -- useless variables
-+ //dist = pnt.Distance(oldpnt);
- }
-
- // nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
-@@ -282,7 +288,10 @@ namespace netgen
- {
- if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
- {
-- params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+ // -- for nsubedges comparable to DIVIDEEDGESECTIONS
-+ //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+ double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
-+ params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
- pnt = c->Value(params[i]);
- ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
- i++;
-@@ -326,6 +335,7 @@ namespace netgen
- (*testout) << "nedges = " << nedges << endl;
-
- double eps = 1e-6 * geom.GetBoundingBox().Diam();
-+ const double eps2 = eps * eps; // -- small optimization
-
- for (int i = 1; i <= nvertices; i++)
- {
-@@ -335,7 +345,8 @@ namespace netgen
- bool exists = 0;
- if (merge_solids)
- for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
-- if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
-+ //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
-+ if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
- {
- exists = 1;
- break;
-@@ -365,6 +376,7 @@ namespace netgen
- {
- TopoDS_Face face = TopoDS::Face(exp1.Current());
- int facenr = geom.fmap.FindIndex(face);
-+ if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
-
- if (face2solid[0][facenr-1] == 0)
- face2solid[0][facenr-1] = solidnr;
-@@ -384,6 +396,7 @@ namespace netgen
- int facenr = 0;
- int edgenr = 0;
-
-+ edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
-
- (*testout) << "faces = " << geom.fmap.Extent() << endl;
- int curr = 0;
-@@ -445,6 +458,7 @@ namespace netgen
- //(*testout) << "ignoring degenerated edge" << endl;
- continue;
- }
-+ if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
-
- if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
- geom.vmap.FindIndex(TopExp::LastVertex (edge)))
-@@ -482,15 +496,64 @@ namespace netgen
- }
- else
- {
-- Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));
-- Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));
-+ TopoDS_Iterator vIt( edge, false );
-+ TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+ TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
-+ if ( v1.Orientation() == TopAbs_REVERSED )
-+ std::swap( v1, v2 );
-+ const bool isClosedEdge = v1.IsSame( v2 );
-+
-+ Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
-+ Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
-+ double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
-+ if ( isClosedEdge )
-+ tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
-
- pnums[0] = -1;
- pnums.Last() = -1;
- for (PointIndex pi = 1; pi < first_ep; pi++)
- {
-- if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;
-- if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;
-+ if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
-+ if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
-+ }
-+ if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
-+ ( !isClosedEdge && pnums[0] == pnums.Last() ))
-+ pnums[0] = pnums.Last() = -1;
-+ if ( pnums[0] == -1 || pnums.Last() == -1 )
-+ {
-+ // take into account a possible large gap between a vertex and an edge curve
-+ // end and a large vertex tolerance covering the whole edge
-+ if ( pnums[0] == -1 )
-+ {
-+ double tol = BRep_Tool::Tolerance( v1 );
-+ for (PointIndex pi = 1; pi < first_ep; pi++)
-+ if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
-+ pnums[0] = pi;
-+
-+ if ( pnums[0] == -1 )
-+ pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
-+ }
-+ if ( isClosedEdge )
-+ {
-+ pnums.Last() = pnums[0];
-+ }
-+ else
-+ {
-+ if ( pnums.Last() == -1 )
-+ {
-+ double tol = BRep_Tool::Tolerance( v2 );
-+ for (PointIndex pi = 1; pi < first_ep; pi++)
-+ if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
-+ pnums.Last() = pi;
-+
-+ if ( pnums.Last() == -1 )
-+ pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
-+ }
-+
-+ if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
-+ Dist2( lp, mesh[PointIndex(pnums.Last())]))
-+ std::swap( pnums[0], pnums.Last() );
-+ }
- }
- }
-
-@@ -1465,3 +1528,4 @@ namespace netgen
- }
-
- #endif
-+
-diff -rupN netgen-5.3.0/libsrc/occ/occgeom.cpp netgen-5.3.0-new/libsrc/occ/occgeom.cpp
---- netgen-5.3.0/libsrc/occ/occgeom.cpp 2014-09-01 20:54:48.357249242 +0200
-+++ netgen-5.3.0-new/libsrc/occ/occgeom.cpp 2014-09-01 20:55:10.300248328 +0200
-@@ -8,6 +8,8 @@
- #include "ShapeAnalysis_CheckSmallFace.hxx"
- #include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
- #include "ShapeAnalysis_Surface.hxx"
-+#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
-+#include <TopAbs_State.hxx>
- #include "BRepAlgoAPI_Fuse.hxx"
- #include "BRepCheck_Analyzer.hxx"
- #include "BRepLib.hxx"
-@@ -16,10 +18,17 @@
- #include "ShapeFix_FixSmallFace.hxx"
- #include "Partition_Spliter.hxx"
-
--
- namespace netgen
- {
-- void OCCGeometry :: PrintNrShapes ()
-+ // free data used to optimize Project() and FastProject()
-+ OCCGeometry::~OCCGeometry()
-+ {
-+ NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+ for (; it.More(); it.Next())
-+ delete it.Value();
-+ }
-+
-+ void OCCGeometry :: PrintNrShapes ()
- {
- TopExp_Explorer e;
- int count = 0;
-@@ -951,25 +960,58 @@ namespace netgen
- }
-
-
-+ // returns a projector and a classifier for the given surface
-+ void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+ BRepTopAdaptor_FClass2d*& cls) const
-+ {
-+ //MSV: organize caching projector in the map
-+ if (fprjmap.IsBound(surfi))
-+ {
-+ proj = fprjmap.Find(surfi);
-+ cls = fclsmap.Find(surfi);
-+ }
-+ else
-+ {
-+ const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+ Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+ proj = new ShapeAnalysis_Surface(aSurf);
-+ fprjmap.Bind(surfi, proj);
-+ cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+ fclsmap.Bind(surfi, cls);
-+ }
-+ }
-
--
-- void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+ // void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+ bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
- {
- static int cnt = 0;
- if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
-
- gp_Pnt pnt(p(0), p(1), p(2));
-
-- double u,v;
-- Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-- Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-- gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-- suval.Coord( u, v);
-- pnt = thesurf->Value( u, v );
--
--
-+ // -- Optimization: use cached projector and classifier
-+ // double u,v;
-+ // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+ // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-+ // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-+ // suval.Coord( u, v);
-+ // pnt = thesurf->Value( u, v );
-+
-+ Handle(ShapeAnalysis_Surface) proj;
-+ BRepTopAdaptor_FClass2d *cls;
-+ GetFaceTools(surfi, proj, cls);
-+
-+ gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+ if (cls->Perform(p2d) == TopAbs_OUT)
-+ {
-+ return false;
-+ }
-+ pnt = proj->Value(p2d);
-+ p2d.Coord(u, v);
-+
- p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-
-+ return true;
- }
-
-
-@@ -979,54 +1021,69 @@ namespace netgen
- {
- gp_Pnt p(ap(0), ap(1), ap(2));
-
-- Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
--
-- gp_Pnt x = surface->Value (u,v);
--
-- if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
--
-- gp_Vec du, dv;
--
-- surface->D1(u,v,x,du,dv);
--
-- int count = 0;
--
-- gp_Pnt xold;
-- gp_Vec n;
-- double det, lambda, mu;
--
-- do {
-- count++;
--
-- n = du^dv;
--
-- det = Det3 (n.X(), du.X(), dv.X(),
-- n.Y(), du.Y(), dv.Y(),
-- n.Z(), du.Z(), dv.Z());
--
-- if (det < 1e-15) return false;
--
-- lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-- n.Y(), p.Y()-x.Y(), dv.Y(),
-- n.Z(), p.Z()-x.Z(), dv.Z())/det;
--
-- mu = Det3 (n.X(), du.X(), p.X()-x.X(),
-- n.Y(), du.Y(), p.Y()-x.Y(),
-- n.Z(), du.Z(), p.Z()-x.Z())/det;
--
-- u += lambda;
-- v += mu;
--
-- xold = x;
-- surface->D1(u,v,x,du,dv);
--
-- } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
--
-- // (*testout) << "FastProject count: " << count << endl;
--
-- if (count == 50) return false;
--
-- ap = Point<3> (x.X(), x.Y(), x.Z());
-+ // -- Optimization: use cached projector and classifier
-+ // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+ //
-+ // gp_Pnt x = surface->Value (u,v);
-+ //
-+ // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
-+ //
-+ // gp_Vec du, dv;
-+ //
-+ // surface->D1(u,v,x,du,dv);
-+ //
-+ // int count = 0;
-+ //
-+ // gp_Pnt xold;
-+ // gp_Vec n;
-+ // double det, lambda, mu;
-+ //
-+ // do {
-+ // count++;
-+ //
-+ // n = du^dv;
-+ //
-+ // det = Det3 (n.X(), du.X(), dv.X(),
-+ // n.Y(), du.Y(), dv.Y(),
-+ // n.Z(), du.Z(), dv.Z());
-+ //
-+ // if (det < 1e-15) return false;
-+ //
-+ // lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-+ // n.Y(), p.Y()-x.Y(), dv.Y(),
-+ // n.Z(), p.Z()-x.Z(), dv.Z())/det;
-+ //
-+ // mu = Det3 (n.X(), du.X(), p.X()-x.X(),
-+ // n.Y(), du.Y(), p.Y()-x.Y(),
-+ // n.Z(), du.Z(), p.Z()-x.Z())/det;
-+ //
-+ // u += lambda;
-+ // v += mu;
-+ //
-+ // xold = x;
-+ // surface->D1(u,v,x,du,dv);
-+ //
-+ // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
-+ //
-+ // // (*testout) << "FastProject count: " << count << endl;
-+ //
-+ // if (count == 50) return false;
-+ //
-+ // ap = Point<3> (x.X(), x.Y(), x.Z());
-+ Handle(ShapeAnalysis_Surface) proj;
-+ BRepTopAdaptor_FClass2d *cls;
-+ GetFaceTools(surfi, proj, cls);
-+
-+ gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+ if (cls->Perform(p2d) == TopAbs_OUT)
-+ {
-+ //cout << "Projection fails" << endl;
-+ return false;
-+ }
-+
-+ p = proj->Value(p2d);
-+ p2d.Coord(u, v);
-+ ap = Point<3> (p.X(), p.Y(), p.Z());
-
- return true;
- }
-diff -rupN netgen-5.3.0/libsrc/occ/occgeom.hpp netgen-5.3.0-new/libsrc/occ/occgeom.hpp
---- netgen-5.3.0/libsrc/occ/occgeom.hpp 2014-09-01 20:54:48.429249239 +0200
-+++ netgen-5.3.0-new/libsrc/occ/occgeom.hpp 2014-09-01 20:55:10.300248328 +0200
-@@ -15,8 +15,8 @@
- #include "Geom_Curve.hxx"
- #include "Geom2d_Curve.hxx"
- #include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "BRepTools.hxx"
- #include "TopExp.hxx"
- #include "BRepBuilderAPI_MakeVertex.hxx"
-@@ -42,8 +42,8 @@
- #include "Geom_Curve.hxx"
- #include "Geom2d_Curve.hxx"
- #include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "TopoDS_Wire.hxx"
- #include "BRepTools_WireExplorer.hxx"
- #include "BRepTools.hxx"
-@@ -68,7 +68,7 @@
- #include "IGESToBRep_Reader.hxx"
- #include "Interface_Static.hxx"
- #include "GeomAPI_ExtremaCurveCurve.hxx"
--#include "Standard_ErrorHandler.hxx"
-+//#include "Standard_ErrorHandler.hxx"
- #include "Standard_Failure.hxx"
- #include "ShapeUpgrade_ShellSewing.hxx"
- #include "ShapeFix_Shape.hxx"
-@@ -80,6 +80,10 @@
- #include "ShapeAnalysis.hxx"
- #include "ShapeBuild_ReShape.hxx"
-
-+// -- Optimization: to use cached projector and classifier
-+#include <NCollection_DataMap.hxx>
-+class Handle_ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
-
- // Philippose - 29/01/2009
- // OpenCascade XDE Support
-@@ -192,6 +196,9 @@ namespace netgen
- class OCCGeometry : public NetgenGeometry
- {
- Point<3> center;
-+ // -- Optimization: to use cached projector and classifier
-+ mutable NCollection_DataMap<int,Handle_ShapeAnalysis_Surface> fprjmap;
-+ mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
-
- public:
- TopoDS_Shape shape;
-@@ -247,6 +254,8 @@ namespace netgen
- virtual void Save (string filename) const;
-
-
-+ ~OCCGeometry(); // -- to free cached projector and classifier
-+
- void BuildFMap();
-
- Box<3> GetBoundingBox()
-@@ -266,9 +275,14 @@ namespace netgen
- Point<3> Center()
- { return center;}
-
-- void Project (int surfi, Point<3> & p) const;
-+ // void Project (int surfi, Point<3> & p) const; -- optimization
-+ bool Project (int surfi, Point<3> & p, double& u, double& v) const;
- bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
-
-+ // -- Optimization: to use cached projector and classifier
-+ void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+ BRepTopAdaptor_FClass2d*& cls) const;
-+
- OCCSurface GetSurface (int surfi)
- {
- cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
-diff -rupN netgen-5.3.0/libsrc/occ/occmeshsurf.cpp netgen-5.3.0-new/libsrc/occ/occmeshsurf.cpp
---- netgen-5.3.0/libsrc/occ/occmeshsurf.cpp 2014-09-01 20:54:48.386249241 +0200
-+++ netgen-5.3.0-new/libsrc/occ/occmeshsurf.cpp 2014-09-01 20:55:10.304248328 +0200
-@@ -6,6 +6,7 @@
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
- #include <ShapeAnalysis_Surface.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
-
-
- namespace netgen
-@@ -434,23 +435,33 @@ namespace netgen
-
- void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
- {
-- geometry.Project (surfind, p);
-+ // geometry.Project (surfind, p); -- signature of Project() changed for optimization
-+ double u, v;
-+ geometry.Project (surfind, p, u, v);
- }
-
-
- int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
- {
-- double u = gi.u;
-- double v = gi.v;
-+ //double u = gi.u;
-+ //double v = gi.v;
-
- Point<3> hp = p;
-- if (geometry.FastProject (surfind, hp, u, v))
-- {
-- p = hp;
-- return 1;
-- }
-- ProjectPoint (surfind, p);
-- return CalcPointGeomInfo (surfind, gi, p);
-+ // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
-+ // if (geometry.FastProject (surfind, hp, u, v))
-+ // {
-+ // p = hp;
-+ // return 1;
-+ // }
-+ // ProjectPoint (surfind, p);
-+ // return CalcPointGeomInfo (surfind, gi, p);
-+ bool ok;
-+ if (gi.trignum > 0)
-+ ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+ else
-+ ok = geometry.Project (surfind, hp, gi.u, gi.v);
-+ p = hp;
-+ return ok;
- }
-
-
-@@ -680,7 +691,8 @@ namespace netgen
- if (!geometry.FastProject (surfi, hnewp, u, v))
- {
- // cout << "Fast projection to surface fails! Using OCC projection" << endl;
-- geometry.Project (surfi, hnewp);
-+ // geometry.Project (surfi, hnewp); -- Project() changed for optimization
-+ geometry.Project (surfi, hnewp, u, v);
- }
-
- newgi.trignum = 1;
-@@ -689,7 +701,7 @@ namespace netgen
- }
-
- newp = hnewp;
-- }
-+ }//; -- to compile with -Wall -pedantic
-
-
- void OCCRefinementSurfaces ::
-@@ -708,14 +720,18 @@ namespace netgen
- hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
- newp = hnewp;
- newgi = ap1;
-- };
-+ }
-
-
- void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
- {
- if (surfi > 0)
-- geometry.Project (surfi, p);
-- };
-+ // geometry.Project (surfi, p); -- Project() changed for optimization
-+ {
-+ double u, v;
-+ geometry.Project (surfi, p, u, v);
-+ }
-+ }//; -- to compile with -Wall -pedantic
-
- void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
- {
-@@ -723,9 +739,10 @@ namespace netgen
- if (!geometry.FastProject (surfi, p, gi.u, gi.v))
- {
- cout << "Fast projection to surface fails! Using OCC projection" << endl;
-- geometry.Project (surfi, p);
-+ double u, v;
-+ geometry.Project (surfi, p, u, v);
- }
-- };
-+ }
-
-
-
-diff -rupN netgen-5.3.0/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.0-new/libsrc/occ/Partition_Inter3d.cxx
---- netgen-5.3.0/libsrc/occ/Partition_Inter3d.cxx 2014-09-01 20:54:48.316249244 +0200
-+++ netgen-5.3.0-new/libsrc/occ/Partition_Inter3d.cxx 2014-09-01 20:58:56.691238891 +0200
-@@ -243,9 +243,11 @@ static void PutInBounds (const TopoDS_Fa
- Standard_Integer i, nbExt = anExtPS.NbExt();
- Extrema_POnSurf aPOnSurf;
- for (i = 1; i <= nbExt; ++i )
-- // if (anExtPS.Value( i ) <= TolE) // V6.3
-- if (anExtPS.SquareDistance( i ) <= TolE) // V6.5
-- {
-+ // porting to OCCT6.5.1
-+ // if (anExtPS.Value( i ) <= TolE) // V6.3
-+ // if (anExtPS.SquareDistance( i ) <= TolE) // V6.5
-+ if (anExtPS.SquareDistance( i ) <= TolE * TolE)
-+ {
- aPOnSurf = anExtPS.Point( i );
- break;
- }
-diff -rupN netgen-5.3.0/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.0-new/libsrc/occ/Partition_Loop2d.cxx
---- netgen-5.3.0/libsrc/occ/Partition_Loop2d.cxx 2014-09-01 20:54:48.419249240 +0200
-+++ netgen-5.3.0-new/libsrc/occ/Partition_Loop2d.cxx 2014-09-01 20:55:10.305248328 +0200
-@@ -210,7 +210,7 @@ static Standard_Boolean SelectEdge(cons
- Cc->D1(uc, PC, CTg1);
- if (!isForward) CTg1.Reverse();
-
-- Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
-+ Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
-
- // select an edge whose first derivative is most left of CTg1
- // ie an angle between Tg1 and CTg1 is least
-@@ -234,7 +234,7 @@ static Standard_Boolean SelectEdge(cons
- // -PI < angle < PI
- Standard_Real angle = Tg1.Angle(CTg1);
-
-- if (PI - Abs(angle) <= tolAng)
-+ if (M_PI - Abs(angle) <= tolAng)
- {
- // an angle is too close to PI; assure that an angle sign really
- // reflects an edge position: +PI - an edge is worst,
-diff -rupN netgen-5.3.0/libsrc/occ/Partition_Spliter.cxx netgen-5.3.0-new/libsrc/occ/Partition_Spliter.cxx
---- netgen-5.3.0/libsrc/occ/Partition_Spliter.cxx 2014-09-01 20:54:48.277249246 +0200
-+++ netgen-5.3.0-new/libsrc/occ/Partition_Spliter.cxx 2014-09-01 20:58:36.954239713 +0200
-@@ -1169,8 +1169,10 @@ static void findEqual (const TopTools_Li
- for (; j<=nbj && ok; ++j) {
- if (Extrema.IsMin(j)) {
- hasMin = Standard_True;
-+ // porting to OCCT6.5.1
- // ok = Extrema.Value(j) <= tol; // V6.3
-- ok = Extrema.SquareDistance(j) <= tol; // V6.5
-+ // ok = Extrema.SquareDistance(j) <= tol; // V6.5
-+ ok = Extrema.SquareDistance(j) <= tol * tol;
- }
- }
- }
-diff -rupN netgen-5.3.0/libsrc/occ/utilities.h netgen-5.3.0-new/libsrc/occ/utilities.h
---- netgen-5.3.0/libsrc/occ/utilities.h 2014-09-01 20:54:48.457249238 +0200
-+++ netgen-5.3.0-new/libsrc/occ/utilities.h 2014-09-01 20:55:10.306248327 +0200
-@@ -33,6 +33,7 @@
-
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-
-diff -rupN netgen-5.3.0/libsrc/stlgeom/stlgeommesh.cpp netgen-5.3.0-new/libsrc/stlgeom/stlgeommesh.cpp
---- netgen-5.3.0/libsrc/stlgeom/stlgeommesh.cpp 2014-09-01 20:54:47.912249261 +0200
-+++ netgen-5.3.0-new/libsrc/stlgeom/stlgeommesh.cpp 2014-09-01 20:55:10.307248327 +0200
-@@ -1435,7 +1435,8 @@ int STLMeshingDummy (STLGeometry* stlgeo
- /*
- if (!optstring || strlen(optstring) == 0)
- {
-- mparam.optimize2d = "smcm";
-+ //mparam.optimize2d = (char*)"smcm";
-+ mparam.optimize2d = (char*)"smcm";
- }
- else
- {
-@@ -1453,7 +1454,7 @@ int STLMeshingDummy (STLGeometry* stlgeo
- mesh -> LoadLocalMeshSize (mparam.meshsizefilename);
- mesh -> CalcLocalHFromSurfaceCurvature (mparam.grading,
- stlparam.resthsurfmeshcurvfac);
-- mparam.optimize2d = "cmsmSm";
-+ mparam.optimize2d = "(char*)cmsmSm";
- STLSurfaceOptimization (*stlgeometry, *mesh, mparam);
- #ifdef STAT_STREAM
- (*statout) << GetTime() << " & ";
-@@ -1560,7 +1561,8 @@ int STLMeshingDummy (STLGeometry* stlgeo
- /*
- if (!optstring || strlen(optstring) == 0)
- {
-- mparam.optimize3d = "cmdmstm";
-+ //mparam.optimize3d = "cmdmstm";
-+ mparam.optimize3d = (char*)"cmdmstm";
- }
- else
- {
-diff -rupN netgen-5.3.0/nglib/nglib.h netgen-5.3.0-new/nglib/nglib.h
---- netgen-5.3.0/nglib/nglib.h 2014-09-01 20:54:47.470249279 +0200
-+++ netgen-5.3.0-new/nglib/nglib.h 2014-09-01 20:55:10.307248327 +0200
-@@ -24,7 +24,7 @@
- // Philippose - 14.02.2009
- // Modifications for creating a DLL in Windows
- #ifdef WIN32
-- #ifdef NGLIB_EXPORTS || nglib_EXPORTS
-+ #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
- #define DLL_HEADER __declspec(dllexport)
- #else
- #define DLL_HEADER __declspec(dllimport)
diff --git a/netgen-5.3.0_metis.patch b/netgen-5.3.0_metis.patch
deleted file mode 100644
index 96ee961..0000000
--- a/netgen-5.3.0_metis.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff -rupN netgen-5.3.0/libsrc/meshing/parallelmesh.cpp netgen-5.3.0-new/libsrc/meshing/parallelmesh.cpp
---- netgen-5.3.0/libsrc/meshing/parallelmesh.cpp 2014-09-01 20:54:48.987249216 +0200
-+++ netgen-5.3.0-new/libsrc/meshing/parallelmesh.cpp 2014-09-01 21:02:25.783230174 +0200
-@@ -14,7 +14,7 @@ namespace metis {
-
- #if METIS_VER_MAJOR >= 5
- #define METIS5
-- typedef idx_t idxtype;
-+ typedef metis::idx_t idxtype;
- #else
- #define METIS4
- typedef idxtype idx_t;
-@@ -794,10 +794,10 @@ namespace netgen
- eptr.Append (eind.Size());
- Array<idx_t> epart(ne), npart(nn);
-
-- int nparts = ntasks-1;
-- int edgecut;
-+ metis::idx_t nparts = ntasks-1;
-+ metis::idx_t edgecut;
-
-- int ncommon = 3;
-+ metis::idx_t ncommon = 3;
- METIS_PartMeshDual (&ne, &nn, &eptr[0], &eind[0], NULL, NULL, &ncommon, &nparts,
- NULL, NULL,
- &edgecut, &epart[0], &npart[0]);
-@@ -1029,11 +1029,11 @@ namespace netgen
- eptr.Append (eind.Size());
- Array<idx_t> epart(ne), npart(nn);
-
-- int nparts = ntasks-1;
-- int edgecut;
-+ metis::idx_t nparts = ntasks-1;
-+ metis::idx_t edgecut;
-
-
-- int ncommon = 3;
-+ metis::idx_t ncommon = 3;
- METIS_PartMeshDual (&ne, &nn, &eptr[0], &eind[0], &nwgt[0], NULL, &ncommon, &nparts,
- NULL, NULL,
- &edgecut, &epart[0], &npart[0]);
-@@ -1266,7 +1266,7 @@ namespace netgen
-
- for ( int vert = 0; vert < nn; vert++ )
- {
-- FlatArray<int> array ( cnt[vert], &adjacency[ xadj[vert] ] );
-+ FlatArray<metis::idx_t> array ( cnt[vert], &adjacency[ xadj[vert] ] );
- BubbleSort(array);
- }
-
-@@ -1377,7 +1377,7 @@ namespace netgen
-
- for ( int el = 0; el < ne; el++ )
- {
-- FlatArray<int> array ( cnt[el], &adjacency[ xadj[el] ] );
-+ FlatArray<metis::idx_t> array ( cnt[el], &adjacency[ xadj[el] ] );
- BubbleSort(array);
- }
-
-@@ -1428,8 +1428,8 @@ namespace netgen
- void Mesh :: PartDualHybridMesh2D ( )
- {
- #ifdef METIS
-- int ne = GetNSE();
-- int nv = GetNV();
-+ metis::idx_t ne = GetNSE();
-+ metis::idx_t nv = GetNV();
-
- Array<idxtype> xadj(ne+1);
- Array<idxtype> adjacency(ne*4);
-@@ -1484,18 +1484,18 @@ namespace netgen
-
- idxtype *v_weights = NULL, *e_weights = NULL;
-
-- int weightflag = 0;
-- // int numflag = 0;
-- int nparts = ntasks - 1;
-+ metis::idx_t weightflag = 0;
-+ metis::idx_t numflag = 0;
-+ metis::idx_t nparts = ntasks - 1;
-
-- int edgecut;
-+ metis::idx_t edgecut;
- Array<idxtype> part(ne);
-
- for ( int el = 0; el < ne; el++ )
- BubbleSort (adjacency.Range (xadj[el], xadj[el+1]));
-
- #ifdef METIS4
-- int options[5];
-+ metis::idx_t options[5];
- options[0] = 0;
- METIS_PartGraphKway ( &ne, &xadj[0], &adjacency[0], v_weights, e_weights, &weightflag,
- &numflag, &nparts, options, &edgecut, &part[0] );
diff --git a/netgen-5.3.0_msc-ver.patch b/netgen-5.3.0_msc-ver.patch
deleted file mode 100644
index f05c007..0000000
--- a/netgen-5.3.0_msc-ver.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -rupN netgen-5.3.0/ng/ngpkg.cpp netgen-5.3.0-new/ng/ngpkg.cpp
---- netgen-5.3.0/ng/ngpkg.cpp 2014-09-01 20:54:49.423249198 +0200
-+++ netgen-5.3.0-new/ng/ngpkg.cpp 2014-09-01 21:04:13.023225704 +0200
-@@ -3136,13 +3136,11 @@ void PlayAnimFile(const char* name, int
- extern "C" int Ng_Init (Tcl_Interp * interp);
- extern "C" int Ng_CSG_Init (Tcl_Interp * interp);
-
--#ifdef _MSC_VER
- extern "C" int Ng_stl_Init (Tcl_Interp * interp);
- extern "C" int Ng_geom2d_Init (Tcl_Interp * interp);
- #ifdef OCCGEOMETRY
- extern "C" int Ng_occ_Init (Tcl_Interp * interp);
- #endif
--#endif
-
-
- // extern "C" int Ng_Geom2d_Init (Tcl_Interp * interp);
-@@ -3160,13 +3158,11 @@ void PlayAnimFile(const char* name, int
- #endif
-
- Ng_CSG_Init(interp);
--#ifdef _MSC_VER
- Ng_stl_Init(interp);
- Ng_geom2d_Init (interp);
- #ifdef OCCGEOMETRY
- Ng_occ_Init (interp);
- #endif
--#endif
-
-
- // Ng_Geom2d_Init(interp);
diff --git a/netgen-5.3.1_build.patch b/netgen-5.3.1_build.patch
deleted file mode 100644
index dd8d395..0000000
--- a/netgen-5.3.1_build.patch
+++ /dev/null
@@ -1,372 +0,0 @@
-diff -rupN netgen-5.3.1/configure.ac netgen-5.3.1-new/configure.ac
---- netgen-5.3.1/configure.ac 2014-10-07 21:38:21.990021106 +0200
-+++ netgen-5.3.1-new/configure.ac 2014-10-07 21:39:14.530034275 +0200
-@@ -35,15 +35,15 @@ AC_ARG_WITH([occ],
- [AC_HELP_STRING([--with-occ=dir],[use OpenCascade installed in directory dir])],
- [occdir=$withval]
- [occon=true],
-- [occdir=/opt/OpenCASCADE]
-+ [occdir=/usr]
- )
-
-
-
- if test a$occon = atrue ; then
-
-- AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
-- AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-+ AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I/usr/include/oce"])
-+ AC_SUBST([OCCLIBS], ["-lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-
- # -lTKDCAF
-
-@@ -89,18 +89,18 @@ AC_ARG_ENABLE([gui],
- [AC_HELP_STRING([--disable-gui],[don't build netgen with GUI])],
- [if test "$enableval" = yes; then ngguion=true; else ngguion=false; fi])
-
--metisdir=/usr/local
-+metisdir=/usr
- AC_ARG_WITH([metis],
- [AC_HELP_STRING([--with-metis=dir],[path to metis 5.x])],
- [metisdir=$withval],
-- [metisdir=/usr/local]
-+ [metisdir=/usr]
- )
-
- AC_ARG_ENABLE([parallel],
- [AC_HELP_STRING([--enable-parallel],[enable mpi parallelization])],
-- [AC_SUBST([MPI_INCLUDES], "-I$metisdir/include -DMETIS")]
-+ [AC_SUBST([MPI_INCLUDES], "-DMETIS")]
- [CXXFLAGS="$CXXFLAGS -DPARALLEL"]
-- [AC_SUBST([MPI_LIBS], "-L$metisdir/lib -lmetis")]
-+ [AC_SUBST([MPI_LIBS], "-lmetis")]
- )
- # -DVTRACE
- # -lvt-hyb
-diff -rupN netgen-5.3.1/libsrc/csg/Makefile.am netgen-5.3.1-new/libsrc/csg/Makefile.am
---- netgen-5.3.1/libsrc/csg/Makefile.am 2014-10-07 21:38:21.787017193 +0200
-+++ netgen-5.3.1-new/libsrc/csg/Makefile.am 2014-10-07 21:39:14.530034275 +0200
-@@ -8,24 +8,24 @@ revolution.hpp spline3d.hpp vscsg.hpp
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
-
--lib_LTLIBRARIES = libcsg.la
-+lib_LTLIBRARIES = libngcsg.la
-
-
--libcsg_la_SOURCES = algprim.cpp brick.cpp \
-+libngcsg_la_SOURCES = algprim.cpp brick.cpp \
- bspline2d.cpp csgeom.cpp csgparser.cpp curve2d.cpp edgeflw.cpp \
- explicitcurve2d.cpp extrusion.cpp gencyl.cpp genmesh.cpp identify.cpp \
- manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
- solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
-
--libcsg_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
-+libngcsg_la_LIBADD = $(top_builddir)/libsrc/meshing/libngmesh.la
-
-
-
- if NGGUI
--lib_LTLIBRARIES += libcsgvis.la
-+lib_LTLIBRARIES += libngcsgvis.la
-
--libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
--libcsgvis_la_LIBADD = libcsg.la
-+libngcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
-+libngcsgvis_la_LIBADD = libngcsg.la
- endif
-
- # $(top_builddir)/libsrc/geom2d/libgeom2d.la
-diff -rupN netgen-5.3.1/libsrc/general/Makefile.am netgen-5.3.1-new/libsrc/general/Makefile.am
---- netgen-5.3.1/libsrc/general/Makefile.am 2014-10-07 21:38:21.638014320 +0200
-+++ netgen-5.3.1-new/libsrc/general/Makefile.am 2014-10-07 21:39:14.531034296 +0200
-@@ -4,8 +4,8 @@ include_HEADERS = ngexception.hpp
-
- AM_CPPFLAGS = $(MPI_INCLUDES) -I$(top_srcdir)/libsrc/include
- METASOURCES = AUTO
--noinst_LTLIBRARIES = libgen.la
--libgen_la_SOURCES = array.cpp bitarray.cpp dynamicmem.cpp flags.cpp \
-+noinst_LTLIBRARIES = libnggen.la
-+libnggen_la_SOURCES = array.cpp bitarray.cpp dynamicmem.cpp flags.cpp \
- hashtabl.cpp mystring.cpp ngexception.cpp optmem.cpp parthreads.cpp \
- profiler.cpp seti.cpp sort.cpp spbita2d.cpp symbolta.cpp table.cpp \
- mpi_interface.cpp gzstream.cpp
-diff -rupN netgen-5.3.1/libsrc/geom2d/Makefile.am netgen-5.3.1-new/libsrc/geom2d/Makefile.am
---- netgen-5.3.1/libsrc/geom2d/Makefile.am 2014-10-07 21:38:21.832018060 +0200
-+++ netgen-5.3.1-new/libsrc/geom2d/Makefile.am 2014-10-07 21:39:14.531034296 +0200
-@@ -4,18 +4,18 @@ AM_CPPFLAGS = -I$(top_srcdir)/libsrc/inc
-
- METASOURCES = AUTO
-
--lib_LTLIBRARIES = libgeom2d.la
-+lib_LTLIBRARIES = libnggeom2d.la
-
- if NGGUI
--lib_LTLIBRARIES += libgeom2dvis.la
-+lib_LTLIBRARIES += libnggeom2dvis.la
- endif
-
-
-
--libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
--libgeom2d_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
-+libnggeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
-+libnggeom2d_la_LIBADD = $(top_builddir)/libsrc/meshing/libngmesh.la $(MPI_LIBS)
-
--libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
--libgeom2dvis_la_LIBADD = libgeom2d.la
-+libnggeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
-+libnggeom2dvis_la_LIBADD = libnggeom2d.la -lGL $(MPI_LIBS)
-
-
-diff -rupN netgen-5.3.1/libsrc/gprim/Makefile.am netgen-5.3.1-new/libsrc/gprim/Makefile.am
---- netgen-5.3.1/libsrc/gprim/Makefile.am 2014-10-07 21:38:21.719015882 +0200
-+++ netgen-5.3.1-new/libsrc/gprim/Makefile.am 2014-10-07 21:39:14.531034296 +0200
-@@ -2,6 +2,6 @@ noinst_HEADERS = adtree.hpp geom3d.hpp
-
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include
- METASOURCES = AUTO
--noinst_LTLIBRARIES = libgprim.la
--libgprim_la_SOURCES = adtree.cpp geom2d.cpp geom3d.cpp geomfuncs.cpp \
-+noinst_LTLIBRARIES = libnggprim.la
-+libnggprim_la_SOURCES = adtree.cpp geom2d.cpp geom3d.cpp geomfuncs.cpp \
- geomtest3d.cpp transform3d.cpp spline.cpp splinegeometry.cpp
-diff -rupN netgen-5.3.1/libsrc/interface/Makefile.am netgen-5.3.1-new/libsrc/interface/Makefile.am
---- netgen-5.3.1/libsrc/interface/Makefile.am 2014-10-07 21:38:21.846018330 +0200
-+++ netgen-5.3.1-new/libsrc/interface/Makefile.am 2014-10-07 21:44:17.523887314 +0200
-@@ -2,14 +2,14 @@ noinst_HEADERS = writeuser.hpp
-
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
- METASOURCES = AUTO
--lib_LTLIBRARIES = libinterface.la
--libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
-+lib_LTLIBRARIES = libnginterface.la
-+libnginterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
- read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
- writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
- writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
- wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp
-
-
--libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
-+libnginterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libngmesh.la
-
- # libinterface_la_LDFLAGS = -rdynamic
-diff -rupN netgen-5.3.1/libsrc/linalg/Makefile.am netgen-5.3.1-new/libsrc/linalg/Makefile.am
---- netgen-5.3.1/libsrc/linalg/Makefile.am 2014-10-07 21:38:21.667014879 +0200
-+++ netgen-5.3.1-new/libsrc/linalg/Makefile.am 2014-10-07 21:39:14.532034315 +0200
-@@ -1,8 +1,8 @@
- noinst_HEADERS = densemat.hpp linalg.hpp polynomial.hpp vector.hpp opti.hpp
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include
- METASOURCES = AUTO
--noinst_LTLIBRARIES = libla.la
--libla_la_SOURCES = densemat.cpp polynomial.cpp bfgs.cpp linopt.cpp linsearch.cpp
-+noinst_LTLIBRARIES = libngla.la
-+libngla_la_SOURCES = densemat.cpp polynomial.cpp bfgs.cpp linopt.cpp linsearch.cpp
-
- # vector.cpp
-
-diff -rupN netgen-5.3.1/libsrc/meshing/Makefile.am netgen-5.3.1-new/libsrc/meshing/Makefile.am
---- netgen-5.3.1/libsrc/meshing/Makefile.am 2014-10-07 21:38:21.895019275 +0200
-+++ netgen-5.3.1-new/libsrc/meshing/Makefile.am 2014-10-07 21:39:14.532034315 +0200
-@@ -15,9 +15,9 @@ clusters.hpp hprefinement.hpp improve3.h
-
- METASOURCES = AUTO
-
--lib_LTLIBRARIES = libmesh.la
-+lib_LTLIBRARIES = libngmesh.la
-
--libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
-+libngmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
- clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp \
- geomsearch.cpp global.cpp hprefinement.cpp improve2.cpp \
- improve2gen.cpp improve3.cpp localh.cpp meshclass.cpp \
-@@ -30,8 +30,8 @@ libmesh_la_SOURCES = adfront2.cpp adfron
- topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp \
- parallelmesh.cpp paralleltop.cpp paralleltop.hpp basegeom.cpp
-
--libmesh_la_LIBADD = $(top_builddir)/libsrc/linalg/libla.la \
-- $(top_builddir)/libsrc/gprim/libgprim.la \
-- $(top_builddir)/libsrc/general/libgen.la \
-- -lz
-+libngmesh_la_LIBADD = $(top_builddir)/libsrc/linalg/libngla.la \
-+ $(top_builddir)/libsrc/gprim/libnggprim.la \
-+ $(top_builddir)/libsrc/general/libnggen.la \
-+ $(MPI_LIBS) -lz
-
-diff -rupN netgen-5.3.1/libsrc/occ/Makefile.am netgen-5.3.1-new/libsrc/occ/Makefile.am
---- netgen-5.3.1/libsrc/occ/Makefile.am 2014-10-07 21:38:21.739016267 +0200
-+++ netgen-5.3.1-new/libsrc/occ/Makefile.am 2014-10-07 21:39:14.533034334 +0200
-@@ -14,20 +14,20 @@ AM_CPPFLAGS = -I$(top_srcdir)/libsrc/inc
-
- METASOURCES = AUTO
-
--lib_LTLIBRARIES = libocc.la
-+lib_LTLIBRARIES = libngocc.la
-
- if NGGUI
--lib_LTLIBRARIES += liboccvis.la
-+lib_LTLIBRARIES += libngoccvis.la
- endif
-
-
--libocc_la_SOURCES = Partition_Inter2d.cxx Partition_Inter3d.cxx \
-+libngocc_la_SOURCES = Partition_Inter2d.cxx Partition_Inter3d.cxx \
- Partition_Loop.cxx Partition_Loop2d.cxx Partition_Loop3d.cxx Partition_Spliter.cxx \
- occconstruction.cpp occgenmesh.cpp occgeom.cpp occmeshsurf.cpp
-
--libocc_la_LIBADD = $(OCCLIBS)
-+libngocc_la_LIBADD = $(OCCLIBS)
-
--liboccvis_la_SOURCES = occpkg.cpp vsocc.cpp
--liboccvis_la_LIBADD = libocc.la
-+libngoccvis_la_SOURCES = occpkg.cpp vsocc.cpp
-+libngoccvis_la_LIBADD = libngocc.la $(TCL_LIB_SPEC)
-
-
-diff -rupN netgen-5.3.1/libsrc/stlgeom/Makefile.am netgen-5.3.1-new/libsrc/stlgeom/Makefile.am
---- netgen-5.3.1/libsrc/stlgeom/Makefile.am 2014-10-07 21:38:21.683015188 +0200
-+++ netgen-5.3.1-new/libsrc/stlgeom/Makefile.am 2014-10-07 21:39:14.533034334 +0200
-@@ -4,18 +4,18 @@ stltool.hpp stltopology.hpp vsstl.hpp
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
-
--lib_LTLIBRARIES = libstl.la
-+lib_LTLIBRARIES = libngstl.la
-
- if NGGUI
--lib_LTLIBRARIES += libstlvis.la
-+lib_LTLIBRARIES += libngstlvis.la
- endif
-
--libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
-+libngstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
- stlgeommesh.cpp stlline.cpp stltool.cpp stltopology.cpp
-
-
--libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
--libstlvis_la_LIBADD = libstl.la
--libstl_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
-+libngstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
-+libngstlvis_la_LIBADD = libngstl.la -lGL $(MPI_LIBS) $(TCL_LIB_SPEC)
-+libngstl_la_LIBADD = $(top_builddir)/libsrc/meshing/libngmesh.la $(MPI_LIBS)
- # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la
-
-diff -rupN netgen-5.3.1/libsrc/visualization/Makefile.am netgen-5.3.1-new/libsrc/visualization/Makefile.am
---- netgen-5.3.1/libsrc/visualization/Makefile.am 2014-10-07 21:38:21.822017867 +0200
-+++ netgen-5.3.1-new/libsrc/visualization/Makefile.am 2014-10-07 21:39:14.533034334 +0200
-@@ -7,11 +7,11 @@ AM_CPPFLAGS = $(MPI_INCLUDES) -I$(top_s
- METASOURCES = AUTO
-
- if NGGUI
--noinst_LTLIBRARIES = libvisual.la
-+noinst_LTLIBRARIES = libngvisual.la
- endif
-
-
--libvisual_la_SOURCES = meshdoc.cpp mvdraw.cpp \
-+libngvisual_la_SOURCES = meshdoc.cpp mvdraw.cpp \
- vsfieldlines.cpp vsmesh.cpp vssolution.cpp importsolution.cpp
-
--
-+libngvisual_la_LIBADD = -lGL
-diff -rupN netgen-5.3.1/ng/Makefile.am netgen-5.3.1-new/ng/Makefile.am
---- netgen-5.3.1/ng/Makefile.am 2014-10-07 21:38:21.973020778 +0200
-+++ netgen-5.3.1-new/ng/Makefile.am 2014-10-07 21:39:14.534034353 +0200
-@@ -17,21 +17,18 @@ MKL_LIBS = -L$(MKLROOT)/lib/intel64 -lm
- endif
- # -lpardiso500-GNU472-X86-64 -lgfortran
-
--netgen_LDADD = $(top_builddir)/libsrc/visualization/libvisual.la \
-- $(top_builddir)/libsrc/csg/libcsgvis.la \
-- $(top_builddir)/libsrc/csg/libcsg.la \
-- $(top_builddir)/libsrc/interface/libinterface.la \
-- $(top_builddir)/libsrc/meshing/libmesh.la \
-- -L$(TK_BIN_DIR)/Togl1.7 $(TOGLLIBDIR) -lTogl $(LIBGLU) $(TK_LIB_SPEC) $(TCL_LIB_SPEC) $(MPI_LIBS) $(FFMPEG_LIBS) $(JPEGLIB_LIBS) $(PKG_LIBS) $(MKL_LIBS)
--
--
--#
--# $(top_builddir)/libsrc/occ/liboccvis.la
--# $(top_builddir)/libsrc/occ/libocc.la
--# $(top_builddir)/libsrc/stlgeom/libstlvis.la
--# $(top_builddir)/libsrc/stlgeom/libstl.la
--# $(top_builddir)/libsrc/geom2d/libgeom2d.la
--# $(top_builddir)/libsrc/geom2d/libgeom2dvis.la
-+netgen_LDADD = $(top_builddir)/libsrc/visualization/libngvisual.la \
-+ $(top_builddir)/libsrc/csg/libngcsgvis.la \
-+ $(top_builddir)/libsrc/csg/libngcsg.la \
-+ $(top_builddir)/libsrc/interface/libnginterface.la \
-+ $(top_builddir)/libsrc/meshing/libngmesh.la \
-+ $(top_builddir)/libsrc/occ/libngoccvis.la \
-+ $(top_builddir)/libsrc/occ/libngocc.la \
-+ $(top_builddir)/libsrc/stlgeom/libngstlvis.la \
-+ $(top_builddir)/libsrc/stlgeom/libngstl.la \
-+ $(top_builddir)/libsrc/geom2d/libnggeom2d.la \
-+ $(top_builddir)/libsrc/geom2d/libnggeom2dvis.la \
-+ -L$(TK_BIN_DIR)/Togl1.7 $(TOGLLIBDIR) -lTogl1.7 -ldl -lX11 $(LIBGLU) $(TK_LIB_SPEC) $(TCL_LIB_SPEC) $(MPI_LIBS) $(FFMPEG_LIBS) $(JPEGLIB_LIBS) $(PKG_LIBS) $(MKL_LIBS)
-
-
- # add for static linkage of ngsolve:
-diff -rupN netgen-5.3.1/nglib/Makefile.am netgen-5.3.1-new/nglib/Makefile.am
---- netgen-5.3.1/nglib/Makefile.am 2014-10-07 21:38:21.552012662 +0200
-+++ netgen-5.3.1-new/nglib/Makefile.am 2014-10-07 21:39:27.915292493 +0200
-@@ -8,15 +8,15 @@ lib_LTLIBRARIES = libnglib.la
- libnglib_la_SOURCES = nglib.cpp
-
- libnglib_la_LIBADD = \
-- $(top_builddir)/libsrc/interface/libinterface.la \
-- $(top_builddir)/libsrc/geom2d/libgeom2d.la \
-- $(top_builddir)/libsrc/csg/libcsg.la \
-- $(top_builddir)/libsrc/stlgeom/libstl.la \
-- $(top_builddir)/libsrc/occ/libocc.la \
-- $(top_builddir)/libsrc/meshing/libmesh.la \
-+ $(top_builddir)/libsrc/interface/libnginterface.la \
-+ $(top_builddir)/libsrc/geom2d/libnggeom2d.la \
-+ $(top_builddir)/libsrc/csg/libngcsg.la \
-+ $(top_builddir)/libsrc/stlgeom/libngstl.la \
-+ $(top_builddir)/libsrc/occ/libngocc.la \
-+ $(top_builddir)/libsrc/meshing/libngmesh.la \
- $(OCCLIBS) $(MPI_LIBS)
-
--libnglib_la_LDFLAGS = -avoid-version
-+libnglib_la_LDFLAGS = -release $(PACKAGE_VERSION)
- # -rdynamic
-
-
-@@ -25,24 +25,24 @@ bin_PROGRAMS = ng_vol ng_stl
-
- ng_vol_SOURCES = ng_vol.cpp
- ng_vol_LDADD = libnglib.la \
-- $(top_builddir)/libsrc/interface/libinterface.la \
-- $(top_builddir)/libsrc/geom2d/libgeom2d.la \
-- $(top_builddir)/libsrc/csg/libcsg.la \
-- $(top_builddir)/libsrc/stlgeom/libstl.la \
-- $(top_builddir)/libsrc/occ/libocc.la \
-- $(top_builddir)/libsrc/meshing/libmesh.la \
-+ $(top_builddir)/libsrc/interface/libnginterface.la \
-+ $(top_builddir)/libsrc/geom2d/libnggeom2d.la \
-+ $(top_builddir)/libsrc/csg/libngcsg.la \
-+ $(top_builddir)/libsrc/stlgeom/libngstl.la \
-+ $(top_builddir)/libsrc/occ/libngocc.la \
-+ $(top_builddir)/libsrc/meshing/libngmesh.la \
- $(OCCLIBS) $(MPI_LIBS)
-
-
-
- ng_stl_SOURCES = ng_stl.cpp
- ng_stl_LDADD = libnglib.la \
-- $(top_builddir)/libsrc/interface/libinterface.la \
-- $(top_builddir)/libsrc/geom2d/libgeom2d.la \
-- $(top_builddir)/libsrc/csg/libcsg.la \
-- $(top_builddir)/libsrc/stlgeom/libstl.la \
-- $(top_builddir)/libsrc/occ/libocc.la \
-- $(top_builddir)/libsrc/meshing/libmesh.la \
-+ $(top_builddir)/libsrc/interface/libnginterface.la \
-+ $(top_builddir)/libsrc/geom2d/libnggeom2d.la \
-+ $(top_builddir)/libsrc/csg/libngcsg.la \
-+ $(top_builddir)/libsrc/stlgeom/libngstl.la \
-+ $(top_builddir)/libsrc/occ/libngocc.la \
-+ $(top_builddir)/libsrc/meshing/libngmesh.la \
- $(OCCLIBS) $(MPI_LIBS)
-
- # ng_occ_SOURCES = ng_occ.cpp
diff --git a/netgen-mesher.png b/netgen-mesher.png
new file mode 100644
index 0000000..9adbf7c
Binary files /dev/null and b/netgen-mesher.png differ
diff --git a/netgen-mesher_egg-info-version.patch b/netgen-mesher_egg-info-version.patch
new file mode 100644
index 0000000..8505146
--- /dev/null
+++ b/netgen-mesher_egg-info-version.patch
@@ -0,0 +1,12 @@
+diff -rupN --no-dereference netgen-6.2.2406/CMakeLists.txt netgen-6.2.2406-new/CMakeLists.txt
+--- netgen-6.2.2406/CMakeLists.txt 2024-12-03 18:26:11.508462171 +0100
++++ netgen-6.2.2406-new/CMakeLists.txt 2024-12-03 18:26:11.752455437 +0100
+@@ -641,7 +641,7 @@ if(USE_PYTHON AND NOT SKBUILD)
+ file( WRITE "netgen_mesher-py3.egg-info"
+ "Metadata-Version: 2.1
+ Name: netgen-mesher
+-Version: ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH}.post${NETGEN_VERSION_TWEAK}
++Version: ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH}
+ ")
+ install(FILES netgen_mesher-py3.egg-info DESTINATION ${NG_INSTALL_DIR_PYTHON} COMPONENT netgen)
+ endif()
diff --git a/netgen_fallback-version.patch b/netgen_fallback-version.patch
new file mode 100644
index 0000000..81e1388
--- /dev/null
+++ b/netgen_fallback-version.patch
@@ -0,0 +1,14 @@
+diff -rupN --no-dereference netgen-6.2.2406/cmake/generate_version_file.cmake netgen-6.2.2406-new/cmake/generate_version_file.cmake
+--- netgen-6.2.2406/cmake/generate_version_file.cmake 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/cmake/generate_version_file.cmake 2024-12-03 18:26:11.523461757 +0100
+@@ -24,8 +24,8 @@ if(status AND NOT status EQUAL 0)
+ string(REGEX REPLACE "^netgen(.*)" "\\1" git_version_string "${git_version_string}")
+ endif()
+ else()
+- MESSAGE(WARNING "Could not determine git-version from source code - assuming 6.2.0-0")
+- set(git_version_string "v6.2.0-0")
++ MESSAGE(WARNING "Could not determine git-version from source code - assuming v6.2.2402")
++ set(git_version_string "v6.2.2402")
+ endif()
+ endif()
+ string(STRIP ${git_version_string} git_version_string)
diff --git a/netgen_include-order.patch b/netgen_include-order.patch
new file mode 100644
index 0000000..f064645
--- /dev/null
+++ b/netgen_include-order.patch
@@ -0,0 +1,49 @@
+diff -rupN --no-dereference netgen-6.2.2406/libsrc/csg/vscsg.cpp netgen-6.2.2406-new/libsrc/csg/vscsg.cpp
+--- netgen-6.2.2406/libsrc/csg/vscsg.cpp 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/libsrc/csg/vscsg.cpp 2024-12-03 18:26:11.629458831 +0100
+@@ -1,11 +1,11 @@
+ #include <mystdlib.h>
+-#include "incopengl.hpp"
+
+ #include <myadt.hpp>
+ #include <meshing.hpp>
+ #include <csg.hpp>
+ #include <stlgeom.hpp>
+
++#include "incopengl.hpp"
+ #include <visual.hpp>
+
+ #include "vscsg.hpp"
+diff -rupN --no-dereference netgen-6.2.2406/libsrc/visualization/vsfieldlines.cpp netgen-6.2.2406-new/libsrc/visualization/vsfieldlines.cpp
+--- netgen-6.2.2406/libsrc/visualization/vsfieldlines.cpp 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/libsrc/visualization/vsfieldlines.cpp 2024-12-03 18:26:11.630458804 +0100
+@@ -1,7 +1,6 @@
+ #ifndef NOTCL
+
+ #include <mystdlib.h>
+-#include <incopengl.hpp>
+
+
+ #include <myadt.hpp>
+@@ -9,6 +8,7 @@
+ #include <csg.hpp>
+ #include <stlgeom.hpp>
+
++#include <incopengl.hpp>
+ #include <visual.hpp>
+ #include <meshing/fieldlines.hpp>
+
+diff -rupN --no-dereference netgen-6.2.2406/ng/ngappinit.cpp netgen-6.2.2406-new/ng/ngappinit.cpp
+--- netgen-6.2.2406/ng/ngappinit.cpp 2024-11-25 17:25:40.000000000 +0100
++++ netgen-6.2.2406-new/ng/ngappinit.cpp 2024-12-03 18:26:11.631458776 +0100
+@@ -7,9 +7,9 @@
+ #undef USE_TK_STUBS
+
+ #include <mystdlib.h>
++#include <core/mpi_wrapper.hpp>
+ #include <inctcl.hpp>
+ #include <meshing.hpp>
+-#include <core/mpi_wrapper.hpp>
+
+ #include "../libsrc/interface/writeuser.hpp"
+
diff --git a/std-namespace.patch b/std-namespace.patch
new file mode 100644
index 0000000..3fe2d59
--- /dev/null
+++ b/std-namespace.patch
@@ -0,0 +1,124 @@
+diff --git a/external_dependencies/.gitignore b/external_dependencies/.gitignore
+deleted file mode 100644
+index 335ec957..00000000
+--- a/external_dependencies/.gitignore
++++ /dev/null
+@@ -1 +0,0 @@
+-*.tar.gz
+diff --git a/ng/encoding.hpp b/ng/encoding.hpp
+index 9ea2ffb5..67bb09e8 100644
+--- a/ng/encoding.hpp
++++ b/ng/encoding.hpp
+@@ -79,7 +79,7 @@ class Mpeg {
+ ret = avcodec_send_frame(enc, frame);
+ if (ret < 0)
+ {
+- cerr << "Error encoding video frame: " << endl;
++ std::cerr << "Error encoding video frame: " << std::endl;
+ return(1);
+ }
+
+@@ -90,7 +90,7 @@ class Mpeg {
+ return 0;
+
+ if (ret < 0) {
+- cerr << "Error encoding video frame: " << endl;
++ std::cerr << "Error encoding video frame: " << std::endl;
+ return 1;
+ }
+
+@@ -106,17 +106,17 @@ class Mpeg {
+ }
+
+ if (ret < 0) {
+- cerr << "Error while writing video frame: " << endl;
++ std::cerr << "Error while writing video frame: " << std::endl;
+ return(1);
+ }
+
+ return 0;
+ }
+
+- int Start(string filename) {
++ int Start(std::string filename) {
+ AVCodec *video_codec;
+ if(is_started) {
+- cerr << "Stream already started" << endl;
++ std::cerr << "Stream already started" << std::endl;
+ return 1;
+ }
+ is_started = true;
+@@ -144,19 +144,19 @@ class Mpeg {
+ /* find the encoder */
+ video_codec = (AVCodec*) avcodec_find_encoder(fmt->video_codec);
+ if (!(video_codec)) {
+- cerr << "Could not find encoder for '" << avcodec_get_name(fmt->video_codec) << "'" << endl;
++ std::cerr << "Could not find encoder for '" << avcodec_get_name(fmt->video_codec) << "'" << std::endl;
+ return 1;
+ }
+
+ st = avformat_new_stream(oc, NULL);
+ if (!st) {
+- cerr << "Could not allocate stream\n";
++ std::cerr << "Could not allocate stream\n";
+ return 1;
+ }
+ st->id = oc->nb_streams-1;
+ enc = avcodec_alloc_context3(video_codec);
+ if (!enc) {
+- cerr << "Could not alloc an encoding context\n";
++ std::cerr << "Could not alloc an encoding context\n";
+ return 1;
+ }
+
+@@ -187,7 +187,7 @@ class Mpeg {
+ // enc->global_quality = 1180;
+ }
+ else {
+- cerr << "could not init codecs!" << endl;
++ std::cerr << "could not init codecs!" << std::endl;
+ return 1;
+ }
+
+@@ -197,21 +197,21 @@ class Mpeg {
+ ret = avcodec_open2(enc, video_codec, &opt);
+ av_dict_free(&opt);
+ if (ret < 0) {
+- cerr << "Could not open video codec" << endl;
++ std::cerr << "Could not open video codec" << std::endl;
+ return 1;
+ }
+
+ /* allocate and init a re-usable frame */
+ frame = alloc_picture(enc->pix_fmt);
+ if (!frame) {
+- cerr << "Could not allocate video frame\n";
++ std::cerr << "Could not allocate video frame\n";
+ return 1;
+ }
+
+ /* copy the stream parameters to the muxer */
+ ret = avcodec_parameters_from_context(st->codecpar, enc);
+ if (ret < 0) {
+- cerr << "Could not copy the stream parameters\n";
++ std::cerr << "Could not copy the stream parameters\n";
+ return 1;
+ }
+
+@@ -220,14 +220,14 @@ class Mpeg {
+ if (!(fmt->flags & AVFMT_NOFILE)) {
+ ret = avio_open(&oc->pb, filename.c_str(), AVIO_FLAG_WRITE);
+ if (ret < 0) {
+- cerr << "Could not open " << filename << " : " << endl;
++ std::cerr << "Could not open " << filename << " : " << std::endl;
+ return 1;
+ }
+ }
+
+ ret = avformat_write_header(oc, &opt);
+ if (ret < 0) {
+- cerr << "Error occurred when opening output file: " << endl;;
++ std::cerr << "Error occurred when opening output file: " << std::endl;;
+ return 1;
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/netgen-mesher.git/commitdiff/88b5f9b0680a955dda4c5fc560cfdcb5015380de
More information about the pld-cvs-commit
mailing list