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 SALOME_TESTS/Grids/smesh/imps_09/K0
[modules/smesh.git]
/
src
/
SMESHUtils
/
SMESH_Delaunay.cxx
diff --git
a/src/SMESHUtils/SMESH_Delaunay.cxx
b/src/SMESHUtils/SMESH_Delaunay.cxx
index 85f03a65ef3991984fc791aaf28323f37e8b1cfe..8ae5f1761a41089737828165354d6c0d61d8311c 100644
(file)
--- a/
src/SMESHUtils/SMESH_Delaunay.cxx
+++ b/
src/SMESHUtils/SMESH_Delaunay.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
6
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
9
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
@@
-32,6
+32,8
@@
#include <BRepAdaptor_Surface.hxx>
#include <BRepMesh_Delaun.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepMesh_Delaun.hxx>
+#include <Basics_OCCTVersion.hxx>
+
//================================================================================
/*!
* \brief Construct a Delaunay triangulation of given boundary nodes
//================================================================================
/*!
* \brief Construct a Delaunay triangulation of given boundary nodes
@@
-82,7
+84,11
@@
SMESH_Delaunay::SMESH_Delaunay(const std::vector< const UVPtStructVec* > & bound
_bndNodes.resize( nbP );
// fill boundary points
_bndNodes.resize( nbP );
// fill boundary points
+#if OCC_VERSION_LARGE <= 0x07030000
BRepMesh::Array1OfVertexOfDelaun bndVert( 1, 1 + nbP );
BRepMesh::Array1OfVertexOfDelaun bndVert( 1, 1 + nbP );
+#else
+ IMeshData::Array1OfVertexOfDelaun bndVert( 1, 1 + nbP );
+#endif
BRepMesh_Vertex v( 0, 0, BRepMesh_Frontier );
for ( size_t iW = 0; iW < boundaryNodes.size(); ++iW )
{
BRepMesh_Vertex v( 0, 0, BRepMesh_Frontier );
for ( size_t iW = 0; iW < boundaryNodes.size(); ++iW )
{
@@
-198,6
+204,12
@@
const BRepMesh_Triangle* SMESH_Delaunay::FindTriangle( const gp_XY&
bc[0], bc[1] );
if ( bc[0] >= 0 && bc[1] >= 0 && bc[0] + bc[1] <= 1 )
{
bc[0], bc[1] );
if ( bc[0] >= 0 && bc[1] >= 0 && bc[0] + bc[1] <= 1 )
{
+ if ( _triaDS->GetNode( nodeIDs[0] ).Movability() != BRepMesh_Frontier ||
+ _triaDS->GetNode( nodeIDs[1] ).Movability() != BRepMesh_Frontier ||
+ _triaDS->GetNode( nodeIDs[2] ).Movability() != BRepMesh_Frontier )
+ {
+ return 0;
+ }
bc[2] = 1 - bc[0] - bc[1];
triaNodes[0] = nodeIDs[0] - 1;
triaNodes[1] = nodeIDs[1] - 1;
bc[2] = 1 - bc[0] - bc[1];
triaNodes[0] = nodeIDs[0] - 1;
triaNodes[1] = nodeIDs[1] - 1;
@@
-212,7
+224,11
@@
const BRepMesh_Triangle* SMESH_Delaunay::FindTriangle( const gp_XY&
gp_XY seg = uv - gc;
tria->Edges( linkIDs, ori );
gp_XY seg = uv - gc;
tria->Edges( linkIDs, ori );
+#if OCC_VERSION_LARGE <= 0x07030000
int triaID = _triaDS->IndexOf( *tria );
int triaID = _triaDS->IndexOf( *tria );
+#else
+ int triaID = tria - & ( _triaDS->GetElement( 0 ));
+#endif
tria = 0;
for ( int i = 0; i < 3; ++i )
tria = 0;
for ( int i = 0; i < 3; ++i )
@@
-256,8
+272,13
@@
const BRepMesh_Triangle* SMESH_Delaunay::GetTriangleNear( int iBndNode )
{
int nodeIDs[3];
int nbNbNodes = _bndNodes.size();
{
int nodeIDs[3];
int nbNbNodes = _bndNodes.size();
+#if OCC_VERSION_LARGE <= 0x07030000
const BRepMesh::ListOfInteger & linkIds = _triaDS->LinksConnectedTo( iBndNode + 1 );
BRepMesh::ListOfInteger::const_iterator iLink = linkIds.cbegin();
const BRepMesh::ListOfInteger & linkIds = _triaDS->LinksConnectedTo( iBndNode + 1 );
BRepMesh::ListOfInteger::const_iterator iLink = linkIds.cbegin();
+#else
+ const IMeshData::ListOfInteger & linkIds = _triaDS->LinksConnectedTo( iBndNode + 1 );
+ IMeshData::ListOfInteger::const_iterator iLink = linkIds.cbegin();
+#endif
for ( ; iLink != linkIds.cend(); ++iLink )
{
const BRepMesh_PairOfIndex & triaIds = _triaDS->ElementsConnectedTo( *iLink );
for ( ; iLink != linkIds.cend(); ++iLink )
{
const BRepMesh_PairOfIndex & triaIds = _triaDS->ElementsConnectedTo( *iLink );