View Issue Details

IDProjectCategoryView StatusLast Update
0002614CommunityOCCT:Modeling Algorithmspublic2006-06-29 09:15
Reporterbugmaster Assigned Toenk 
PrioritynormalSeveritytrivial 
Status closedResolutionunable to reproduce 
OSAll 
Summary0002614: Geom_BSplineSurface::LocateU, V has parameter boundary probmem
DescriptionBug from Open CASCACADE community
Registered by Gen Uemura

http://www.opencascade.org/forumorg/bug.php?bug_id=126&f=8

If calling BSplineSurface::LocateU with parameter V = "Knots (Knots.Length()) +
ParametricTolerance",then I got a "OutOfRange" exception at line 1462
 > while ( Abs( Knots(I1+1) - NewU) <= Abs(ParametricTolerance)) I1++;
In that case, these "if" statement in BSplineSurface::LocateU is not true.
ParametricTolerance = 5.00000000000000e-010
NewU - ULast = 5.0000004137019e-010
> else if (Abs (NewU - ULast) <= Abs(ParametricTolerance)) {
ULast + ParametricTolerance = 3.0000000005000
NewU = 3.0000000005000
 > else if (NewU > ULast + Abs(ParametricTolerance)) {

I think it's only a error limit of double precision floating point.


Here is a part of test code.
---------------------------------------------------------------
#define PosTol Precision::PConfusion()/2
...
VKnots.SetValue(1, 0.0);
VKnots.SetValue(2, 1.0);
VKnots.SetValue(3, 2.0);
VKnots.SetValue(4, 3.0);

Handle(Geom_BSplineSurface) surface = new Geom_BSplineSurface(
Poles, UKnots, VKnots, UMults, VMults, 4, 4);

Standard_Integer I1, I2;
surface->LocateV(3.0 , PosTol, I1, I2); // OK
surface->LocateV(3.0 + PosTol , PosTol, I1, I2); // NG
surface->LocateV(3.1 , PosTol, I1, I2); // OK
...
---------------------------------------------------------------
Environment is
Windows2000
Microsoft Visual C++6.0 SP5
Pentium4 2.0GHz
TagsNo tags attached.
Test case number

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2003-05-12 19:23 bugmaster Assigned To bugmaster => enk
2003-05-12 19:23 bugmaster Status new => assigned
2003-05-12 19:23 bugmaster Summary => Geom_BSplineSurface::LocateU, V has parameter boundary probmem
2003-05-15 21:15 bugmaster Status assigned => closed
2003-05-15 21:15 bugmaster Resolution @0@ => unable to reproduce
2004-12-30 11:29 bugmaster Customer =>
2011-08-02 11:31 bugmaster Category OCCT:MOA => OCCT:Modeling Algorithms