From 31282d88869470e2076e06357535c486971a8248 Mon Sep 17 00:00:00 2001 From: jfa Date: Mon, 4 Sep 2006 11:39:20 +0000 Subject: [PATCH] Join modifications from branch BR_For_OCT_611: migration to OCCT6.1.1 with new exception handling and improved threads support. --- src/SMESH/SMESH_subMesh.cxx | 5 +- src/SMESH_I/SMESH_MeshEditor_i.cxx | 35 +++++++-- src/StdMeshers/StdMeshers_Distribution.cxx | 78 ++++++++++++++----- .../StdMeshers_NumberOfSegments.cxx | 46 ++++++++--- src/StdMeshers/StdMeshers_Regular_1D.cxx | 20 +++-- .../StdMeshersGUI_DistrPreview.cxx | 75 +++++++++++++----- 6 files changed, 191 insertions(+), 68 deletions(-) diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index c968ac91a..6413b8031 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -1265,6 +1265,9 @@ bool SMESH_subMesh::ComputeStateEngine(int event) RemoveSubMeshElementsAndNodes(); { try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput()) ret = ApplyToCollection( algo, GetCollection( gen, algo ) ); else diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index 5227a9668..55fc2330d 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -37,7 +37,6 @@ #include "SMESH_Gen_i.hxx" #include "SMESH_Filter_i.hxx" #include "SMESH_PythonDump.hxx" -#include "CASCatch.hxx" #include "utilities.h" @@ -45,6 +44,18 @@ #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 +#else +#include "CASCatch.hxx" +#endif + #include typedef map elements; ToMap(theIDsOfElements, aMesh, elements); const SMESH::PointStruct * P = &theStepVector.PS; gp_Vec stepVec( P->x, P->y, P->z ); - + TElemOfElemListMap aHystory; ::SMESH_MeshEditor anEditor( _myMesh ); anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory); @@ -1070,10 +1086,13 @@ void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElemen // Update Python script TPythonDump() << "stepVector = " << theStepVector; TPythonDump() << this << ".ExtrusionSweep( " - << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )"; + << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )"; - } - CASCatch_CATCH(Standard_Failure) { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); INFOS( "SMESH_MeshEditor_i::ExtrusionSweep fails - "<< aFail->GetMessageString() ); } diff --git a/src/StdMeshers/StdMeshers_Distribution.cxx b/src/StdMeshers/StdMeshers_Distribution.cxx index 815b708f6..989fcf3ce 100644 --- a/src/StdMeshers/StdMeshers_Distribution.cxx +++ b/src/StdMeshers/StdMeshers_Distribution.cxx @@ -27,11 +27,22 @@ // $Header$ #include "StdMeshers_Distribution.hxx" -#include "CASCatch.hxx" #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 +#else +#include "CASCatch.hxx" +#endif + Function::Function( const int conv ) : myConv( conv ) { @@ -44,14 +55,19 @@ Function::~Function() bool Function::value( const double, double& f ) const { bool ok = true; - if( myConv==0 ) - { - CASCatch_TRY - { + if (myConv == 0) { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif f = pow( 10, f ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); f = 0.0; ok = false; @@ -170,13 +186,19 @@ FunctionExpr::FunctionExpr( const char* str, const int conv ) myValues( 1, 1 ) { bool ok = true; - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif myExpr = ExprIntrp_GenExp::Create(); myExpr->Process( ( Standard_CString )str ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); ok = false; } @@ -206,10 +228,18 @@ bool FunctionExpr::value( const double t, double& f ) const ( ( TColStd_Array1OfReal& )myValues ).ChangeValue( 1 ) = t; bool ok = true; +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else CASCatch_TRY { +#endif f = myExpr->Expression()->Evaluate( myVars, myValues ); - } - CASCatch_CATCH(Standard_Failure) { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); f = 0.0; ok = false; @@ -222,15 +252,21 @@ bool FunctionExpr::value( const double t, double& f ) const double FunctionExpr::integral( const double a, const double b ) const { double res = 0.0; +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else CASCatch_TRY { - // skl for IPAL13079 (bug on Mandriva) - other cast - //math_GaussSingleIntegration _int( ( math_Function& )*this, a, b, 20 ); - math_GaussSingleIntegration _int( *static_cast( const_cast (this) ), a, b, 20 ); +#endif + math_GaussSingleIntegration _int + ( *static_cast( const_cast (this) ), a, b, 20 ); if( _int.IsDone() ) res = _int.Value(); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif res = 0.0; MESSAGE( "Exception in integral calculating" ); } diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx index 76cd67965..f4819f92c 100644 --- a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx +++ b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx @@ -33,8 +33,6 @@ #include "SMESHDS_SubMesh.hxx" #include "SMESH_Mesh.hxx" -#include "CASCatch.hxx" - #include #include #include @@ -43,6 +41,18 @@ #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 +#else +#include "CASCatch.hxx" +#endif + using namespace std; const double PRECISION = 1e-7; @@ -218,12 +228,18 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector& ta double val = table[i*2+1]; if( _convMode==0 ) { - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif val = pow( 10.0, val ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); throw SALOME_Exception( LOCALIZED( "invalid value")); return; @@ -312,13 +328,19 @@ bool process( const TCollection_AsciiString& str, int convMode, { bool parsed_ok = true; Handle( ExprIntrp_GenExp ) myExpr; - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif myExpr = ExprIntrp_GenExp::Create(); myExpr->Process( str.ToCString() ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); parsed_ok = false; } diff --git a/src/StdMeshers/StdMeshers_Regular_1D.cxx b/src/StdMeshers/StdMeshers_Regular_1D.cxx index f13f1cbce..d933aebbf 100644 --- a/src/StdMeshers/StdMeshers_Regular_1D.cxx +++ b/src/StdMeshers/StdMeshers_Regular_1D.cxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -31,10 +31,6 @@ using namespace std; #include "StdMeshers_Regular_1D.hxx" #include "StdMeshers_Distribution.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" -#include "SMESH_HypoFilter.hxx" -#include "SMESH_subMesh.hxx" #include "StdMeshers_LocalLength.hxx" #include "StdMeshers_NumberOfSegments.hxx" @@ -43,6 +39,11 @@ using namespace std; #include "StdMeshers_Deflection1D.hxx" #include "StdMeshers_AutomaticLength.hxx" +#include "SMESH_Gen.hxx" +#include "SMESH_Mesh.hxx" +#include "SMESH_HypoFilter.hxx" +#include "SMESH_subMesh.hxx" + #include "SMDS_MeshElement.hxx" #include "SMDS_MeshNode.hxx" #include "SMDS_EdgePosition.hxx" @@ -58,15 +59,17 @@ using namespace std; #include #include #include -#include #include #include #include #include -#include #include +#include #include +#include +#include + #include #include @@ -572,6 +575,9 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh if ( !_mainEdge.IsNull() ) reversed = aMesh.IsReversedInChain( EE, _mainEdge ); try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif if ( ! computeInternalParameters( E, params, reversed )) { //cout << "computeInternalParameters() failed" < #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 +#else +#include "CASCatch.hxx" +#endif + StdMeshersGUI_DistrPreview::StdMeshersGUI_DistrPreview( QWidget* p, StdMeshers::StdMeshers_NumberOfSegments_ptr h ) : QwtPlot( p ), myPoints( 50 ), @@ -240,12 +251,18 @@ void StdMeshersGUI_DistrPreview::update() delete[] y; x = y = 0; - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif replot(); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); } } @@ -285,13 +302,19 @@ bool isCorrectArg( const Handle( Expr_GeneralExpression )& expr ) bool StdMeshersGUI_DistrPreview::init( const QString& str ) { bool parsed_ok = true; - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif myExpr = ExprIntrp_GenExp::Create(); myExpr->Process( ( Standard_CString ) str.latin1() ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); parsed_ok = false; } @@ -327,10 +350,18 @@ double StdMeshersGUI_DistrPreview::calc( bool& ok ) double res = 0.0; ok = true; - CASCatch_TRY { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif res = myExpr->Expression()->Evaluate( myVars, myValues ); - } - CASCatch_CATCH(Standard_Failure) { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); ok = false; res = 0.0; @@ -351,16 +382,22 @@ bool StdMeshersGUI_DistrPreview::convert( double& v ) const { case EXPONENT: { - CASCatch_TRY - { +#ifdef NO_CAS_CATCH + try { + OCC_CATCH_SIGNALS; +#else + CASCatch_TRY { +#endif // in StdMeshers_NumberOfSegments.cc // const double PRECISION = 1e-7; // if(v < -7) v = -7.0; v = pow( 10.0, v ); - } - CASCatch_CATCH(Standard_Failure) - { +#ifdef NO_CAS_CATCH + } catch(Standard_Failure) { +#else + } CASCatch_CATCH(Standard_Failure) { +#endif Handle(Standard_Failure) aFail = Standard_Failure::Caught(); v = 0.0; ok = false; -- 2.39.2