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
Fix regression of the proxy mesh
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_Algo.cxx
diff --git
a/src/SMESH/SMESH_Algo.cxx
b/src/SMESH/SMESH_Algo.cxx
index 56d41720d7988588403367d37329c6a2c44fcb77..a6806c3d8eb5ca5e05ee643099be7c6ab182d7c5 100644
(file)
--- a/
src/SMESH/SMESH_Algo.cxx
+++ b/
src/SMESH/SMESH_Algo.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
5
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
@@
-412,7
+412,7
@@
bool SMESH_Algo::GetSortedNodesOnEdge(const SMESHDS_Mesh* theM
return false;
SMESHDS_SubMesh * eSubMesh = theMesh->MeshElements( theEdge );
return false;
SMESHDS_SubMesh * eSubMesh = theMesh->MeshElements( theEdge );
- if ( !eSubMesh || ( eSubMesh->NbElements()
==0 &&
eSubMesh->NbNodes() == 0))
+ if ( !eSubMesh || ( eSubMesh->NbElements()
== 0 &&
eSubMesh->NbNodes() == 0))
return false; // edge is not meshed
int nbNodes = 0;
return false; // edge is not meshed
int nbNodes = 0;
@@
-494,10
+494,11
@@
SMESH_Algo::GetCompatibleHypoFilter(const bool ignoreAuxiliary) const
*/
//================================================================================
*/
//================================================================================
-GeomAbs_Shape SMESH_Algo::Continuity(
TopoDS_Edge
E1,
-
TopoDS_Edge
E2)
+GeomAbs_Shape SMESH_Algo::Continuity(
const TopoDS_Edge& the
E1,
+
const TopoDS_Edge& the
E2)
{
{
- //E1.Orientation(TopAbs_FORWARD), E2.Orientation(TopAbs_FORWARD); // avoid pb with internal edges
+ // avoid pb with internal edges
+ TopoDS_Edge E1 = theE1, E2 = theE2;
if (E1.Orientation() > TopAbs_REVERSED) // INTERNAL
E1.Orientation( TopAbs_FORWARD );
if (E2.Orientation() > TopAbs_REVERSED) // INTERNAL
if (E1.Orientation() > TopAbs_REVERSED) // INTERNAL
E1.Orientation( TopAbs_FORWARD );
if (E2.Orientation() > TopAbs_REVERSED) // INTERNAL
@@
-583,8
+584,10
@@
bool SMESH_Algo::IsStraight( const TopoDS_Edge & E,
*/
//================================================================================
*/
//================================================================================
-bool SMESH_Algo::isDegenerated( const TopoDS_Edge & E )
+bool SMESH_Algo::isDegenerated( const TopoDS_Edge & E
, const bool checkLength
)
{
{
+ if ( checkLength )
+ return EdgeLength( E ) == 0;
double f,l;
TopLoc_Location loc;
Handle(Geom_Curve) C = BRep_Tool::Curve( E, loc, f,l );
double f,l;
TopLoc_Location loc;
Handle(Geom_Curve) C = BRep_Tool::Curve( E, loc, f,l );