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=c1b5c956a72edb85ca224c2fe54e358c5fced769;hb=refs%2Ftags%2FV9_7_0b1;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/SMESH_I/SMESH_Hypothesis_i.cxx b/src/SMESH_I/SMESH_Hypothesis_i.cxx index c1b5c956a..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-2013 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 @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -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; //============================================================================= @@ -47,11 +49,8 @@ using namespace std; SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA ) : SALOME::GenericObj_i( thePOA ) { - MESSAGE( "SMESH_Hypothesis_i::SMESH_Hypothesis_i / Début" ); myBaseImpl = 0; - - MESSAGE( "SMESH_Hypothesis_i::SMESH_Hypothesis_i / Fin" ); -}; +} //============================================================================= /*! @@ -63,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; -}; +} //============================================================================= /*! @@ -78,9 +77,8 @@ SMESH_Hypothesis_i::~SMESH_Hypothesis_i() char* SMESH_Hypothesis_i::GetName() { - //MESSAGE( "SMESH_Hypothesis_i::GetName" ); return CORBA::string_dup( myBaseImpl->GetName() ); -}; +} //============================================================================= /*! @@ -92,9 +90,8 @@ char* SMESH_Hypothesis_i::GetName() char* SMESH_Hypothesis_i::GetLibName() { - MESSAGE( "SMESH_Hypothesis_i::GetLibName" ); return CORBA::string_dup( myBaseImpl->GetLibName() ); -}; +} //============================================================================= /*! @@ -106,9 +103,8 @@ char* SMESH_Hypothesis_i::GetLibName() void SMESH_Hypothesis_i::SetLibName(const char* theLibName) { - MESSAGE( "SMESH_Hypothesis_i::SetLibName" ); myBaseImpl->SetLibName( theLibName ); -}; +} //============================================================================= /*! @@ -118,9 +114,8 @@ void SMESH_Hypothesis_i::SetLibName(const char* theLibName) */ //============================================================================= -CORBA::Long SMESH_Hypothesis_i::GetId() +CORBA::Short SMESH_Hypothesis_i::GetId() { - MESSAGE( "SMESH_Hypothesis_i::GetId" ); return myBaseImpl->GetID(); } @@ -133,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; @@ -244,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 @@ -321,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(); +}