-// 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
// Created : Fri Oct 20 11:37:07 2006
// Author : Edward AGAPOV (eap)
//
+
#include "StdMeshers_RadialPrism_3D.hxx"
+#include <Basics_OCCTVersion.hxx>
+
#include "StdMeshers_ProjectionUtils.hxx"
#include "StdMeshers_NumberOfLayers.hxx"
#include "StdMeshers_LayerDistribution.hxx"
#include <BRepAdaptor_Curve.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
+#if OCC_VERSION_LARGE > 0x06050400
+#include <BRepClass3d.hxx>
+#else
#include <BRepTools.hxx>
+#endif
#include <BRep_Tool.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <gp.hxx>
#include <gp_Pnt.hxx>
-
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
// 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 )
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<TNodeDistributor*>( aMesh.GetHypothesis( myID ));
+ if ( !myHyp )
+ myHyp = new TNodeDistributor( myID, 0, aMesh.GetGen() );
+ return myHyp;
}
// -----------------------------------------------------------------------------
bool Compute( vector< double > & positions,
{
// 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 )