{
//Surface is periodic, checking curve2d domain
//Old domain
- gp_Pnt2d aPf = C2d->Value(f2d);
+ Standard_Real aMinDist = Precision::Infinite();
+ if (S->IsUPeriodic())
+ {
+ aMinDist = Min(0.5 * S->UPeriod(), aMinDist);
+ }
+ if (S->IsVPeriodic())
+ {
+ aMinDist = Min(0.5 * S->VPeriod(), aMinDist);
+ }
+ aMinDist *= aMinDist;
+ //Old domain
+ Standard_Real t = 0.5 * (f2d + l2d);
+ gp_Pnt2d aPf = C2d->Value(t);
//New domain
- gp_Pnt2d aNewPf = Curve2d->Value(f2d);
+ gp_Pnt2d aNewPf = Curve2d->Value(t);
gp_Vec2d aT(aNewPf, aPf);
- if (aT.SquareMagnitude() > Precision::SquarePConfusion())
+ if (aT.SquareMagnitude() > aMinDist)
{
Curve2d = Handle(Geom2d_Curve)::DownCast(Curve2d->Translated(aT));
}
incmesh result 0.15 -a 20
tricheck result
-checktrinfo result -tri 191 -nod 146 -defl 0.052300780129031083 -tol_abs_defl 1.0e-6
+checktrinfo result -tri 193 -nod 147 -defl 0.052300780129031083 -tol_abs_defl 1.0e-6
vinit
--- /dev/null
+puts "==========================================================="
+puts "0032557: Modeling Data - Use of BRepBuilderAPI_NurbsConvert create 2d p-curves with gaps"
+puts "==========================================================="
+puts ""
+
+restore [locate_data_file bug32557.brep] f
+
+nurbsconvert bf f
+checkmaxtol bf -ref 1.1e-7
+