X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Hypothesis_i.cxx;h=00b60b226d75d341afb3cfbb4bd458545fa3f16a;hp=1f0517f3ab13a40b4db646a438489a74f8e3435f;hb=refs%2Ftags%2FV9_7_0a1;hpb=a5a9b778aaaab382d357dc107c161190a13f7b5c diff --git a/src/SMESH_I/SMESH_Hypothesis_i.cxx b/src/SMESH_I/SMESH_Hypothesis_i.cxx index 1f0517f3a..00b60b226 100644 --- a/src/SMESH_I/SMESH_Hypothesis_i.cxx +++ b/src/SMESH_I/SMESH_Hypothesis_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses +// SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes // File : SMESH_Hypothesis_i.cxx // Author : Paul RASCLE, EDF // Module : SMESH @@ -34,6 +34,8 @@ #include #include +#include + using namespace std; //============================================================================= @@ -48,7 +50,7 @@ SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA ) : SALOME::GenericObj_i( thePOA ) { myBaseImpl = 0; -}; +} //============================================================================= /*! @@ -60,10 +62,10 @@ SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA ) SMESH_Hypothesis_i::~SMESH_Hypothesis_i() { - MESSAGE( "SMESH_Hypothesis_i::~SMESH_Hypothesis_i" ); + //MESSAGE( "SMESH_Hypothesis_i::~SMESH_Hypothesis_i" ); if ( myBaseImpl ) delete myBaseImpl; -}; +} //============================================================================= /*! @@ -76,7 +78,7 @@ SMESH_Hypothesis_i::~SMESH_Hypothesis_i() char* SMESH_Hypothesis_i::GetName() { return CORBA::string_dup( myBaseImpl->GetName() ); -}; +} //============================================================================= /*! @@ -89,7 +91,7 @@ char* SMESH_Hypothesis_i::GetName() char* SMESH_Hypothesis_i::GetLibName() { return CORBA::string_dup( myBaseImpl->GetLibName() ); -}; +} //============================================================================= /*! @@ -102,7 +104,7 @@ char* SMESH_Hypothesis_i::GetLibName() void SMESH_Hypothesis_i::SetLibName(const char* theLibName) { myBaseImpl->SetLibName( theLibName ); -}; +} //============================================================================= /*! @@ -112,7 +114,7 @@ void SMESH_Hypothesis_i::SetLibName(const char* theLibName) */ //============================================================================= -CORBA::Long SMESH_Hypothesis_i::GetId() +CORBA::Short SMESH_Hypothesis_i::GetId() { return myBaseImpl->GetID(); } @@ -126,10 +128,9 @@ CORBA::Long SMESH_Hypothesis_i::GetId() bool SMESH_Hypothesis_i::IsPublished() { bool res = false; - if ( SMESH_Gen_i *gen = SMESH_Gen_i::GetSMESHGen()) + if ( SMESH_Gen_i::GetSMESHGen() ) { - SALOMEDS::Study_var study = gen->GetCurrentStudy(); - SALOMEDS::SObject_wrap SO = SMESH_Gen_i::ObjectToSObject( study, _this()); + SALOMEDS::SObject_wrap SO = SMESH_Gen_i::GetSMESHGen()->ObjectToSObject( _this()); res = !SO->_is_nil(); } return res; @@ -327,3 +328,24 @@ void SMESH_Hypothesis_i::UpdateAsMeshesRestored() { // for hyps needing full data restored } + +//================================================================================ +/*! + * \brief Check if a shape includes sub-shapes of a given dimension + */ +//================================================================================ + +bool GenericHypothesisCreator_i::IsShapeOfDim( const TopoDS_Shape & S, + int dim ) +{ + TopAbs_ShapeEnum shapeType; + switch ( dim ) + { + case 0: shapeType = TopAbs_VERTEX; break; + case 1: shapeType = TopAbs_EDGE; break; + case 2: shapeType = TopAbs_FACE; break; + case 3: shapeType = TopAbs_SOLID; break; + default: return true; + } + return TopExp_Explorer( S, shapeType ).More(); +}