View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0024706 | Open CASCADE | OCCT:Modeling Algorithms | public | 2014-03-09 10:26 | 2014-05-05 13:38 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Target Version | 6.7.1 | Fixed in Version | 6.7.1 | ||
Summary | 0024706: Solids produced by BOP do not have flag Closed set in shells | ||||
Description | A finite solid is valid only if it is based on topologically closed shells. In OCCT shape (TopoDS_Shape) there is a flag Closed which allows to mark a shell as closed one. This flag can be used by algorithms that need to check closure of the shell, without running topological analysis. For instance, it is used in 3d viewer for activation of back-face culling on a solid objects, see 0024521. OCCT algorithms that construct a new solid should set this flag properly. The algorithms like BRepPrimAPI_MakeBox do that: Draw[83]> box b 10 10 10 Draw[84]> expl b sh b_1 Draw[85]> whatis b_1 b_1 is a shape SHELL FORWARD Modified Orientable Closed However, the Boolean operation algorithms do not set this flag properly: Draw[86]> psph s 2 Draw[87]> bcut r b s Draw[88]> expl r sh r_1 Draw[89]> whatis r_1 r_1 is a shape SHELL FORWARD Modified Orientable This should be fixed. The observed effect of this is presence of visual artifacts at the back side of the sharp edges when faces are oriented mostly orthogonal to the screen, due to visibility of back faces which should be culled in a good solid. In the example above, display the shapes r and b in shaded mode and then rotate to see the difference: Draw[]> ttranslate r 10 10 10 Draw[]> vsetdispmode 1 Draw[]> vdisplay b r Draw[]> vfit Note that old Boolean operations (e.g. command "cut") do set the Closed flag on shell properly. Moreover, command "sweep" even sets this flag on solid. Perhaps BRepCheck should be improved to check this and other similar flags and either report or set them as appropriate. | ||||
Additional information and documentation updates | Flag CLOSED is set for closed shells created during perform of Boolean Operation. | ||||
Tags | No tags attached. | ||||
Test case number | bugs modalg_5(010) bug24706 | ||||
|
Git branch CR24706 is ready to be reviewed. |
|
Reviewed. |
|
Dear BugMaster, Branch CR24706 (and products from GIT master) was compiled on Linux and Windows platforms and tested. SHA-1: 92f711a205d187dbba845e02c17889fe5a30272b Number of compiler warnings: occt component : Linux: 30 (30 on master) Windows: 0 (0 on master) products component : Linux: 12 (12 on master) Windows: 2 (2 on master) Regressions/Differences: No regressions/differences Testing cases: http://occt-tests/CR24706-master-occt/Debian60-64/bugs/modalg_5/bug24706.html http://occt-tests/CR24706-master-occt/Windows-32-VC9/bugs/modalg_5/bug24706.html bugs modalg_5(010) bug24706: OK Testing on Linux: Total MEMORY difference: 386395792 / 386276008 Total CPU difference: 45278.14000000043 / 48827.5 Testing on Windows: Total MEMORY difference: 431116624 / 430943812 Total CPU difference: 32909.640625 / 35761.78125 There are not differences in images found by testdiff. http://occt-tests/CR24706-master-occt/Debian60-64/diff-Debian60-64.html http://occt-tests/CR24706-master-occt/Windows-32-VC9/diff-Windows-32-VC9.html IMAGE bugs modalg_2 bug578_2: bug578_2_Driver1_Viewer1_View1.png differs IMAGE bugs modalg_2 bug23: bug23004_Driver1_Viewer1_View1.png differs IMAGE bugs modalg_2 bug578_1: bug578_1_Driver1_Viewer1_View1.png differs IMAGE bugs modalg_2 bug23004: bug23004_Driver1_Viewer1_View1.png differs IMAGE bugs moddata_1 bug22761: bug22761_Driver1_Viewer1_View1.png differs |
|
Mikhail, please comment on this fragment of test script -- why you check the same twice? set info_1 [whatis r_1] if { [regexp {Closed} ${info_1}] } { puts "OK : Flag CLOSED is set for closed shells created during perform of Boolean Operation" } else { puts "Faulty : Flag CLOSED is not set for closed shells created during perform of Boolean Operation" } set info_2 [whatis r_1] if { [regexp {Closed} ${info_2}] } { puts "OK : Flag CLOSED is set for closed shells created during perform of Boolean Operation" } else { puts "Faulty : Flag CLOSED is not set for closed shells created during perform of Boolean Operation" } And please use word "Error" to indicate error, not "Faulty" -- being adjective, "faulty" needs a subject to make a meaningful phrase |
|
Mikhail, please take care of what you write: what is the meaning of the phrase "There are not differences in images found by testdiff"? I would expect to see here "There are differences in images found by testdiff", as there ARE differences. When you want to say that there are NO differences, write "There are no differences in images found by testdiff" ("no" instead of "not"). The differences in shaded images are as expected (less artifacts near edges, more gaps on invalid shapes). Regarding differences on wireframe models, I guess these are instabilities -- please confirm. |
|
Dear abv, 1. Test case bugs/modalg_5(010)/bug24706 was corrected. 2. Shaded image ot test case bugs/moddata_1(011)/bug22761 is no stable. 3. Shaded images ot test cases bugs modalg_2(007) bug578_1, bug578_2, bug23004 are stable bad. |
|
1. Message in first test is still incorrect: the shape being tested (b_1) is not result of Boolean Operation but made by "box" command 2. and 3. are as expected |
|
Dear abv, 1. Test case bugs/modalg_5(010)/bug24706 was corrected. 2. OK, branch CR24706 is TESTED. |
occt: master df80c6dd 2014-03-20 10:09:47
Committer: bugmaster Details Diff |
0024706: Solids produced by BOP do not have flag Closed set in shells Flag CLOSED is set for closed shells created during perform of Boolean Operation. Test cases for issue CR24706 |
Affected Issues 0024706 |
|
mod - src/BOPAlgo/BOPAlgo_ShellSplitter.cxx | Diff File | ||
add - tests/bugs/modalg_5/bug24706 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-03-09 10:26 |
|
New Issue | |
2014-03-09 10:26 |
|
Assigned To | => ifv |
2014-03-09 10:26 |
|
Relationship added | related to 0024521 |
2014-03-11 10:51 |
|
Assigned To | ifv => pkv |
2014-03-11 10:51 |
|
Status | new => assigned |
2014-03-12 13:38 |
|
Assigned To | pkv => emv |
2014-03-14 13:44 |
|
Note Added: 0028281 | |
2014-03-14 13:44 |
|
Assigned To | emv => pkv |
2014-03-14 13:44 |
|
Status | assigned => resolved |
2014-03-14 13:44 |
|
Additional Information Updated | |
2014-03-14 14:59 |
|
Note Added: 0028284 | |
2014-03-14 14:59 |
|
Assigned To | pkv => mkv |
2014-03-14 14:59 |
|
Status | resolved => reviewed |
2014-03-18 18:30 |
|
Note Added: 0028330 | |
2014-03-18 18:31 |
|
Test case number | => bugs modalg_5(010) bug24706 |
2014-03-18 18:31 |
|
Assigned To | mkv => emv |
2014-03-18 18:31 |
|
Status | reviewed => feedback |
2014-03-18 20:04 |
|
Note Added: 0028335 | |
2014-03-19 09:01 |
|
Assigned To | emv => mkv |
2014-03-19 09:06 |
|
Note Added: 0028341 | |
2014-03-19 15:58 |
|
Note Added: 0028358 | |
2014-03-19 15:58 |
|
Assigned To | mkv => abv |
2014-03-19 16:08 |
|
Note Added: 0028360 | |
2014-03-19 16:08 |
|
Status | feedback => tested |
2014-03-19 16:08 |
|
Assigned To | abv => mkv |
2014-03-20 11:51 |
|
Note Added: 0028385 | |
2014-03-20 11:53 |
|
Assigned To | mkv => bugmaster |
2014-03-21 16:18 | bugmaster | Changeset attached | => occt master df80c6dd |
2014-03-21 16:18 | bugmaster | Status | tested => verified |
2014-03-21 16:18 | bugmaster | Resolution | open => fixed |
2014-05-05 13:33 |
|
Status | verified => closed |
2014-05-05 13:38 |
|
Fixed in Version | => 6.7.1 |