Standard_Integer aDegMin = -1, aDegMax = -1, aMaxSegments = -1;
Standard_Real aMaxDist = -1;
AppParCurves_Constraint aBndPnt = AppParCurves_TangencyPoint;
+ Standard_Boolean isExtendSurf = Standard_False;
if ((TolReached2d >= 10. * aTR) && (TolReached2d <= aMaxTol || isAnaSurf))
{
aTR = Min(aMaxTol, 0.1*TolReached2d);
{
aBndPnt = AppParCurves_PassPoint;
}
+ isExtendSurf = Standard_True;
}
else if(TolReached2d > aMaxTol)
{
aTR = Min(TolReached2d, 1.e3 * aMaxTol);
aMaxDist = 1.e2 * aTR;
aMaxSegments = 100;
+ isExtendSurf = Standard_True;
+ }
+ if (isExtendSurf)
+ {
+ Handle(Adaptor3d_Surface) anA3dSurf;
+ Standard_Real dt = (aBAHS->LastUParameter() - aBAHS->FirstUParameter());
+ if (!aBAHS->IsUPeriodic() || Abs(dt - aBAHS->UPeriod()) > 0.01 * dt)
+ {
+ dt *= 0.01;
+ anA3dSurf = aBAHS->UTrim(aBAHS->FirstUParameter() - dt, aBAHS->LastUParameter() + dt, 0.);
+ }
+ dt = (aBAHS->LastVParameter() - aBAHS->FirstVParameter());
+ if (!aBAHS->IsVPeriodic() || Abs(dt - aBAHS->VPeriod()) > 0.01 * dt)
+ {
+ dt *= 0.01;
+ anA3dSurf = aBAHS->VTrim(aBAHS->FirstVParameter() - dt, aBAHS->LastVParameter() + dt, 0.);
+ }
+ if (!anA3dSurf.IsNull())
+ {
+ aProjCurv.Load(anA3dSurf);
+ }
}
aProjCurv.Load(aTR);
aProjCurv.SetDegree(aDegMin, aDegMax);
--- /dev/null
+puts "============================================================================================="
+puts "0032106: Modeling Algorithms - Tolerance of General Fuse result depends on a sequence of arguments"
+puts "============================================================================================="
+puts ""
+
+brestore [locate_data_file bug32106-body.brep] b1
+brestore [locate_data_file bug32106-contour.brep] w1
+tcopy -n b1 b2
+tcopy -n w1 w2
+
+bclearobjects
+bcleartools
+
+baddobjects b1 w1
+bfuzzyvalue 1.0
+bfillds
+bbuild r1
+
+checkshape r1
+checknbshapes r1 -vertex 65 -edge 96 -wire 33 -face 32 -shell 1 -t
+checkmaxtol r1 -ref 4.2e-01
+checkprops r1 -l 73255.5
+
+bclearobjects
+bcleartools
+
+baddobjects w2 b2
+bfuzzyvalue 1.0
+bfillds
+bbuild r2
+checkshape r2
+checknbshapes r2 -ref [nbshapes r1]
+checkmaxtol r2 -ref 4.2e-01
+checkprops r2 -l 73255.6
+
+checkview -display r1 -2d -path ${imagedir}/${test_image}_r1.png
+checkview -display r2 -2d -path ${imagedir}/${test_image}_r2.png