-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 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
#include <BRepAdaptor_Surface.hxx>
#include <BRepMesh_Delaun.hxx>
+#include <Basics_OCCTVersion.hxx>
+
//================================================================================
/*!
* \brief Construct a Delaunay triangulation of given boundary nodes
_bndNodes.resize( nbP );
// fill boundary points
+#if OCC_VERSION_LARGE <= 0x07030000
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 )
{
nodeUVs[1] = _triaDS->GetNode( nodeIDs[1] ).Coord();
nodeUVs[2] = _triaDS->GetNode( nodeIDs[2] ).Coord();
- if ( _triaDS->GetNode( nodeIDs[0] ).Movability() == BRepMesh_Frontier &&
- _triaDS->GetNode( nodeIDs[1] ).Movability() == BRepMesh_Frontier &&
- _triaDS->GetNode( nodeIDs[2] ).Movability() == BRepMesh_Frontier )
+ SMESH_MeshAlgos::GetBarycentricCoords( uv,
+ nodeUVs[0], nodeUVs[1], nodeUVs[2],
+ bc[0], bc[1] );
+ if ( bc[0] >= 0 && bc[1] >= 0 && bc[0] + bc[1] <= 1 )
{
- SMESH_MeshAlgos::GetBarycentricCoords( uv,
- nodeUVs[0], nodeUVs[1], nodeUVs[2],
- 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 )
{
- bc[2] = 1 - bc[0] - bc[1];
- triaNodes[0] = nodeIDs[0] - 1;
- triaNodes[1] = nodeIDs[1] - 1;
- triaNodes[2] = nodeIDs[2] - 1;
- return tria;
+ return 0;
}
+ bc[2] = 1 - bc[0] - bc[1];
+ triaNodes[0] = nodeIDs[0] - 1;
+ triaNodes[1] = nodeIDs[1] - 1;
+ triaNodes[2] = nodeIDs[2] - 1;
+ return tria;
}
// look for a neighbor triangle, which is adjacent to a link intersected
gp_XY seg = uv - gc;
tria->Edges( linkIDs, ori );
+#if OCC_VERSION_LARGE <= 0x07030000
int triaID = _triaDS->IndexOf( *tria );
+#else
+ int triaID = tria - & ( _triaDS->GetElement( 0 ));
+#endif
tria = 0;
for ( int i = 0; i < 3; ++i )
{
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();
+#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 );