Archived issue #0029586
Revolution creates solid with degenerated edges shared among faces
Description
BRepPrimAPI_MakeRevol creates the solid with degenerated edges shared among faces. But, each face should have its own degenerated edges.
The problem has been discovered while working on the issue #29580 in the test case boolean gdml_public A9.
The problem has been discovered while working on the issue #29580 in the test case boolean gdml_public A9.
Steps to reproduce
Test case "bugs modalg_7 bug29586"
Public activity
25 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: ifv
Date: Fri Mar 23 11:33:27 2018 +0300
0029586: Revolution creates solid with degenerated edges shared among faces
Substitution of degenerated edges by their copies is implemented to make edges not shared
Test case is added
[revision removed]
Detailed log of new commits:
Author: ifv
Date: Fri Mar 23 11:33:27 2018 +0300
0029586: Revolution creates solid with degenerated edges shared among faces
Substitution of degenerated edges by their copies is implemented to make edges not shared
Test case is added
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch CR29586 is ready for review
test results is CR29586-master-IFV
test results is CR29586-master-IFV
Igor, may you please add comments in the code to explain what is its purpose? In this patch I see quite a lot of new code (seemingly duplicated) but no comments. Adding just a short comment on the purpose of the code block (perhaps with reference to issue) could make a life of any developer dealing with it in the future much easier.
Please consider making the fix at the level of BRepSweep_Revol.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: ifv
Date: Fri Mar 30 17:25:41 2018 +0300
0029586: Revolution creates solid with degenerated edges shared among faces
Different copies of initial degenerated edge are used for different faces in BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
Method BRepPrimAPI_MakeRevol::Generated(...) is modified.
[revision removed]
Detailed log of new commits:
Author: ifv
Date: Fri Mar 30 17:25:41 2018 +0300
0029586: Revolution creates solid with degenerated edges shared among faces
Different copies of initial degenerated edge are used for different faces in BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
Method BRepPrimAPI_MakeRevol::Generated(...) is modified.
Branch CR29586_1 is ready for review.
Test results are CR29586-master-ifv
Test results are CR29586-master-ifv
Test results in CR29586-master-ifv are not actual, as they were got on the branch CR29586 instead of CR29586_1.
I have restarted tests with proper parameters.
I have restarted tests with proper parameters.
Remarks:
src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
- 420: aCopyE is forward edge, but anIt.Value() is a vertex got from oriented shape myShapes(iGenS, iDirS). It seems we should iterate on forwarded myShapes(iGenS, iDirS).
src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
- 420: aCopyE is forward edge, but anIt.Value() is a vertex got from oriented shape myShapes(iGenS, iDirS). It seems we should iterate on forwarded myShapes(iGenS, iDirS).
The new tests show regressions.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch CR29586 is ready for review.
Test results are on CR29586-master-IFV
Test results are on CR29586-master-IFV
Remarks:
src/BRepPrimAPI/BRepPrimAPI_MakeRevol.cxx
- 138: use const&
- 145: use method Seek() to avoid repeated search.
- 195: Instead of binding aF->aNF in a map remember substitutions directly in the new reshaper.
- 218-219: Apply() return value can be used instead of calling Value().
- 222-227: why ReplaceModified() is needed? myHist->Merge(aSubs->History()) already does the job.
- 269: why compound is added instead of filling in the result list of shape from elements of compound?
src/BRepTest/BRepTest_SweepCommands.cxx
- Please avoid creating a new command genrevol. Instead, rebase the branch on top of CR29604, and make similar to implementation in the file BRepTest_SweepCommands.cxx. Then the commands from BRepTest_HistoryCommands.cxx can be used in draw.
Please test the function Generated() in the script bug29586.
src/BRepPrimAPI/BRepPrimAPI_MakeRevol.cxx
- 138: use const&
- 145: use method Seek() to avoid repeated search.
- 195: Instead of binding aF->aNF in a map remember substitutions directly in the new reshaper.
- 218-219: Apply() return value can be used instead of calling Value().
- 222-227: why ReplaceModified() is needed? myHist->Merge(aSubs->History()) already does the job.
- 269: why compound is added instead of filling in the result list of shape from elements of compound?
src/BRepTest/BRepTest_SweepCommands.cxx
- Please avoid creating a new command genrevol. Instead, rebase the branch on top of CR29604, and make similar to implementation in the file BRepTest_SweepCommands.cxx. Then the commands from BRepTest_HistoryCommands.cxx can be used in draw.
Please test the function Generated() in the script bug29586.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
CR29586 is ready for review
Test results CR29586-master-IFV
Test results CR29586-master-IFV
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
CR29586 is updated according to remarks
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Reviewed.
Combination -
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18275.18999999992 / 18243.73999999987 [+0.17%]
Products
Total CPU difference: 7491.770000000048 / 7495.350000000049 [-0.05%]
Windows-64-VC10:
OCCT
Total CPU difference: 18023.637935398405 / 18049.78370299853 [-0.14%]
Products
Total CPU difference: 8246.244060199879 / 8209.739826199884 [+0.44%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18275.18999999992 / 18243.73999999987 [+0.17%]
Products
Total CPU difference: 7491.770000000048 / 7495.350000000049 [-0.05%]
Windows-64-VC10:
OCCT
Total CPU difference: 18023.637935398405 / 18049.78370299853 [-0.14%]
Products
Total CPU difference: 8246.244060199879 / 8209.739826199884 [+0.44%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]