}
// look for a degenerated edge
- if ( BRep_Tool::Degenerated( edge )) {
+ if ( SMESH_Algo::isDegenerated( edge )) {
myDegenShapeIds.insert( meshDS->ShapeToIndex( edge ));
for ( TopExp_Explorer v( edge, TopAbs_VERTEX ); v.More(); v.Next() )
myDegenShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
for ( TopExp_Explorer vert(F,TopAbs_VERTEX); !uvOK && vert.More(); vert.Next() )
uvOK = ( V == vert.Current() );
if ( !uvOK ) {
-#ifdef _DEBUG_
MESSAGE ( "SMESH_MesherHelper::GetNodeUV(); Vertex " << vertexID
- << " not in face " << GetMeshDS()->ShapeToIndex( F ) );
-#endif
+ << " not in face " << GetMeshDS()->ShapeToIndex( F ) );
// get UV of a vertex closest to the node
double dist = 1e100;
gp_Pnt pn = XYZ( n );
double SMESH_MesherHelper::GetNodeU(const TopoDS_Edge& E,
const SMDS_MeshNode* n,
const SMDS_MeshNode* inEdgeNode,
- bool* check)
+ bool* check) const
{
double param = Precision::Infinite();
}
Quantity_Parameter U = projector->LowerDistanceParameter();
u = double( U );
+ MESSAGE(" f " << f << " l " << l << " u " << u);
curvPnt = curve->Value( u );
dist = nodePnt.Distance( curvPnt );
if ( distXYZ ) {
}
if (( u < f-tol || u > l+tol ) && force )
{
+ MESSAGE("u < f-tol || u > l+tol ; u " << u << " f " << f << " l " << l);
// node is on vertex but is set on periodic but trimmed edge (issue 0020890)
try
{
{
SMESH_TNodeXYZ nPnt[3];
SMDS_ElemIteratorPtr nodesIt = elem->nodesIterator();
+ int iNodeOnFace = 0, iPosDim = SMDS_TOP_VERTEX;
for ( int iN = 0; nodesIt->more() && iN < 3; ++iN) // loop on nodes
+ {
nPnt[ iN ] = nodesIt->next();
-
+ if ( nPnt[ iN ]._node->GetPosition()->GetTypeOfPosition() > iPosDim )
+ {
+ iNodeOnFace = iN;
+ iPosDim = nPnt[ iN ]._node->GetPosition()->GetTypeOfPosition();
+ }
+ }
// compute normal
gp_Vec v01( nPnt[0], nPnt[1] ), v02( nPnt[0], nPnt[2] );
if ( v01.SquareMagnitude() > RealSmall() &&
{
Ne = v01 ^ v02;
if (( normalOK = ( Ne.SquareMagnitude() > RealSmall() )))
- uv = GetNodeUV( theFace, nPnt[0]._node, nPnt[2]._node, &normalOK );
+ uv = GetNodeUV( theFace, nPnt[iNodeOnFace]._node, 0, &normalOK );
}
}
}
{
// check if the EDGE needs checking
const TopoDS_Edge& edge = TopoDS::Edge( edgeIt.Current() );
- if ( BRep_Tool::Degenerated( edge ) )
+ if ( SMESH_Algo::isDegenerated( edge ) )
continue;
if ( theHelper.IsRealSeam( edge ) &&
edge.Orientation() == TopAbs_REVERSED )
}
}
}
-