View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0030153 | Open CASCADE | OCCT:Visualization | public | 2018-09-21 12:43 | 2018-09-30 18:47 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.1.0 | ||||
Target Version | 7.4.0 | Fixed in Version | 7.4.0 | ||
Summary | 0030153: Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects | ||||
Description | OpenGl_Group::SetGroupPrimitivesAspect method not work properly in some cases, because part of aspect fields is cached and updated only for the whole group. But in some cases is needed to update aspect fields for every group members. | ||||
Steps To Reproduce | Not required | ||||
Tags | No tags attached. | ||||
Test case number | Not needed | ||||
|
Branch CR30153 has been created by mnv. SHA-1: e86d161db03d23240b8225cf21beaaca243e4b78 Detailed log of new commits: Author: mnv Date: Mon Sep 24 11:53:12 2018 +0300 0030153: Visualization - In some cases Graphic3d_Aspect not applied for models which contain many groups Added new virtual method OpenGl_Element::UpdateParameters(). This method is needed for updating aspects for all OpenGl group members. Added new virtual method Graphic3d_Group::UpdateAspects(). This method is overriden in OpenGl_Group and implement logic for updating presentation aspects after their modification. |
|
+ //! Update presentation aspects after their modification. + Standard_EXPORT virtual void UpdateAspects() Standard_OVERRIDE; It would be better calling method in the same way as where it is actually used - e.g. AIS_InteractiveObject::SynchronizeAspects(). + //! Update parameters of the drawable elements. + virtual void UpdateParameters() = 0; It doesn't look reasonable forcing every OpenGl_Element implementation defining this method. + OpenGl_ElementNode* aNode = myFirst; + while (aNode != NULL) + { for(;;) loop syntax is preferable. @@ -101,6 +116,7 @@ void OpenGl_Group::SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d { myAspectLine->SetAspect (theAspect); } + updateGroupElementNodes(); These updateGroupElementNodes() in Set**Aspect() look unrelated and redundant. |
|
Branch CR30153_1 has been created by mnv. SHA-1: fc117be7e5065b14f4580e431f75260c39f15e82 Detailed log of new commits: Author: mnv Date: Mon Sep 24 11:53:12 2018 +0300 0030153: Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects Added new virtual method OpenGl_Element::UpdateParameters(). This method is needed for updating aspects for all OpenGl group members. Added new virtual method Graphic3d_Group::SynchronizeAspects(). This method is overriden in OpenGl_Group and implement logic for updating presentation aspects after their modification. |
|
Branch CR30153_1 has been updated forcibly by mnv. SHA-1: 0b9ed5ad78af0447c0b277c855f947fdcd52ca0f |
|
Branch CR30153_1 has been updated forcibly by mnv. SHA-1: b379bb28bc9f930b0ff813393c11ee579e5f3818 |
|
Patch is ready for review. http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR30153-master-MNV/view/ALL/ |
|
Branch CR30153_2 has been created by kgv. SHA-1: 7b840121f09213133cf7b5863bf0338960bf2d8d Detailed log of new commits: Author: mnv Date: Mon Sep 24 11:53:12 2018 +0300 0030153: Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects AIS_InteractiveObject::SynchronizeAspects() now propagates event to OpenGl_Group::SynchronizeAspects() which properly handles all aspects defined within the group. |
|
Please take the patch. |
|
Combination - OCCT branch : CR30153_1 SHA - b379bb28bc9f930b0ff813393c11ee579e5f3818 Products branch : master SHA - f9065a267b8d853b9b62de5a81af9e9e51bc8d26 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: 17202.059999999743 / 17379.439999999933 [-1.02%] Products Total CPU difference: 7450.570000000066 / 7467.690000000077 [-0.23%] Windows-64-VC14: OCCT Total CPU difference: 17412.784819698452 / 17536.33761169853 [-0.70%] Products Total CPU difference: 8346.287501499997 / 8382.276932199968 [-0.43%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30153_2 has been deleted by inv. SHA-1: 7b840121f09213133cf7b5863bf0338960bf2d8d |
|
Branch CR30153_1 has been deleted by inv. SHA-1: b379bb28bc9f930b0ff813393c11ee579e5f3818 |
|
Branch CR30153 has been deleted by inv. SHA-1: e86d161db03d23240b8225cf21beaaca243e4b78 |
occt: master eaac0866 2018-09-24 08:53:12
Committer: bugmaster Details Diff |
0030153: Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects AIS_InteractiveObject::SynchronizeAspects() now propagates event to OpenGl_Group::SynchronizeAspects() which properly handles all aspects defined within the group. |
Affected Issues 0030153 |
|
mod - src/AIS/AIS_InteractiveObject.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Group.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_AspectFace.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_AspectLine.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_AspectMarker.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_AspectText.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Element.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Group.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Group.hxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-09-21 12:43 |
|
New Issue | |
2018-09-21 12:43 |
|
Assigned To | => kgv |
2018-09-21 12:44 |
|
Assigned To | kgv => mnv |
2018-09-21 12:44 |
|
Status | new => assigned |
2018-09-24 12:40 | git | Note Added: 0079355 | |
2018-09-24 12:44 | kgv | Summary | Visualization - In some cases Graphic3d_Aspect not applied for models which contain many groups => Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects |
2018-09-24 12:53 | kgv | Note Added: 0079358 | |
2018-09-24 17:18 | git | Note Added: 0079369 | |
2018-09-25 14:07 | git | Note Added: 0079390 | |
2018-09-25 15:10 | git | Note Added: 0079393 | |
2018-09-25 17:09 |
|
Note Added: 0079400 | |
2018-09-25 17:09 |
|
Assigned To | mnv => kgv |
2018-09-25 17:09 |
|
Status | assigned => resolved |
2018-09-25 17:09 |
|
Steps to Reproduce Updated | |
2018-09-25 18:32 | git | Note Added: 0079401 | |
2018-09-25 19:50 | kgv | Note Added: 0079404 | |
2018-09-25 19:50 | kgv | Assigned To | kgv => bugmaster |
2018-09-25 19:50 | kgv | Status | resolved => reviewed |
2018-09-25 19:52 | kgv | Product Version | => 7.1.0 |
2018-09-26 12:11 | bugmaster | Test case number | => Not needed |
2018-09-26 12:14 | bugmaster | Note Added: 0079408 | |
2018-09-26 12:14 | bugmaster | Status | reviewed => tested |
2018-09-30 18:26 | bugmaster | Changeset attached | => occt master eaac0866 |
2018-09-30 18:26 | bugmaster | Status | tested => verified |
2018-09-30 18:26 | bugmaster | Resolution | open => fixed |
2018-09-30 18:47 | git | Note Added: 0079507 | |
2018-09-30 18:47 | git | Note Added: 0079508 | |
2018-09-30 18:47 | git | Note Added: 0079509 |