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=4383564a75db5b425c67e8e5c507a113bd9ee1f2;hp=04667edaa48fd33974ff512c62b43cff1b46f4ad;hb=0fc0831670e27a5611b941c52dc152fd63964515;hpb=6bac08c1a81f34d3f21c550bd92f83654b2546a5 diff --git a/src/SMESH_I/SMESH_Hypothesis_i.cxx b/src/SMESH_I/SMESH_Hypothesis_i.cxx index 04667edaa..4383564a7 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-2020 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; //============================================================================= @@ -60,7 +62,7 @@ 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; }; @@ -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::ObjectToSObject( _this()); res = !SO->_is_nil(); } return res; @@ -237,6 +238,19 @@ void SMESH_Hypothesis_i::setOldParameters (const char* theParameters) return myBaseImpl; } +//================================================================================ +/*! + * \brief Return true if a hypothesis has parameters + */ +//================================================================================ + +CORBA::Boolean SMESH_Hypothesis_i::HasParameters() +{ + std::ostringstream os; + myBaseImpl->SaveTo( os ); + return ( !os.str().empty() ); +} + //============================================================================= /*! * SMESH_Hypothesis_i::SaveTo @@ -314,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(); +}