X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_NumberOfSegments.cxx;h=08f1210b95afdf341dde29e47aba0f5bf0d90ca2;hb=382f2cc4abb2ee8553a911aeb27348e96c39d197;hp=29e55e4a5e983d3a0b85012c72942149bbb5fcdd;hpb=8301b1e71a0a9833c5bcf7951b426949f647ae9f;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx index 29e55e4a5..08f1210b9 100644 --- a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx +++ b/src/StdMeshers/StdMeshers_NumberOfSegments.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 : implementaion of SMESH idl descriptions +// SMESH SMESH : implementation of SMESH idl descriptions // File : StdMeshers_NumberOfSegments.cxx // Moved here from SMESH_NumberOfSegments.cxx // Author : Paul RASCLE, EDF @@ -28,10 +28,11 @@ // #include "StdMeshers_NumberOfSegments.hxx" -#include "StdMeshers_Distribution.hxx" +#include "SMESHDS_Mesh.hxx" #include "SMESHDS_SubMesh.hxx" -#include "SMESH_Mesh.hxx" #include "SMESH_Comment.hxx" +#include "SMESH_Mesh.hxx" +#include "StdMeshers_Distribution.hxx" #include #include @@ -41,15 +42,8 @@ #include #include -#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 -#define NO_CAS_CATCH -#endif - #include - -#ifdef NO_CAS_CATCH #include -#endif #include @@ -65,9 +59,8 @@ const double PRECISION = 1e-7; //============================================================================= StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int hypId, - int studyId, SMESH_Gen * gen) - : SMESH_Hypothesis(hypId, studyId, gen), + : StdMeshers_Reversible1D(hypId, gen), _numberOfSegments(15),//issue 19923 _distrType(DT_Regular), _scaleFactor(1.), @@ -94,7 +87,6 @@ StdMeshers_NumberOfSegments::~StdMeshers_NumberOfSegments() //============================================================================= const vector& StdMeshers_NumberOfSegments::BuildDistributionExpr( const char* expr,int nbSeg,int conv ) - throw ( SALOME_Exception ) { if( !buildDistribution( TCollection_AsciiString( ( Standard_CString )expr ), conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) ) _distr.resize( 0 ); @@ -105,7 +97,6 @@ const vector& StdMeshers_NumberOfSegments::BuildDistributionTab( const vector& tab, int nbSeg, int conv ) - throw ( SALOME_Exception ) { if( !buildDistribution( tab, conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) ) _distr.resize( 0 ); @@ -119,7 +110,6 @@ StdMeshers_NumberOfSegments::BuildDistributionTab( const vector& tab, //============================================================================= void StdMeshers_NumberOfSegments::SetNumberOfSegments(int segmentsNumber) -throw(SALOME_Exception) { int oldNumberOfSegments = _numberOfSegments; if (segmentsNumber <= 0) @@ -148,7 +138,6 @@ int StdMeshers_NumberOfSegments::GetNumberOfSegments() const //================================================================================ void StdMeshers_NumberOfSegments::SetDistrType(DistrType typ) - throw(SALOME_Exception) { if (typ < DT_Regular || typ > DT_ExprFunc) throw SALOME_Exception(LOCALIZED("distribution type is out of range")); @@ -178,7 +167,6 @@ StdMeshers_NumberOfSegments::DistrType StdMeshers_NumberOfSegments::GetDistrType //================================================================================ void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor) - throw(SALOME_Exception) { if (scaleFactor < PRECISION) throw SALOME_Exception(LOCALIZED("scale factor must be positive")); @@ -186,8 +174,9 @@ void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor) if (_distrType != DT_Scale) _distrType = DT_Scale; - if ( fabs(scaleFactor - 1.0) < PRECISION ) - _distrType = DT_Regular; +// commented by mpa for IPAL 52986 +// if ( fabs(scaleFactor - 1.0) < PRECISION ) +// _distrType = DT_Regular; if ( fabs(_scaleFactor - scaleFactor) > PRECISION ) { @@ -203,7 +192,6 @@ void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor) //================================================================================ double StdMeshers_NumberOfSegments::GetScaleFactor() const - throw(SALOME_Exception) { if (_distrType != DT_Scale) throw SALOME_Exception(LOCALIZED("not a scale distribution")); @@ -217,7 +205,6 @@ double StdMeshers_NumberOfSegments::GetScaleFactor() const //================================================================================ void StdMeshers_NumberOfSegments::SetTableFunction(const vector& table) - throw(SALOME_Exception) { if (_distrType != DT_TabFunc) _distrType = DT_TabFunc; @@ -236,13 +223,10 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const vector& table) if( _convMode==0 ) { try { -#ifdef NO_CAS_CATCH OCC_CATCH_SIGNALS; -#endif val = pow( 10.0, val ); } - catch(Standard_Failure) { - Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + catch(Standard_Failure&) { throw SALOME_Exception( LOCALIZED( "invalid value")); return; } @@ -285,7 +269,6 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const vector& table) //================================================================================ const vector& StdMeshers_NumberOfSegments::GetTableFunction() const - throw(SALOME_Exception) { if (_distrType != DT_TabFunc) throw SALOME_Exception(LOCALIZED("not a table function distribution")); @@ -333,13 +316,10 @@ bool process( const TCollection_AsciiString& str, int convMode, bool parsed_ok = true; Handle( ExprIntrp_GenExp ) myExpr; try { -#ifdef NO_CAS_CATCH OCC_CATCH_SIGNALS; -#endif myExpr = ExprIntrp_GenExp::Create(); myExpr->Process( str.ToCString() ); - } catch(Standard_Failure) { - Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + } catch(Standard_Failure&) { parsed_ok = false; } @@ -392,7 +372,6 @@ bool process( const TCollection_AsciiString& str, int convMode, //================================================================================ void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr) - throw(SALOME_Exception) { if (_distrType != DT_ExprFunc) _distrType = DT_ExprFunc; @@ -414,7 +393,6 @@ void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr) std::string StdMeshers_NumberOfSegments::CheckExpressionFunction( const std::string& expr, const int convMode) - throw (SALOME_Exception) { // remove white spaces TCollection_AsciiString str((Standard_CString)expr.c_str()); @@ -454,7 +432,6 @@ StdMeshers_NumberOfSegments::CheckExpressionFunction( const std::string& expr, //================================================================================ const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const - throw(SALOME_Exception) { if (_distrType != DT_ExprFunc) throw SALOME_Exception(LOCALIZED("not an expression function distribution")); @@ -468,7 +445,6 @@ const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const //================================================================================ void StdMeshers_NumberOfSegments::SetConversionMode( int conv ) - throw(SALOME_Exception) { // if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc) // throw SALOME_Exception(LOCALIZED("not a functional distribution")); @@ -487,7 +463,6 @@ void StdMeshers_NumberOfSegments::SetConversionMode( int conv ) //================================================================================ int StdMeshers_NumberOfSegments::ConversionMode() const - throw(SALOME_Exception) { // if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc) // throw SALOME_Exception(LOCALIZED("not a functional distribution")); @@ -547,7 +522,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) int a; // read number of segments - isOK = (load >> a); + isOK = static_cast(load >> a); if (isOK) _numberOfSegments = a; else @@ -558,12 +533,12 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) // we wait here the scale factor, which is double. // 2. If the hypothesis is stored in new format // (nb.segments, distr.type, some other params.), - // we wait here the ditribution type, which is integer + // we wait here the distribution type, which is integer double scale_factor; - isOK = (load >> scale_factor); + isOK = static_cast(load >> scale_factor); a = (int)scale_factor; - // try to interprete ditribution type, + // try to interpret distribution type, // supposing that this hypothesis was written in the new format if (isOK) { @@ -581,7 +556,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) { case DT_Scale: { - isOK = (load >> b); + isOK = static_cast(load >> b); if (isOK) _scaleFactor = b; else @@ -595,13 +570,13 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) break; case DT_TabFunc: { - isOK = (load >> a); + isOK = static_cast(load >> a); if (isOK) { _table.resize(a, 0.); for ( size_t i=0; i < _table.size(); i++ ) { - isOK = (load >> b); + isOK = static_cast(load >> b); if (isOK) _table[i] = b; else @@ -620,7 +595,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) case DT_ExprFunc: { string str; - isOK = (load >> str); + isOK = static_cast(load >> str); if (isOK) _func = str; else @@ -639,7 +614,7 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc) { - isOK = (load >> a); + isOK = static_cast(load >> a); if (isOK) _convMode = a; else @@ -648,14 +623,14 @@ istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load) // load reversed edges IDs int intVal; - isOK = (load >> intVal); + isOK = static_cast(load >> intVal); if ( isOK && _distrType != DT_Regular && intVal > 0 ) { _edgeIDs.reserve( intVal ); for ( size_t i = 0; i < _edgeIDs.capacity() && isOK; i++) { - isOK = (load >> intVal); + isOK = static_cast(load >> intVal); if ( isOK ) _edgeIDs.push_back( intVal ); } - isOK = (load >> _objEntry); + isOK = static_cast(load >> _objEntry); } return load; @@ -733,19 +708,3 @@ bool StdMeshers_NumberOfSegments::SetParametersByDefaults(const TDefaults& dflt { return (_numberOfSegments = dflts._nbSegments ); } - -//============================================================================= -/*! - * - */ -//============================================================================= - -void StdMeshers_NumberOfSegments::SetReversedEdges( std::vector& ids ) -{ - if ( ids != _edgeIDs ) { - _edgeIDs = ids; - - NotifySubMeshesHypothesisModification(); - } -} -