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
23348: EDF 12916 - SALOME crashes when generating pyramids
[modules/smesh.git]
/
src
/
StdMeshers
/
StdMeshers_LocalLength.cxx
diff --git
a/src/StdMeshers/StdMeshers_LocalLength.cxx
b/src/StdMeshers/StdMeshers_LocalLength.cxx
index 6546c4492327b14b87930083fab74ba612eed91a..d4ebdfb0afb94f1ac27522bbbc1af8f6ecf312a9 100644
(file)
--- a/
src/StdMeshers/StdMeshers_LocalLength.cxx
+++ b/
src/StdMeshers/StdMeshers_LocalLength.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
4
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
6
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
@@
-148,13
+148,13
@@
istream & StdMeshers_LocalLength::LoadFrom(istream & load)
bool isOK = true;
double a;
bool isOK = true;
double a;
- isOK = (load >> a);
+ isOK =
static_cast<bool>
(load >> a);
if (isOK)
this->_length = a;
else
load.clear(ios::badbit | load.rdstate());
if (isOK)
this->_length = a;
else
load.clear(ios::badbit | load.rdstate());
- isOK = (load >> a);
+ isOK =
static_cast<bool>
(load >> a);
if (isOK)
this->_precision = a;
else
if (isOK)
this->_precision = a;
else
@@
-216,13
+216,15
@@
bool StdMeshers_LocalLength::SetParametersByMesh(const SMESH_Mesh* theMesh,
{
const TopoDS_Edge& edge = TopoDS::Edge( edgeMap( iE ));
Handle(Geom_Curve) C = BRep_Tool::Curve( edge, L, UMin, UMax );
{
const TopoDS_Edge& edge = TopoDS::Edge( edgeMap( iE ));
Handle(Geom_Curve) C = BRep_Tool::Curve( edge, L, UMin, UMax );
+ if ( C.IsNull() )
+ continue;
GeomAdaptor_Curve AdaptCurve(C, UMin, UMax);
vector< double > params;
SMESHDS_Mesh* aMeshDS = const_cast< SMESH_Mesh* >( theMesh )->GetMeshDS();
if ( SMESH_Algo::GetNodeParamOnEdge( aMeshDS, edge, params ))
{
GeomAdaptor_Curve AdaptCurve(C, UMin, UMax);
vector< double > params;
SMESHDS_Mesh* aMeshDS = const_cast< SMESH_Mesh* >( theMesh )->GetMeshDS();
if ( SMESH_Algo::GetNodeParamOnEdge( aMeshDS, edge, params ))
{
- for (
in
t i = 1; i < params.size(); ++i )
+ for (
size_
t i = 1; i < params.size(); ++i )
_length += GCPnts_AbscissaPoint::Length( AdaptCurve, params[ i-1 ], params[ i ]);
nbEdges += params.size() - 1;
}
_length += GCPnts_AbscissaPoint::Length( AdaptCurve, params[ i-1 ], params[ i ]);
nbEdges += params.size() - 1;
}