git: 4cae8b2d6f55 - main - cad/freecad: fix build with opencascade 7.6.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 05 Nov 2021 20:47:36 UTC
The branch main has been updated by cmt:
URL: https://cgit.FreeBSD.org/ports/commit/?id=4cae8b2d6f55c2b1a7d0b7b0bc9a42c9f2e0a516
commit 4cae8b2d6f55c2b1a7d0b7b0bc9a42c9f2e0a516
Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2021-11-05 20:45:28 +0000
Commit: Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2021-11-05 20:45:28 +0000
cad/freecad: fix build with opencascade 7.6.0
subcomponent smesh needs some minor massaging, already done upstream
PR: 259354
Reported by: thierry@
Obtained from: https://github.com/FreeCAD/FreeCAD/commit/6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d
---
.../patch-6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d | 133 +++++++++++++++++++++
1 file changed, 133 insertions(+)
diff --git a/cad/freecad/files/patch-6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d b/cad/freecad/files/patch-6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d
new file mode 100644
index 000000000000..433498c0f55e
--- /dev/null
+++ b/cad/freecad/files/patch-6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d
@@ -0,0 +1,133 @@
+commit 6f3b00d67ec0bd0072b7b493e2a38d2a2e3af27d
+Author: wmayer <wmayer@users.sourceforge.net>
+Date: Mon Oct 11 00:30:22 2021 +0200
+
+ SMESH: port to OCCT 7.6
+
+diff --git src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp
+index cd6f0b2b07..ea83984b97 100644
+--- src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp
++++ src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp
+@@ -56,6 +56,7 @@
+ #include <NCollection_Map.hxx>
+ #include <Standard_ErrorHandler.hxx>
+ #include <Standard_ProgramError.hxx>
++#include <Standard_Version.hxx>
+ #include <TColStd_MapOfInteger.hxx>
+ #include <TopExp.hxx>
+ #include <TopExp_Explorer.hxx>
+@@ -700,7 +701,13 @@ double NETGENPlugin_Mesher::GetDefaultMinSize(const TopoDS_Shape& geom,
+ BRep_Tool::Triangulation ( TopoDS::Face( fExp.Current() ), loc);
+ if ( triangulation.IsNull() ) continue;
+ const double fTol = BRep_Tool::Tolerance( TopoDS::Face( fExp.Current() ));
++#if OCC_VERSION_HEX < 0x070600
+ const TColgp_Array1OfPnt& points = triangulation->Nodes();
++#else
++ auto points = [&triangulation](Standard_Integer index) {
++ return triangulation->Node(index);
++ };
++#endif
+ const Poly_Array1OfTriangle& trias = triangulation->Triangles();
+ for ( int iT = trias.Lower(); iT <= trias.Upper(); ++iT )
+ {
+diff --git src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp
+index 5a07308310..fbb1b25008 100644
+--- src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp
++++ src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshAlgos.cpp
+@@ -38,10 +38,13 @@
+ #include <GC_MakeSegment.hxx>
+ #include <GeomAPI_ExtremaCurveCurve.hxx>
+ #include <Geom_Line.hxx>
+-#include <IntAna_IntConicQuad.hxx>
+-#include <IntAna_Quadric.hxx>
++#include <gp_Cone.hxx>
++#include <gp_Cylinder.hxx>
+ #include <gp_Lin.hxx>
+ #include <gp_Pln.hxx>
++#include <gp_Sphere.hxx>
++#include <IntAna_IntConicQuad.hxx>
++#include <IntAna_Quadric.hxx>
+
+ #include <limits>
+ #include <numeric>
+diff --git src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp
+index 88970f36b5..7c51601c7b 100644
+--- src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp
++++ src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Adaptive1D.cpp
+@@ -46,6 +46,7 @@
+ #include <Poly_Array1OfTriangle.hxx>
+ #include <Poly_PolygonOnTriangulation.hxx>
+ #include <Poly_Triangulation.hxx>
++#include <Standard_Version.hxx>
+ #include <TColgp_Array1OfPnt.hxx>
+ #include <TopExp.hxx>
+ #include <TopExp_Explorer.hxx>
+@@ -318,13 +319,26 @@ namespace // internal utils
+ {
+ myFaceTol = SMESH_MesherHelper::MaxTolerance( face );
+ myTree = triaTree;
++#if OCC_VERSION_HEX < 0x070600
+ myNodes = & tr->Nodes();
++#else
++ TColgp_Array1OfPnt* trNodes = new TColgp_Array1OfPnt( 1, tr->NbNodes() );
++ for (Standard_Integer i = myNodes->Lower(); i <= myNodes->Upper(); i++)
++ {
++ trNodes->SetValue(i, tr->Node(i));
++ }
++ myNodes = trNodes;
++ myOwnNodes = true;
++#endif
+ myPolyTrias = & tr->Triangles();
+ myTriasDeflection = tr->Deflection();
+ if ( !loc.IsIdentity() ) // transform nodes if necessary
+ {
+ TColgp_Array1OfPnt* trsfNodes = new TColgp_Array1OfPnt( myNodes->Lower(), myNodes->Upper() );
+ trsfNodes->Assign( *myNodes );
++#if OCC_VERSION_HEX >= 0x070600
++ delete myNodes; // it's already a copy
++#endif
+ myNodes = trsfNodes;
+ myOwnNodes = true;
+ const gp_Trsf& trsf = loc;
+diff --git src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
+index f7ac411d9a..5d5c15c366 100644
+--- src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
++++ src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
+@@ -50,7 +50,7 @@
+ #include <Geom_Surface.hxx>
+ #include <NCollection_DefineArray2.hxx>
+ #include <Precision.hxx>
+-#include <Quantity_Parameter.hxx>
++#include <Standard_Real.hxx>
+ #include <TColStd_SequenceOfInteger.hxx>
+ #include <TColStd_SequenceOfReal.hxx>
+ #include <TColgp_SequenceOfXY.hxx>
+diff --git src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp
+index 8ee0e26832..e9f4618305 100644
+--- src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp
++++ src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_ViscousLayers.cpp
+@@ -44,7 +44,10 @@
+ #include "SMESH_subMeshEventListener.hxx"
+ #include "StdMeshers_FaceSide.hxx"
+
++#include <Standard_Version.hxx>
++#if OCC_VERSION_HEX < 0x070600
+ #include <Adaptor3d_HSurface.hxx>
++#endif
+ #include <BRepAdaptor_Curve2d.hxx>
+ #include <BRepAdaptor_Surface.hxx>
+ #include <BRepLProp_SLProps.hxx>
+@@ -1340,8 +1343,13 @@ namespace VISCOUS_3D
+ //case GeomAbs_SurfaceOfExtrusion:
+ case GeomAbs_OffsetSurface:
+ {
++#if OCC_VERSION_HEX < 0x070600
+ Handle(Adaptor3d_HSurface) base = surface.BasisSurface();
+ return getRovolutionAxis( base->Surface(), axis );
++#else
++ Handle(Adaptor3d_Surface) base = surface.BasisSurface();
++ return getRovolutionAxis( *base, axis );
++#endif
+ }
+ default: return false;
+ }