diff -Naur netgen-4.9.13_orig/libsrc/meshing/meshtype.cpp netgen-4.9.13_new/libsrc/meshing/meshtype.cpp
--- netgen-4.9.13_orig/libsrc/meshing/meshtype.cpp 2009-09-13 14:28:38.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/meshing/meshtype.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/meshing/meshtype.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -1,4 +1,5 @@
#include <mystdlib.h>
+#include <float.h> // to get DBL_MIN defined
blockfill = 1;
diff -Naur netgen-4.9.13_orig/libsrc/meshing/meshtype.hpp netgen-4.9.13_new/libsrc/meshing/meshtype.hpp
--- netgen-4.9.13_orig/libsrc/meshing/meshtype.hpp 2009-11-09 13:50:43.000000000 +0300
-+++ netgen-4.9.13_new/libsrc/meshing/meshtype.hpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/meshing/meshtype.hpp 2013-05-31 11:28:04.000000000 +0400
@@ -12,6 +12,7 @@
Classes for NETGEN
*/
SEGMENT = 1, SEGMENT3 = 2,
diff -Naur netgen-4.9.13_orig/libsrc/meshing/smoothing2.cpp netgen-4.9.13_new/libsrc/meshing/smoothing2.cpp
--- netgen-4.9.13_orig/libsrc/meshing/smoothing2.cpp 2009-11-09 13:47:09.000000000 +0300
-+++ netgen-4.9.13_new/libsrc/meshing/smoothing2.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/meshing/smoothing2.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -302,7 +302,8 @@
vgrad = 0;
badness = 0;
}
}
+diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Inter3d.cxx netgen-4.9.13_new/libsrc/occ/Partition_Inter3d.cxx
+--- netgen-4.9.13_orig/libsrc/occ/Partition_Inter3d.cxx 2009-08-24 06:12:24.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/Partition_Inter3d.cxx 2013-05-31 11:28:04.000000000 +0400
+@@ -86,6 +86,9 @@
+ #include <TopOpeBRepTool_OutCurveType.hxx>
+ #include <TopOpeBRep_DSFiller.hxx>
+ #include <TopTools_DataMapIteratorOfDataMapOfShapeShape.hxx>
++
++#include <Standard_Version.hxx>
++
+ #include <stdio.h>
+
+ //=======================================================================
+@@ -243,7 +246,12 @@
+ Standard_Integer i, nbExt = anExtPS.NbExt();
+ Extrema_POnSurf aPOnSurf;
+ for (i = 1; i <= nbExt; ++i )
++#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
++// porting to OCCT6.5.1
++ if (anExtPS.SquareDistance( i ) <= TolE * TolE) {
++#else
+ if (anExtPS.Value( i ) <= TolE) {
++#endif
+ aPOnSurf = anExtPS.Point( i );
+ break;
+ }
+diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Loop.cxx netgen-4.9.13_new/libsrc/occ/Partition_Loop.cxx
+--- netgen-4.9.13_orig/libsrc/occ/Partition_Loop.cxx 2009-08-24 06:12:24.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/Partition_Loop.cxx 2013-05-31 11:28:04.000000000 +0400
+@@ -178,7 +178,7 @@
+ }
+ }
+
+- Standard_Real anglemax = - PI;
++ Standard_Real anglemax = - M_PI;
+ TopoDS_Edge SelectedEdge;
+ for ( itl.Initialize(LE); itl.More(); itl.Next()) {
+ const TopoDS_Edge& E = TopoDS::Edge(itl.Value());
+diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Loop2d.cxx netgen-4.9.13_new/libsrc/occ/Partition_Loop2d.cxx
+--- netgen-4.9.13_orig/libsrc/occ/Partition_Loop2d.cxx 2009-08-24 06:12:24.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/Partition_Loop2d.cxx 2013-05-31 11:28:04.000000000 +0400
+@@ -22,7 +22,6 @@
+ #include <BRepAdaptor_Surface.hxx>
+ #include <BRepAlgo_AsDes.hxx>
+ #include <BRepAlgo_FaceRestrictor.hxx>
+-#include <BRepOffset_DataMapOfShapeReal.hxx>
+ #include <BRepTopAdaptor_FClass2d.hxx>
+ #include <BRep_Builder.hxx>
+ #include <BRep_Tool.hxx>
+@@ -51,6 +50,15 @@
+ #include <gp_Pnt.hxx>
+ #include <gp_Pnt2d.hxx>
+
++#include <Standard_Version.hxx>
++
++#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
++// porting to OCCT6.5.1
++#include <TopTools_DataMapOfShapeReal.hxx>
++#else
++#include <BRepOffset_DataMapOfShapeReal.hxx>
++#endif
++
+ //=======================================================================
+ //function : Partition_Loop2d
+ //purpose :
+@@ -209,7 +217,7 @@
+ 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
+@@ -233,7 +241,7 @@
+ // -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,
+@@ -519,7 +527,12 @@
+ DC.Initialize( DegEdge, F );
+
+ // avoid intersecting twice the same edge
++#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
++// porting to OCCT6.5.1
++ TopTools_DataMapOfShapeReal EUMap ( EdgesList.Extent() );
++#else
+ BRepOffset_DataMapOfShapeReal EUMap ( EdgesList.Extent() );
++#endif
+
+ Standard_Real U, f, l;
+ BRep_Tool::Range (DegEdge, f, l);
+diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Spliter.cxx netgen-4.9.13_new/libsrc/occ/Partition_Spliter.cxx
+--- netgen-4.9.13_orig/libsrc/occ/Partition_Spliter.cxx 2009-08-24 06:12:24.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/Partition_Spliter.cxx 2013-05-31 11:28:04.000000000 +0400
+@@ -79,6 +79,8 @@
+ #include <GeomAdaptor_Curve.hxx>
+ #include <TopOpeBRepTool_CurveTool.hxx>
+
++#include <Standard_Version.hxx>
++
+ #ifdef DEB
+ //# define PART_PERF
+ #endif
+@@ -1169,7 +1171,12 @@
+ for (; j<=nbj && ok; ++j) {
+ if (Extrema.IsMin(j)) {
+ hasMin = Standard_True;
++#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
++// porting to OCCT6.5.1
++ ok = Extrema.SquareDistance(j) <= tol * tol;
++#else
+ ok = Extrema.Value(j) <= tol;
++#endif
+ }
+ }
+ }
diff -Naur netgen-4.9.13_orig/libsrc/occ/occconstruction.cpp netgen-4.9.13_new/libsrc/occ/occconstruction.cpp
--- netgen-4.9.13_orig/libsrc/occ/occconstruction.cpp 2009-08-24 06:32:47.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/occconstruction.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/occconstruction.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -28,7 +28,7 @@
#include <BRepAlgoAPI_Common.hxx>
#include <BRepAlgoAPI_Fuse.hxx>
#include <ShapeFix_Shape.hxx>
diff -Naur netgen-4.9.13_orig/libsrc/occ/occgenmesh.cpp netgen-4.9.13_new/libsrc/occ/occgenmesh.cpp
--- netgen-4.9.13_orig/libsrc/occ/occgenmesh.cpp 2010-03-16 09:30:07.000000000 +0300
-+++ netgen-4.9.13_new/libsrc/occ/occgenmesh.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/occgenmesh.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -15,6 +15,8 @@
#define DIVIDEEDGESECTIONS 1000
+
diff -Naur netgen-4.9.13_orig/libsrc/occ/occgeom.cpp netgen-4.9.13_new/libsrc/occ/occgeom.cpp
--- netgen-4.9.13_orig/libsrc/occ/occgeom.cpp 2010-03-05 16:16:21.000000000 +0300
-+++ netgen-4.9.13_new/libsrc/occ/occgeom.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/occgeom.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -8,6 +8,8 @@
#include "ShapeAnalysis_CheckSmallFace.hxx"
#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
}
diff -Naur netgen-4.9.13_orig/libsrc/occ/occgeom.hpp netgen-4.9.13_new/libsrc/occ/occgeom.hpp
--- netgen-4.9.13_orig/libsrc/occ/occgeom.hpp 2010-01-14 19:56:19.000000000 +0300
-+++ netgen-4.9.13_new/libsrc/occ/occgeom.hpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/occgeom.hpp 2013-05-31 11:28:04.000000000 +0400
@@ -15,8 +15,8 @@
#include "Geom_Curve.hxx"
#include "Geom2d_Curve.hxx"
cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
diff -Naur netgen-4.9.13_orig/libsrc/occ/occmeshsurf.cpp netgen-4.9.13_new/libsrc/occ/occmeshsurf.cpp
--- netgen-4.9.13_orig/libsrc/occ/occmeshsurf.cpp 2009-08-24 06:32:47.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/occmeshsurf.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/occmeshsurf.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -6,6 +6,7 @@
#include <meshing.hpp>
#include <GeomLProp_SLProps.hxx>
-diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Inter3d.cxx netgen-4.9.13_new/libsrc/occ/Partition_Inter3d.cxx
---- netgen-4.9.13_orig/libsrc/occ/Partition_Inter3d.cxx 2009-08-24 06:12:24.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/Partition_Inter3d.cxx 2011-12-20 14:50:26.000000000 +0400
-@@ -86,6 +86,9 @@
- #include <TopOpeBRepTool_OutCurveType.hxx>
- #include <TopOpeBRep_DSFiller.hxx>
- #include <TopTools_DataMapIteratorOfDataMapOfShapeShape.hxx>
-+
-+#include <Standard_Version.hxx>
-+
- #include <stdio.h>
-
- //=======================================================================
-@@ -243,7 +246,12 @@
- Standard_Integer i, nbExt = anExtPS.NbExt();
- Extrema_POnSurf aPOnSurf;
- for (i = 1; i <= nbExt; ++i )
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
-+// porting to OCCT6.5.1
-+ if (anExtPS.SquareDistance( i ) <= TolE * TolE) {
-+#else
- if (anExtPS.Value( i ) <= TolE) {
-+#endif
- aPOnSurf = anExtPS.Point( i );
- break;
- }
-diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Loop2d.cxx netgen-4.9.13_new/libsrc/occ/Partition_Loop2d.cxx
---- netgen-4.9.13_orig/libsrc/occ/Partition_Loop2d.cxx 2009-08-24 06:12:24.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/Partition_Loop2d.cxx 2011-12-20 14:53:39.000000000 +0400
-@@ -22,7 +22,6 @@
- #include <BRepAdaptor_Surface.hxx>
- #include <BRepAlgo_AsDes.hxx>
- #include <BRepAlgo_FaceRestrictor.hxx>
--#include <BRepOffset_DataMapOfShapeReal.hxx>
- #include <BRepTopAdaptor_FClass2d.hxx>
- #include <BRep_Builder.hxx>
- #include <BRep_Tool.hxx>
-@@ -51,6 +50,15 @@
- #include <gp_Pnt.hxx>
- #include <gp_Pnt2d.hxx>
-
-+#include <Standard_Version.hxx>
-+
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
-+// porting to OCCT6.5.1
-+#include <TopTools_DataMapOfShapeReal.hxx>
-+#else
-+#include <BRepOffset_DataMapOfShapeReal.hxx>
-+#endif
-+
- //=======================================================================
- //function : Partition_Loop2d
- //purpose :
-@@ -209,7 +217,7 @@
- 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
-@@ -233,7 +241,7 @@
- // -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,
-@@ -519,7 +527,12 @@
- DC.Initialize( DegEdge, F );
-
- // avoid intersecting twice the same edge
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
-+// porting to OCCT6.5.1
-+ TopTools_DataMapOfShapeReal EUMap ( EdgesList.Extent() );
-+#else
- BRepOffset_DataMapOfShapeReal EUMap ( EdgesList.Extent() );
-+#endif
-
- Standard_Real U, f, l;
- BRep_Tool::Range (DegEdge, f, l);
-diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Loop.cxx netgen-4.9.13_new/libsrc/occ/Partition_Loop.cxx
---- netgen-4.9.13_orig/libsrc/occ/Partition_Loop.cxx 2009-08-24 06:12:24.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/Partition_Loop.cxx 2011-12-20 14:53:05.000000000 +0400
-@@ -178,7 +178,7 @@
- }
- }
-
-- Standard_Real anglemax = - PI;
-+ Standard_Real anglemax = - M_PI;
- TopoDS_Edge SelectedEdge;
- for ( itl.Initialize(LE); itl.More(); itl.Next()) {
- const TopoDS_Edge& E = TopoDS::Edge(itl.Value());
-diff -Naur netgen-4.9.13_orig/libsrc/occ/Partition_Spliter.cxx netgen-4.9.13_new/libsrc/occ/Partition_Spliter.cxx
---- netgen-4.9.13_orig/libsrc/occ/Partition_Spliter.cxx 2009-08-24 06:12:24.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/Partition_Spliter.cxx 2011-12-20 14:50:26.000000000 +0400
-@@ -79,6 +79,8 @@
- #include <GeomAdaptor_Curve.hxx>
- #include <TopOpeBRepTool_CurveTool.hxx>
-
-+#include <Standard_Version.hxx>
-+
- #ifdef DEB
- //# define PART_PERF
- #endif
-@@ -1169,7 +1171,12 @@
- for (; j<=nbj && ok; ++j) {
- if (Extrema.IsMin(j)) {
- hasMin = Standard_True;
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060400
-+// porting to OCCT6.5.1
-+ ok = Extrema.SquareDistance(j) <= tol * tol;
-+#else
- ok = Extrema.Value(j) <= tol;
-+#endif
- }
- }
- }
diff -Naur netgen-4.9.13_orig/libsrc/occ/utilities.h netgen-4.9.13_new/libsrc/occ/utilities.h
--- netgen-4.9.13_orig/libsrc/occ/utilities.h 2009-08-24 06:12:24.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/occ/utilities.h 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/occ/utilities.h 2013-05-31 11:28:04.000000000 +0400
@@ -33,6 +33,7 @@
#include <string>
diff -Naur netgen-4.9.13_orig/libsrc/stlgeom/stlgeommesh.cpp netgen-4.9.13_new/libsrc/stlgeom/stlgeommesh.cpp
--- netgen-4.9.13_orig/libsrc/stlgeom/stlgeommesh.cpp 2009-08-10 15:40:51.000000000 +0400
-+++ netgen-4.9.13_new/libsrc/stlgeom/stlgeommesh.cpp 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/libsrc/stlgeom/stlgeommesh.cpp 2013-05-31 11:28:04.000000000 +0400
@@ -1435,7 +1435,8 @@
if (!optstring || strlen(optstring) == 0)
}
else
{
+diff -Naur netgen-4.9.13_orig/nglib/nglib.cpp netgen-4.9.13_new/nglib/nglib.cpp
+--- netgen-4.9.13_orig/nglib/nglib.cpp 2010-05-18 15:19:15.000000000 +0400
++++ netgen-4.9.13_new/nglib/nglib.cpp 2013-05-31 11:33:44.000000000 +0400
+@@ -66,9 +66,14 @@
+ namespace nglib
+ {
+ // initialize, deconstruct Netgen library:
+- DLL_HEADER void Ng_Init ()
++ DLL_HEADER void Ng_Init ( const char* filename )
+ {
+- mycout = &cout;
++ if ( filename == "" ) {
++ mycout = &cout;
++ } else {
++ mycout = new ofstream ( filename );
++ cout << "NOTE: netgen output was redirected to file " << filename << endl;
++ }
+ myerr = &cerr;
+ // netgen::testout->SetOutStream (new ofstream ("test.out"));
+ testout = new ofstream ("test.out");
diff -Naur netgen-4.9.13_orig/nglib/nglib.h netgen-4.9.13_new/nglib/nglib.h
--- netgen-4.9.13_orig/nglib/nglib.h 2010-05-18 15:20:25.000000000 +0400
-+++ netgen-4.9.13_new/nglib/nglib.h 2011-12-20 14:50:26.000000000 +0400
++++ netgen-4.9.13_new/nglib/nglib.h 2013-05-31 11:29:26.000000000 +0400
@@ -24,7 +24,7 @@
// Philippose - 14.02.2009
// Modifications for creating a DLL in Windows
#define DLL_HEADER __declspec(dllexport)
#else
#define DLL_HEADER __declspec(dllimport)
+@@ -166,7 +166,7 @@
+ program before beginning to use the other Netgen
+ specific functions.
+ */
+-DLL_HEADER void Ng_Init ();
++DLL_HEADER void Ng_Init ( const char* filename = "" );
+
+
+ /*! \brief Exit the Netgen meshing kernel in a clean manner