X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_RadialPrism_3D.cxx;h=450dbb3c786ee996bf375d509571d776d0ebf28d;hb=7b4622715bfda581b10305e1781443f92358b319;hp=6ae4ac7873760e900178b83489e59f021251ef4c;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx b/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx index 6ae4ac787..450dbb3c7 100644 --- a/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx +++ b/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -26,8 +26,11 @@ // Created : Fri Oct 20 11:37:07 2006 // Author : Edward AGAPOV (eap) // + #include "StdMeshers_RadialPrism_3D.hxx" +#include + #include "StdMeshers_ProjectionUtils.hxx" #include "StdMeshers_NumberOfLayers.hxx" #include "StdMeshers_LayerDistribution.hxx" @@ -45,7 +48,11 @@ #include #include +#if OCC_VERSION_LARGE > 0x06050400 +#include +#else #include +#endif #include #include #include @@ -55,13 +62,12 @@ #include #include - using namespace std; #define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; } #define gpXYZ(n) gp_XYZ(n->X(),n->Y(),n->Z()) -typedef StdMeshers_ProjectionUtils TAssocTool; +namespace TAssocTool = StdMeshers_ProjectionUtils; //======================================================================= //function : StdMeshers_RadialPrism_3D @@ -162,7 +168,11 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a // get 2 shells TopoDS_Solid solid = TopoDS::Solid( aShape ); +#if OCC_VERSION_LARGE > 0x06050400 + TopoDS_Shell outerShell = BRepClass3d::OuterShell( solid ); +#else TopoDS_Shell outerShell = BRepTools::OuterShell( solid ); +#endif TopoDS_Shape innerShell; int nbShells = 0; for ( TopoDS_Iterator It (solid); It.More(); It.Next(), ++nbShells ) @@ -306,11 +316,10 @@ public: static TNodeDistributor* GetDistributor(SMESH_Mesh& aMesh) { const int myID = -1000; - map < int, SMESH_1D_Algo * > & algoMap = aMesh.GetGen()->_map1D_Algo; - map < int, SMESH_1D_Algo * >::iterator id_algo = algoMap.find( myID ); - if ( id_algo == algoMap.end() ) - return new TNodeDistributor( myID, 0, aMesh.GetGen() ); - return static_cast< TNodeDistributor* >( id_algo->second ); + TNodeDistributor* myHyp = dynamic_cast( aMesh.GetHypothesis( myID )); + if ( !myHyp ) + myHyp = new TNodeDistributor( myID, 0, aMesh.GetGen() ); + return myHyp; } // ----------------------------------------------------------------------------- bool Compute( vector< double > & positions, @@ -402,7 +411,11 @@ bool StdMeshers_RadialPrism_3D::Evaluate(SMESH_Mesh& aMesh, { // get 2 shells TopoDS_Solid solid = TopoDS::Solid( aShape ); +#if OCC_VERSION_LARGE > 0x06050400 + TopoDS_Shell outerShell = BRepClass3d::OuterShell( solid ); +#else TopoDS_Shell outerShell = BRepTools::OuterShell( solid ); +#endif TopoDS_Shape innerShell; int nbShells = 0; for ( TopoDS_Iterator It (solid); It.More(); It.Next(), ++nbShells )