diff --git a/CMakeLists.txt b/CMakeLists.txt index 328505a18..f61a54987 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -647,6 +647,9 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # Salome SMESH sources are under src/3rdParty now IF(OCC_FOUND) if(NOT FREECAD_USE_EXTERNAL_SMESH) + find_package(VTK REQUIRED) + find_package(HDF5 REQUIRED) + find_package(MEDFile REQUIRED) set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc) else() find_package(SMESH) diff --git a/src/3rdParty/salomesmesh/CMakeLists.txt b/src/3rdParty/salomesmesh/CMakeLists.txt index 8fa2ac5e4..329784033 100644 --- a/src/3rdParty/salomesmesh/CMakeLists.txt +++ b/src/3rdParty/salomesmesh/CMakeLists.txt @@ -16,12 +16,6 @@ if(CMAKE_COMPILER_IS_CLANGXX) set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-self-assign -Wno-reorder -Wno-switch-enum -Wno-unknown-pragmas -Wno-logical-op-parentheses -Wno-unused-variable -Wno-unused-function -Wno-overloaded-virtual") endif() -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -find_package(VTK REQUIRED) -find_package(HDF5 REQUIRED) -find_package(OPENCASCADE) -find_package(MEDFile REQUIRED) -find_package(Boost COMPONENTS filesystem program_options regex signals system thread REQUIRED) include(${VTK_USE_FILE}) include_directories( src/SMDS diff --git a/src/3rdParty/salomesmesh/inc/SMESH_MAT2d.hxx b/src/3rdParty/salomesmesh/inc/SMESH_MAT2d.hxx index 618608e07..985b46549 100644 --- a/src/3rdParty/salomesmesh/inc/SMESH_MAT2d.hxx +++ b/src/3rdParty/salomesmesh/inc/SMESH_MAT2d.hxx @@ -30,6 +30,7 @@ #include #include +#include //added for occ6 #include #include diff --git a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx index 383a38c26..cfb69cfa7 100644 --- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx +++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx @@ -27,6 +27,12 @@ #ifndef _SMESH_MeshVSLink_HeaderFile #define _SMESH_MeshVSLink_HeaderFile +#if OCC_VERSION_HEX < 0x070000 +#ifndef _Handle_SMESH_MeshVSLink_HeaderFile +#include +#endif +#endif + #ifndef _Standard_HeaderFile #include #endif diff --git a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.ixx b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.ixx index e9eec6cb7..b47a3c183 100644 --- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.ixx +++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.ixx @@ -24,20 +24,51 @@ // Author : Sioutis Fotios // Module : SMESH -// #include +#if OCC_VERSION_HEX < 0x070000 -// #ifndef _Standard_TypeMismatch_HeaderFile -// #include -// #endif +#include -#ifndef _Standard_Version_HeaderFile -#include +#ifndef _Standard_TypeMismatch_HeaderFile +#include #endif -#if OCC_VERSION_HEX < 0x070000 +Standard_EXPORT Handle_Standard_Type& SMESH_MeshVSLink_Type_() +{ + static Handle_Standard_Type aType1 = STANDARD_TYPE(MeshVS_DataSource3D); + static Handle_Standard_Type aType2 = STANDARD_TYPE(MeshVS_DataSource); + static Handle_Standard_Type aType3 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType4 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("SMESH_MeshVSLink", + sizeof(SMESH_MeshVSLink), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + + +// DownCast method +// allow safe downcasting +// +const Handle(SMESH_MeshVSLink) Handle(SMESH_MeshVSLink)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(SMESH_MeshVSLink) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(SMESH_MeshVSLink))) { + _anOtherObject = Handle(SMESH_MeshVSLink)((Handle(SMESH_MeshVSLink)&)AnObject); + } + } + + return _anOtherObject ; +} const Handle(Standard_Type)& SMESH_MeshVSLink::DynamicType() const { return STANDARD_TYPE(SMESH_MeshVSLink) ; } - +#endif \ No newline at end of file diff --git a/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx b/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx index 56cfd2aee..d31e72147 100644 --- a/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx +++ b/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx @@ -34,12 +34,12 @@ #include #include +#include #include #include #include #include #include -#include #include #include @@ -49,7 +49,6 @@ class SMESH_Algo; class SMESH_Hypothesis; class SMESH_Mesh; class SMESH_subMesh; -class TopTools_IndexedMapOfShape; class TopoDS_Shape; /*! diff --git a/src/3rdParty/salomesmesh/src/SMESH/GEOMUtils.cpp b/src/3rdParty/salomesmesh/src/SMESH/GEOMUtils.cpp index df6952778..dbfcfe816 100644 --- a/src/3rdParty/salomesmesh/src/SMESH/GEOMUtils.cpp +++ b/src/3rdParty/salomesmesh/src/SMESH/GEOMUtils.cpp @@ -1134,9 +1134,11 @@ bool GEOMUtils::FixShapeCurves( TopoDS_Shape& shape ) for (; aExpE.More(); aExpE.Next()) { const TopoDS_Edge& aE = *(TopoDS_Edge*)&aExpE.Current(); try { +#if OCC_VERSION_HEX >= 0x060800 if (!BOPTools_AlgoTools::ComputeTolerance(aF, aE, aDMax, aT)) { continue; } +#endif } catch(...) { continue; diff --git a/src/3rdParty/salomesmesh/src/StdMeshers/SMESH_MAT2d.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/SMESH_MAT2d.cpp index 970d560e5..50213fa1b 100644 --- a/src/3rdParty/salomesmesh/src/StdMeshers/SMESH_MAT2d.cpp +++ b/src/3rdParty/salomesmesh/src/StdMeshers/SMESH_MAT2d.cpp @@ -663,10 +663,12 @@ namespace // make scale to have coordinates precise enough when converted to int gp_XY uvMin = uvBox.CornerMin(), uvMax = uvBox.CornerMax(); - uvMin.ChangeCoord(1) = uvMin.X() * scale[0]; - uvMin.ChangeCoord(2) = uvMin.Y() * scale[1]; - uvMax.ChangeCoord(1) = uvMax.X() * scale[0]; - uvMax.ChangeCoord(2) = uvMax.Y() * scale[1]; + + uvMin.SetX(uvMin.X() * scale[0]); + uvMin.SetY(uvMin.Y() * scale[1]); + uvMax.SetX(uvMax.X() * scale[0]); + uvMax.SetY(uvMax.Y() * scale[1]); + double vMax[2] = { Max( Abs( uvMin.X() ), Abs( uvMax.X() )), Max( Abs( uvMin.Y() ), Abs( uvMax.Y() )) }; int iMax = ( vMax[0] > vMax[1] ) ? 0 : 1;