DiscussionsIssue archiveOCCT:Modeling Data

Archived issue #0025649

crvtpoints command return wrong deflection in output.

Open CASCADEOCCT:Modeling Dataclosed15 public notes

Search issues

Description

This bug was founded in scope of CR25489.

Wrong deflection computation caused by two facts:

1) Usage of ExtremaCC, which compute only minimum, but we need to get maximum.
2) Solving two-dimensional task, on which term "maximum", not well-defined.

It is necessary to change deflection computation as follows:
Solve one-dimensional optimization task, with the same parameter on first and second curves. Search maximum 3d distance.

This approach is not good.

See note 50478 by IFV

Steps to reproduce

Same for CR25489.

Public activity

15 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Tue Dec 23 10:21:23 2014 +0300

    0025649: crvtpoints command return wrong deflection in output.
    
    Deflection computation algorithm changed to PSO+NewtonMinimum.
02Commenter 2
Dear abv,
Please check current state of branch CR25649.
03Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
04Commenter 4
In function ComputeDeviation, please, move sqrt out of the cycle. Call it one time just before return.
05Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
06Commenter 6
Dear msv,
Square root moved to improve performance, please check updated branch CR25649.
07Commenter 7
OK.
08Commenter 8
Dear Commenter 1,
Branch CR25649 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)

Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Debian60-64/bugs/moddata_3/bug25207.html
http://occt-tests.nnov.opencascade.com/CR25649-master-occt/Windows-32-VC10/bugs/moddata_3/bug25207.html
bugs moddata_3(013) bug25207: FAILED

Testing cases:


Testing on Linux:
occt component :
Total MEMORY difference: 367677188 / 367852280
Total CPU difference: 51144.39000000015 / 51427.550000000156
products component :
Total MEMORY difference: 112592316 / 112513828
Total CPU difference: 16439.88999999997 / 16879.77999999998

Testing on Windows:
occt component :
Total MEMORY difference: 277633612 / 277262960
Total CPU difference: 38371.75 / 37455.2498257
products component :
Total MEMORY difference: 72380008 / 71382268
Total CPU difference: 12073.90625 / 10342.656534399997

There are no differences in images found by testdiff.
09Commenter 9
Dear mkv,
"moddata_3(013) bug25207" is correct, please update this testcase to new behavior.
10Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: mkv
Date: Thu Jan 15 14:38:01 2015 +0300

    Correction of test case

11Commenter 11
Branch CR25649 is TESTED.
12Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
13Commenter 13
crvtpoints command still returns wrong deflection in output.

One of basic assumptions used for algorithm :
" ...with the same parameter on first and second curves" causes to wrong calculation of maximal deflection between curve and its chord between two consecutive points, because vector (POnCurve-POnChord) calculated for the same parameter is not perpendicular to chord.
Since maximal deflection is used in test, algorithm of deflection calculation:
F = -myCurve->Value(X(1)).SquareDistance(myPnts->Value(X(1)));
must be corrected
14Commenter 14
This issue must be closed, because problem has been fixed in issue #27108
15Commenter 15
I agree.
Dear Commenter 1, please close this bug.
No test case is needed.