Compatibility after fix for "IPAL52698: Convert to quadratic is wrong (hard periodic surfaces)" issue
This commit is contained in:
parent
17822d1b5f
commit
ae9236db1f
@ -1132,7 +1132,7 @@ namespace
|
|||||||
return dist3D;
|
return dist3D;
|
||||||
|
|
||||||
// start recursion if necessary
|
// start recursion if necessary
|
||||||
double dist2D = SMESH_MesherHelper::applyIn2D(surf, uv1, uv2, gp_XY_Subtracted, 0).Modulus();
|
double dist2D = SMESH_MesherHelper::ApplyIn2D(surf, uv1, uv2, gp_XY_Subtracted, 0).Modulus();
|
||||||
if ( fabs( dist3D - dist2D ) < dist2D * 1e-10 )
|
if ( fabs( dist3D - dist2D ) < dist2D * 1e-10 )
|
||||||
return dist3D; // equal parametrization of a planar surface
|
return dist3D; // equal parametrization of a planar surface
|
||||||
|
|
||||||
@ -1256,14 +1256,14 @@ void NETGENPlugin_Mesher::AddIntVerticesInFaces(const netgen::OCCGeometry& o
|
|||||||
{
|
{
|
||||||
uv[iEnd].SetCoord( seg.epgeominfo[iEnd].u, seg.epgeominfo[iEnd].v );
|
uv[iEnd].SetCoord( seg.epgeominfo[iEnd].u, seg.epgeominfo[iEnd].v );
|
||||||
if ( ngIdLast == seg[ iEnd ] ) continue;
|
if ( ngIdLast == seg[ iEnd ] ) continue;
|
||||||
dist2 = helper.applyIn2D(surf, uv[iEnd], vData.uv, gp_XY_Subtracted,0).SquareModulus();
|
dist2 = helper.ApplyIn2D(surf, uv[iEnd], vData.uv, gp_XY_Subtracted,0).SquareModulus();
|
||||||
if ( dist2 < closeDist2 )
|
if ( dist2 < closeDist2 )
|
||||||
vData.ngIdClose = seg[ iEnd ], vData.uvClose = uv[iEnd], closeDist2 = dist2;
|
vData.ngIdClose = seg[ iEnd ], vData.uvClose = uv[iEnd], closeDist2 = dist2;
|
||||||
ngIdLast = seg[ iEnd ];
|
ngIdLast = seg[ iEnd ];
|
||||||
}
|
}
|
||||||
if ( !nbV )
|
if ( !nbV )
|
||||||
{
|
{
|
||||||
totSegLen2D += helper.applyIn2D(surf, uv[0], uv[1], gp_XY_Subtracted, false).Modulus();
|
totSegLen2D += helper.ApplyIn2D(surf, uv[0], uv[1], gp_XY_Subtracted, false).Modulus();
|
||||||
totNbSeg++;
|
totNbSeg++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1290,7 +1290,7 @@ void NETGENPlugin_Mesher::AddIntVerticesInFaces(const netgen::OCCGeometry& o
|
|||||||
for ( int iEnd = 0; iEnd < 2; ++iEnd)
|
for ( int iEnd = 0; iEnd < 2; ++iEnd)
|
||||||
{
|
{
|
||||||
uv[iEnd].SetCoord( seg.epgeominfo[iEnd].u, seg.epgeominfo[iEnd].v );
|
uv[iEnd].SetCoord( seg.epgeominfo[iEnd].u, seg.epgeominfo[iEnd].v );
|
||||||
dist2 = helper.applyIn2D(surf, uv[iEnd], vData.uv, gp_XY_Subtracted,0).SquareModulus();
|
dist2 = helper.ApplyIn2D(surf, uv[iEnd], vData.uv, gp_XY_Subtracted,0).SquareModulus();
|
||||||
if ( dist2 < closeDist2 )
|
if ( dist2 < closeDist2 )
|
||||||
vData.ngIdClose = seg[ iEnd ], vData.uvClose = uv[iEnd], closeDist2 = dist2;
|
vData.ngIdClose = seg[ iEnd ], vData.uvClose = uv[iEnd], closeDist2 = dist2;
|
||||||
}
|
}
|
||||||
@ -1313,7 +1313,7 @@ void NETGENPlugin_Mesher::AddIntVerticesInFaces(const netgen::OCCGeometry& o
|
|||||||
// how far from V
|
// how far from V
|
||||||
double r = min( 0.5, ( hintLenOK ? segLenHint/nodeDist3D : avgSegLen2d/nodeDist2D ));
|
double r = min( 0.5, ( hintLenOK ? segLenHint/nodeDist3D : avgSegLen2d/nodeDist2D ));
|
||||||
// direction from V to closet node in 2D
|
// direction from V to closet node in 2D
|
||||||
gp_Dir2d v2n( helper.applyIn2D(surf, uvP, uvV, gp_XY_Subtracted, false ));
|
gp_Dir2d v2n( helper.ApplyIn2D(surf, uvP, uvV, gp_XY_Subtracted, false ));
|
||||||
// new point
|
// new point
|
||||||
uvP = vData.uv + r * nodeDist2D * v2n.XY();
|
uvP = vData.uv + r * nodeDist2D * v2n.XY();
|
||||||
gp_Pnt P = surf->Value( uvP.X(), uvP.Y() ).Transformed( loc );
|
gp_Pnt P = surf->Value( uvP.X(), uvP.Y() ).Transformed( loc );
|
||||||
|
Loading…
Reference in New Issue
Block a user