Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'agy/arch2_ic0'
[modules/smesh.git]
/
src
/
StdMeshers
/
StdMeshers_NumberOfSegments.cxx
diff --git
a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx
b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx
index c9e48b7e2d341a5ab0ed9c54ad7a2f96005d83ba..08f1210b95afdf341dde29e47aba0f5bf0d90ca2 100644
(file)
--- a/
src/StdMeshers/StdMeshers_NumberOfSegments.cxx
+++ b/
src/StdMeshers/StdMeshers_NumberOfSegments.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-20
14
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-20
20
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
//
// 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
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-// SMESH SMESH : implementaion of SMESH idl descriptions
+// SMESH SMESH : implementa
t
ion of SMESH idl descriptions
// File : StdMeshers_NumberOfSegments.cxx
// Moved here from SMESH_NumberOfSegments.cxx
// Author : Paul RASCLE, EDF
// File : StdMeshers_NumberOfSegments.cxx
// Moved here from SMESH_NumberOfSegments.cxx
// Author : Paul RASCLE, EDF
@@
-28,10
+28,11
@@
//
#include "StdMeshers_NumberOfSegments.hxx"
//
#include "StdMeshers_NumberOfSegments.hxx"
-#include "S
tdMeshers_Distribution
.hxx"
+#include "S
MESHDS_Mesh
.hxx"
#include "SMESHDS_SubMesh.hxx"
#include "SMESHDS_SubMesh.hxx"
-#include "SMESH_Mesh.hxx"
#include "SMESH_Comment.hxx"
#include "SMESH_Comment.hxx"
+#include "SMESH_Mesh.hxx"
+#include "StdMeshers_Distribution.hxx"
#include <ExprIntrp_GenExp.hxx>
#include <Expr_Array1OfNamedUnknown.hxx>
#include <ExprIntrp_GenExp.hxx>
#include <Expr_Array1OfNamedUnknown.hxx>
@@
-41,15
+42,8
@@
#include <TopExp.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopExp.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
-#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
-#define NO_CAS_CATCH
-#endif
-
#include <Standard_Failure.hxx>
#include <Standard_Failure.hxx>
-
-#ifdef NO_CAS_CATCH
#include <Standard_ErrorHandler.hxx>
#include <Standard_ErrorHandler.hxx>
-#endif
#include <Basics_Utils.hxx>
#include <Basics_Utils.hxx>
@@
-65,9
+59,8
@@
const double PRECISION = 1e-7;
//=============================================================================
StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int hypId,
//=============================================================================
StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int hypId,
- int studyId,
SMESH_Gen * gen)
SMESH_Gen * gen)
- : S
MESH_Hypothesis(hypId, study
Id, gen),
+ : S
tdMeshers_Reversible1D(hyp
Id, gen),
_numberOfSegments(15),//issue 19923
_distrType(DT_Regular),
_scaleFactor(1.),
_numberOfSegments(15),//issue 19923
_distrType(DT_Regular),
_scaleFactor(1.),
@@
-94,7
+87,6
@@
StdMeshers_NumberOfSegments::~StdMeshers_NumberOfSegments()
//=============================================================================
const vector<double>&
StdMeshers_NumberOfSegments::BuildDistributionExpr( const char* expr,int nbSeg,int conv )
//=============================================================================
const vector<double>&
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 );
{
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<double>&
StdMeshers_NumberOfSegments::BuildDistributionTab( const vector<double>& tab,
int nbSeg,
int conv )
StdMeshers_NumberOfSegments::BuildDistributionTab( const vector<double>& tab,
int nbSeg,
int conv )
- throw ( SALOME_Exception )
{
if( !buildDistribution( tab, conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) )
_distr.resize( 0 );
{
if( !buildDistribution( tab, conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) )
_distr.resize( 0 );
@@
-119,7
+110,6
@@
StdMeshers_NumberOfSegments::BuildDistributionTab( const vector<double>& tab,
//=============================================================================
void StdMeshers_NumberOfSegments::SetNumberOfSegments(int segmentsNumber)
//=============================================================================
void StdMeshers_NumberOfSegments::SetNumberOfSegments(int segmentsNumber)
-throw(SALOME_Exception)
{
int oldNumberOfSegments = _numberOfSegments;
if (segmentsNumber <= 0)
{
int oldNumberOfSegments = _numberOfSegments;
if (segmentsNumber <= 0)
@@
-148,7
+138,6
@@
int StdMeshers_NumberOfSegments::GetNumberOfSegments() const
//================================================================================
void StdMeshers_NumberOfSegments::SetDistrType(DistrType typ)
//================================================================================
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"));
{
if (typ < DT_Regular || typ > DT_ExprFunc)
throw SALOME_Exception(LOCALIZED("distribution type is out of range"));
@@
-178,17
+167,18
@@
StdMeshers_NumberOfSegments::DistrType StdMeshers_NumberOfSegments::GetDistrType
//================================================================================
void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
//================================================================================
void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
- throw(SALOME_Exception)
{
{
- if (_distrType != DT_Scale)
- _distrType = DT_Scale;
- //throw SALOME_Exception(LOCALIZED("not a scale distribution"));
if (scaleFactor < PRECISION)
throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
if (scaleFactor < PRECISION)
throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
- //if (fabs(scaleFactor - 1.0) < PRECISION)
- // throw SALOME_Exception(LOCALIZED("scale factor must not be equal to 1"));
- if (fabs(_scaleFactor - scaleFactor) > PRECISION)
+ if (_distrType != DT_Scale)
+ _distrType = DT_Scale;
+
+// commented by mpa for IPAL 52986
+// if ( fabs(scaleFactor - 1.0) < PRECISION )
+// _distrType = DT_Regular;
+
+ if ( fabs(_scaleFactor - scaleFactor) > PRECISION )
{
_scaleFactor = scaleFactor;
NotifySubMeshesHypothesisModification();
{
_scaleFactor = scaleFactor;
NotifySubMeshesHypothesisModification();
@@
-197,12
+187,11
@@
void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
//================================================================================
/*!
//================================================================================
/*!
- *
+ *
*/
//================================================================================
double StdMeshers_NumberOfSegments::GetScaleFactor() const
*/
//================================================================================
double StdMeshers_NumberOfSegments::GetScaleFactor() const
- throw(SALOME_Exception)
{
if (_distrType != DT_Scale)
throw SALOME_Exception(LOCALIZED("not a scale distribution"));
{
if (_distrType != DT_Scale)
throw SALOME_Exception(LOCALIZED("not a scale distribution"));
@@
-211,12
+200,11
@@
double StdMeshers_NumberOfSegments::GetScaleFactor() const
//================================================================================
/*!
//================================================================================
/*!
- *
+ *
*/
//================================================================================
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
*/
//================================================================================
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
- throw(SALOME_Exception)
{
if (_distrType != DT_TabFunc)
_distrType = DT_TabFunc;
{
if (_distrType != DT_TabFunc)
_distrType = DT_TabFunc;
@@
-224,23
+212,21
@@
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
if ( (table.size() % 2) != 0 )
throw SALOME_Exception(LOCALIZED("odd size of vector of table function"));
if ( (table.size() % 2) != 0 )
throw SALOME_Exception(LOCALIZED("odd size of vector of table function"));
- int i;
double prev = -PRECISION;
bool isSame = table.size() == _table.size();
bool pos = false;
double prev = -PRECISION;
bool isSame = table.size() == _table.size();
bool pos = false;
- for (i=0; i < table.size()/2; i++) {
+ for ( size_t i = 0; i < table.size() / 2; i++ )
+ {
double par = table[i*2];
double val = table[i*2+1];
if( _convMode==0 )
{
try {
double par = table[i*2];
double val = table[i*2+1];
if( _convMode==0 )
{
try {
-#ifdef NO_CAS_CATCH
OCC_CATCH_SIGNALS;
OCC_CATCH_SIGNALS;
-#endif
val = pow( 10.0, val );
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;
}
throw SALOME_Exception( LOCALIZED( "invalid value"));
return;
}
@@
-248,19
+234,19
@@
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
else if( _convMode==1 && val<0.0 )
val = 0.0;
else if( _convMode==1 && val<0.0 )
val = 0.0;
- if ( par
<
0 || par > 1)
+ if ( par
<
0 || par > 1)
throw SALOME_Exception(LOCALIZED("parameter of table function is out of range [0,1]"));
throw SALOME_Exception(LOCALIZED("parameter of table function is out of range [0,1]"));
- if ( fabs(par-prev)
<
PRECISION )
+ if ( fabs(par-prev)
<
PRECISION )
throw SALOME_Exception(LOCALIZED("two parameters are the same"));
if ( val < 0 )
throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
throw SALOME_Exception(LOCALIZED("two parameters are the same"));
if ( val < 0 )
throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
- if( val
>
PRECISION )
+ if( val
>
PRECISION )
pos = true;
if (isSame)
{
double oldpar = _table[i*2];
double oldval = _table[i*2+1];
pos = true;
if (isSame)
{
double oldpar = _table[i*2];
double oldval = _table[i*2+1];
- if (
fabs(par - oldpar) > PRECISION || fabs(val - oldval) > PRECISION
)
+ if (
fabs(par - oldpar) > PRECISION || fabs(val - oldval) > PRECISION
)
isSame = false;
}
prev = par;
isSame = false;
}
prev = par;
@@
-269,7
+255,7
@@
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
if( !pos )
throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
if( !pos )
throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
- if( pos && !isSame )
+ if
( pos && !isSame )
{
_table = table;
NotifySubMeshesHypothesisModification();
{
_table = table;
NotifySubMeshesHypothesisModification();
@@
-278,12
+264,11
@@
void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
//================================================================================
/*!
//================================================================================
/*!
- *
+ *
*/
//================================================================================
const vector<double>& StdMeshers_NumberOfSegments::GetTableFunction() const
*/
//================================================================================
const vector<double>& StdMeshers_NumberOfSegments::GetTableFunction() const
- throw(SALOME_Exception)
{
if (_distrType != DT_TabFunc)
throw SALOME_Exception(LOCALIZED("not a table function distribution"));
{
if (_distrType != DT_TabFunc)
throw SALOME_Exception(LOCALIZED("not a table function distribution"));
@@
-331,13
+316,10
@@
bool process( const TCollection_AsciiString& str, int convMode,
bool parsed_ok = true;
Handle( ExprIntrp_GenExp ) myExpr;
try {
bool parsed_ok = true;
Handle( ExprIntrp_GenExp ) myExpr;
try {
-#ifdef NO_CAS_CATCH
OCC_CATCH_SIGNALS;
OCC_CATCH_SIGNALS;
-#endif
myExpr = ExprIntrp_GenExp::Create();
myExpr->Process( str.ToCString() );
myExpr = ExprIntrp_GenExp::Create();
myExpr->Process( str.ToCString() );
- } catch(Standard_Failure) {
- Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+ } catch(Standard_Failure&) {
parsed_ok = false;
}
parsed_ok = false;
}
@@
-390,11
+372,9
@@
bool process( const TCollection_AsciiString& str, int convMode,
//================================================================================
void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
//================================================================================
void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
- throw(SALOME_Exception)
{
if (_distrType != DT_ExprFunc)
_distrType = DT_ExprFunc;
{
if (_distrType != DT_ExprFunc)
_distrType = DT_ExprFunc;
- //throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
string func = CheckExpressionFunction( expr, _convMode );
if( _func != func )
string func = CheckExpressionFunction( expr, _convMode );
if( _func != func )
@@
-413,7
+393,6
@@
void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
std::string
StdMeshers_NumberOfSegments::CheckExpressionFunction( const std::string& expr,
const int convMode)
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());
{
// remove white spaces
TCollection_AsciiString str((Standard_CString)expr.c_str());
@@
-453,7
+432,6
@@
StdMeshers_NumberOfSegments::CheckExpressionFunction( const std::string& expr,
//================================================================================
const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const
//================================================================================
const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const
- throw(SALOME_Exception)
{
if (_distrType != DT_ExprFunc)
throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
{
if (_distrType != DT_ExprFunc)
throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
@@
-467,7
+445,6
@@
const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const
//================================================================================
void StdMeshers_NumberOfSegments::SetConversionMode( int conv )
//================================================================================
void StdMeshers_NumberOfSegments::SetConversionMode( int conv )
- throw(SALOME_Exception)
{
// if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
// throw SALOME_Exception(LOCALIZED("not a functional distribution"));
{
// if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
// throw SALOME_Exception(LOCALIZED("not a functional distribution"));
@@
-486,7
+463,6
@@
void StdMeshers_NumberOfSegments::SetConversionMode( int conv )
//================================================================================
int StdMeshers_NumberOfSegments::ConversionMode() const
//================================================================================
int StdMeshers_NumberOfSegments::ConversionMode() const
- throw(SALOME_Exception)
{
// if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
// throw SALOME_Exception(LOCALIZED("not a functional distribution"));
{
// if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
// throw SALOME_Exception(LOCALIZED("not a functional distribution"));
@@
-509,9
+485,8
@@
ostream & StdMeshers_NumberOfSegments::SaveTo(ostream & save)
save << " " << _scaleFactor;
break;
case DT_TabFunc:
save << " " << _scaleFactor;
break;
case DT_TabFunc:
- int i;
save << " " << _table.size();
save << " " << _table.size();
- for (
i=0; i < _table.size(); i++
)
+ for (
size_t i = 0; i < _table.size(); i++
)
save << " " << _table[i];
break;
case DT_ExprFunc:
save << " " << _table[i];
break;
case DT_ExprFunc:
@@
-547,7
+522,7
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
int a;
// read number of segments
int a;
// read number of segments
- isOK = (load >> a);
+ isOK =
static_cast<bool>
(load >> a);
if (isOK)
_numberOfSegments = a;
else
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 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 di
s
tribution type, which is integer
double scale_factor;
double scale_factor;
- isOK = (load >> scale_factor);
+ isOK =
static_cast<bool>
(load >> scale_factor);
a = (int)scale_factor;
a = (int)scale_factor;
- // try to interpret
e di
tribution type,
+ // try to interpret
dis
tribution type,
// supposing that this hypothesis was written in the new format
if (isOK)
{
// 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:
{
{
case DT_Scale:
{
- isOK = (load >> b);
+ isOK =
static_cast<bool>
(load >> b);
if (isOK)
_scaleFactor = b;
else
if (isOK)
_scaleFactor = b;
else
@@
-595,14
+570,13
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
break;
case DT_TabFunc:
{
break;
case DT_TabFunc:
{
- isOK = (load >> a);
+ isOK =
static_cast<bool>
(load >> a);
if (isOK)
{
_table.resize(a, 0.);
if (isOK)
{
_table.resize(a, 0.);
- int i;
- for (i=0; i < _table.size(); i++)
+ for ( size_t i=0; i < _table.size(); i++ )
{
{
- isOK = (load >> b);
+ isOK =
static_cast<bool>
(load >> b);
if (isOK)
_table[i] = b;
else
if (isOK)
_table[i] = b;
else
@@
-621,7
+595,7
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
case DT_ExprFunc:
{
string str;
case DT_ExprFunc:
{
string str;
- isOK = (load >> str);
+ isOK =
static_cast<bool>
(load >> str);
if (isOK)
_func = str;
else
if (isOK)
_func = str;
else
@@
-640,7
+614,7
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc)
{
if (_distrType == DT_TabFunc || _distrType == DT_ExprFunc)
{
- isOK = (load >> a);
+ isOK =
static_cast<bool>
(load >> a);
if (isOK)
_convMode = a;
else
if (isOK)
_convMode = a;
else
@@
-649,14
+623,14
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
// load reversed edges IDs
int intVal;
// load reversed edges IDs
int intVal;
- isOK = (load >> intVal);
+ isOK =
static_cast<bool>
(load >> intVal);
if ( isOK && _distrType != DT_Regular && intVal > 0 ) {
_edgeIDs.reserve( intVal );
if ( isOK && _distrType != DT_Regular && intVal > 0 ) {
_edgeIDs.reserve( intVal );
- for (
in
t i = 0; i < _edgeIDs.capacity() && isOK; i++) {
- isOK = (load >> intVal);
+ for (
size_
t i = 0; i < _edgeIDs.capacity() && isOK; i++) {
+ isOK =
static_cast<bool>
(load >> intVal);
if ( isOK ) _edgeIDs.push_back( intVal );
}
if ( isOK ) _edgeIDs.push_back( intVal );
}
- isOK = (load >> _objEntry);
+ isOK =
static_cast<bool>
(load >> _objEntry);
}
return load;
}
return load;
@@
-664,7
+638,7
@@
istream & StdMeshers_NumberOfSegments::LoadFrom(istream & load)
//=============================================================================
/*!
//=============================================================================
/*!
- *
+ *
*/
//=============================================================================
*/
//=============================================================================
@@
-734,19
+708,3
@@
bool StdMeshers_NumberOfSegments::SetParametersByDefaults(const TDefaults& dflt
{
return (_numberOfSegments = dflts._nbSegments );
}
{
return (_numberOfSegments = dflts._nbSegments );
}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void StdMeshers_NumberOfSegments::SetReversedEdges( std::vector<int>& ids )
-{
- if ( ids != _edgeIDs ) {
- _edgeIDs = ids;
-
- NotifySubMeshesHypothesisModification();
- }
-}
-