mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024472: Wrong section curves
1. Checking, if intersection curve is collapsed, is added. (file GeomInt_LineConstructor.cxx) 2. Earlier, intersection line was considered as valid if only mid-point of every interval of this line is into two intersected surfaces (with given tolerance). That's no good because after inserting of new points, old points, which is considered as valid only because they are into beginning or into end of interval (therefore, they was not checked), moved to mid of interval and became invalid. Therefore, checking for first and last points was added. (file GeomInt_LineConstructor.cxx) 3. Intersection line became valid (see bug description) after adding of new additional points into it (file IntPatch_PrmPrmIntersection.cxx). Methods for finding and adding of new points were added. (file IntWalk_PWalking_1.gxx) Some test cases were changed. Test cases for issue CR24472
This commit is contained in:
@@ -32,7 +32,8 @@ uses XY from gp,
|
||||
PntOn2S from IntSurf,
|
||||
LineOn2S from IntSurf,
|
||||
Dir from gp,
|
||||
Dir2d from gp
|
||||
Dir2d from gp,
|
||||
Pnt from gp
|
||||
|
||||
|
||||
raises OutOfRange from Standard,
|
||||
@@ -248,14 +249,36 @@ is
|
||||
is static;
|
||||
|
||||
AddAPoint ( me : in out ;
|
||||
line : in out LineOn2S from IntSurf ;
|
||||
POn2S : PntOn2S from IntSurf ) ;
|
||||
---C++: inline
|
||||
|
||||
line : in out LineOn2S from IntSurf ;
|
||||
POn2S : PntOn2S from IntSurf ) ;
|
||||
---C++: inline
|
||||
|
||||
ExtendLineInCommonZone(me: in out; theChoixIso: ConstIsoparametric from IntImp;
|
||||
theDirectionFlag: Boolean from Standard)
|
||||
returns Boolean from Standard
|
||||
is private;
|
||||
theDirectionFlag: Boolean from Standard)
|
||||
returns Boolean from Standard
|
||||
is private;
|
||||
|
||||
DistanceMinimizeByGradient( me : in out;
|
||||
theASurf1 , theASurf2 : ThePSurface ;
|
||||
theU1, theV1, theU2, theV2: out Real from Standard;
|
||||
theStep0U1V1: Real from Standard = 1.0e-6;
|
||||
theStep0U2V2: Real from Standard = 1.0e-6)
|
||||
returns Boolean from Standard
|
||||
is private;
|
||||
|
||||
DistanceMinimizeByExtrema(me : in out;
|
||||
theASurf1 : ThePSurface ;
|
||||
theP0 : Pnt from gp;
|
||||
theU0, theV0: out Real from Standard;
|
||||
theStep0U: Real from Standard = 1.0;
|
||||
theStep0V: Real from Standard = 1.0)
|
||||
returns Boolean from Standard
|
||||
is private;
|
||||
|
||||
SeekAdditionalPoints( me : in out;
|
||||
theASurf1 , theASurf2 : ThePSurface;
|
||||
theMinNbPoints : Integer from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user