nbs*= C.Degree();
Standard_Real anb = t1/t * nbs;
nbs = (Standard_Integer)anb;
- if(nbs < 4.0) nbs=4;
+ if(nbs < 4) nbs=4;
+ }
+ else if (typC == GeomAbs_Circle)
+ {
+ //Try to reach deflection = eps*R, eps = 0.01
+ const Standard_Real minR = 1.; //eps = 0.01
+ Standard_Real R = C.Circle().Radius();
+ if(R > minR)
+ {
+ Standard_Real angl = 0.283079; //2.*ACos(1. - eps);
+ Standard_Integer n = RealToInt(Abs(U1 - U0) / angl);
+ nbs = Max(n, nbs);
+ }
}
if(nbs>300)
}
//============================================================
Standard_Integer Geom2dInt_Geom2dCurveTool::NbSamples (const Adaptor2d_Curve2d& C) {
- return C.NbSamples();
+ Standard_Integer nbs = C.NbSamples();
+ GeomAbs_CurveType typC = C.GetType();
+ if (typC == GeomAbs_Circle)
+ {
+ //Try to reach deflection = eps*R, eps = 0.01
+ const Standard_Real minR = 1.; //eps = 0.01
+ Standard_Real R = C.Circle().Radius();
+ if(R > minR)
+ {
+ Standard_Real angl = 0.283079; //2.*ACos(1. - eps);
+ Standard_Integer n = RealToInt((C.LastParameter()-C.FirstParameter()) / angl);
+ nbs = Max(n, nbs);
+ }
+ }
+
+ return nbs;
}
set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 3 ( 0 ) Warnings = 944 ( 3168 ) Summary = 947 ( 3168 )
-CHECKSHAPE : Wires = 50 ( 41 ) Faces = 50 ( 46 ) Shells = 0 ( 2 ) Solids = 0 ( 0 )
+CHECKSHAPE : Wires = 50 ( 41 ) Faces = 50 ( 48 ) Shells = 0 ( 2 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 28 ( 28 ) Shell = 768 ( 30 ) Face = 3240 ( 3239 ) Summary = 29374 ( 28630 )
STATSHAPE : Solid = 28 ( 28 ) Shell = 768 ( 30 ) Face = 3240 ( 3239 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 12587 ( 12579 )
TOLERANCE : MaxTol = 15.00300076 ( 20.46526799 ) AvgTol = 0.02248945623 ( 0.03724082116 )
set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 29 ( 195 ) Summary = 29 ( 195 )
-CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 1 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
+CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 2 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 2 ( 2 ) Shell = 2 ( 2 ) Face = 372 ( 372 ) Summary = 2869 ( 2869 )
STATSHAPE : Solid = 3 ( 3 ) Shell = 3 ( 3 ) Face = 384 ( 384 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 1244 ( 1244 )
TOLERANCE : MaxTol = 0.0007170960464 ( 0.0007171032164 ) AvgTol = 1.914460687e-005 ( 2.129229514e-005 )
set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 114 ( 619 ) Summary = 114 ( 619 )
-CHECKSHAPE : Wires = 17 ( 17 ) Faces = 18 ( 19 ) Shells = 1 ( 1 ) Solids = 0 ( 0 )
+CHECKSHAPE : Wires = 17 ( 17 ) Faces = 18 ( 20 ) Shells = 1 ( 1 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 22 ( 22 ) Shell = 24 ( 24 ) Face = 1520 ( 1520 ) Summary = 11210 ( 11195 )
STATSHAPE : Solid = 22 ( 22 ) Shell = 24 ( 24 ) Face = 1520 ( 1520 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 4784 ( 4774 )
TOLERANCE : MaxTol = 7.33063502 ( 7.159520237 ) AvgTol = 0.03499829069 ( 0.03222638333 )