View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0031323 | Open CASCADE | OCCT:Application Framework | public | 2020-01-28 11:18 | 2020-12-02 17:12 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.5.0 | Fixed in Version | 7.5.0 | ||
Summary | 0031323: OCAF, TObj - TObj_OcafObjectIterator does not go recursively to children if type argument is used | ||||
Description | If TObj_OcafObjectIterator is used on a hierarchy of objects in recursive mode with specific type of objects to be found, it does actually recursive, so children of 2nd and deeper levels cannot be found. This seems to be due to use of myIterator.NextBrother() instead of Next() in TObj_OcafObjectIterator::MakeStep() in case if current label contains an object. | ||||
Steps To Reproduce | bugs caf bug31323 | ||||
Tags | No tags attached. | ||||
Test case number | bugs/caf/bug31323 | ||||
|
As I understand, the described behavior correctly corresponds to the comment of method TObj_Object::GetChildren (where it is mainly used): //! The default implementation search for children on 1 sublevel //! of the children sub label So, it searches recursively, but when the child is found, it does not get its subs. Perhaps, it is also done for performance reasons. Do you use TObj_OcafObjectIterator separately or inside of OCCT method? May we consider to add another flag to this iterator to make search of all-levels sub-objects? |
|
I was using that class in the application code, with a purpose of iterating over all objects in the model (including nested objects). I agree that one more flag can be added, yet it should be very well documented to allow the user to understand what is the difference between two levels of recursion. |
|
Branch CR31323 has been created by mpv. SHA-1: 6d2c6d64a5d7877bec9c1b936fc6da1877abc69c Detailed log of new commits: Author: mpv Date: Mon Sep 14 16:49:38 2020 +0300 0031323: OCAF, TObj - TObj_OcafObjectIterator does not go recursively to children if type argument is used Added theAllSubChildren flag to the TObj_OcafObjectIterator to iterate all sub-children. By default it still iterates only the first level of children. |
|
Resolved in CR31323. Flag theAllSubChildren is added to the iterator constructor. http://jenkins-test-12.nnov.opencascade.com/view/CR31323-master-MPV/view/COMPARE/ |
|
Branch CR31323 has been updated forcibly by abv. SHA-1: 474ebf8633f07469cbfb1085611ed2ad7d28c8ac |
|
Branch CR31323 has been updated forcibly by abv. SHA-1: 2ab3e09039f2117957f845ffeb7ca16aa3602932 |
|
Reviewed with minor amendments, please integrate: - OCCT: branch CR31323 - Products: nothing Jenkins tests are OK, see job CR31323-master-MPV |
|
Combination - OCCT branch : IR-2020-09-25 master SHA - d7bc5c833ec064bd103ebbff2882146ad5a7e7de a206de37fbfa0bf71bd534ae47192bbec23b8522 Products branch : IR-2020-09-25 SHA - a8c0c30ba368a2503bbdf9800228ace93993dfff 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: Debian80-64: OCCT Total CPU difference: 18039.260000000093 / 17637.5100000001 [+2.28%] Products Total CPU difference: 12124.200000000114 / 12092.06000000011 [+0.27%] Windows-64-VC14: OCCT Total CPU difference: 19753.9375 / 18982.296875 [+4.07%] Products Total CPU difference: 13527.921875 / 13315.40625 [+1.60%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR31323 has been deleted by inv. SHA-1: 2ab3e09039f2117957f845ffeb7ca16aa3602932 |
occt: master 689dc3b1 2020-09-14 13:49:38
Committer: bugmaster Details Diff |
0031323: OCAF, TObj - TObj_OcafObjectIterator does not go recursively to children if type argument is used Added theAllSubChildren flag to the TObj_OcafObjectIterator to iterate all sub-children. By default it still iterates only the first level of children. |
Affected Issues 0031323 |
|
mod - src/TObj/TObj_OcafObjectIterator.cxx | Diff File | ||
mod - src/TObj/TObj_OcafObjectIterator.hxx | Diff File | ||
mod - src/TObjDRAW/TObjDRAW.cxx | Diff File | ||
add - tests/bugs/caf/bug31323 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-01-28 11:18 |
|
New Issue | |
2020-01-28 11:18 |
|
Assigned To | => mpv |
2020-09-01 15:40 |
|
Note Added: 0093821 | |
2020-09-01 15:40 |
|
Assigned To | mpv => abv |
2020-09-01 15:40 |
|
Status | new => feedback |
2020-09-10 18:19 |
|
Note Added: 0094406 | |
2020-09-10 18:19 |
|
Assigned To | abv => mpv |
2020-09-10 18:19 |
|
Status | feedback => assigned |
2020-09-11 15:32 |
|
Target Version | 7.5.0 => 7.6.0 |
2020-09-14 16:46 | git | Note Added: 0094756 | |
2020-09-15 10:38 |
|
Note Added: 0094807 | |
2020-09-15 10:38 |
|
Assigned To | mpv => abv |
2020-09-15 10:38 |
|
Status | assigned => resolved |
2020-09-15 10:38 |
|
Steps to Reproduce Updated | |
2020-09-15 11:50 |
|
Target Version | 7.6.0 => 7.5.0 |
2020-09-22 22:16 | git | Note Added: 0095222 | |
2020-09-23 06:28 | git | Note Added: 0095223 | |
2020-09-23 06:31 |
|
Note Added: 0095224 | |
2020-09-23 06:31 |
|
Assigned To | abv => bugmaster |
2020-09-23 06:31 |
|
Status | resolved => reviewed |
2020-09-27 12:13 | bugmaster | Test case number | => bugs/caf/bug31323 |
2020-09-27 14:11 | bugmaster | Note Added: 0095364 | |
2020-09-27 14:11 | bugmaster | Status | reviewed => tested |
2020-09-27 14:13 | bugmaster | Changeset attached | => occt master 689dc3b1 |
2020-09-27 14:13 | bugmaster | Status | tested => verified |
2020-09-27 14:13 | bugmaster | Resolution | open => fixed |
2020-09-27 14:29 | git | Note Added: 0095388 | |
2020-12-02 16:41 |
|
Fixed in Version | => 7.5.0 |
2020-12-02 17:12 |
|
Status | verified => closed |