View Issue Details

IDProjectCategoryView StatusLast Update
0030153Open CASCADEOCCT:Visualizationpublic2018-09-30 18:47
ReportermnvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.1.0 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030153: Visualization, TKOpenGl - AIS_ColoredShape::SynchronizeAspects() doesn't update all aspects
DescriptionOpenGl_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 ReproduceNot required
TagsNo tags attached.
Test case numberNot needed

Activities

git

2018-09-24 12:40

administrator   ~0079355

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.

kgv

2018-09-24 12:53

developer   ~0079358

+  //! 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.

git

2018-09-24 17:18

administrator   ~0079369

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.

git

2018-09-25 14:07

administrator   ~0079390

Branch CR30153_1 has been updated forcibly by mnv.

SHA-1: 0b9ed5ad78af0447c0b277c855f947fdcd52ca0f

git

2018-09-25 15:10

administrator   ~0079393

Branch CR30153_1 has been updated forcibly by mnv.

SHA-1: b379bb28bc9f930b0ff813393c11ee579e5f3818

mnv

2018-09-25 17:09

developer   ~0079400

Patch is ready for review.
http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR30153-master-MNV/view/ALL/

git

2018-09-25 18:32

administrator   ~0079401

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.

kgv

2018-09-25 19:50

developer   ~0079404

Please take the patch.

bugmaster

2018-09-26 12:14

administrator   ~0079408

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

git

2018-09-30 18:47

administrator   ~0079507

Branch CR30153_2 has been deleted by inv.

SHA-1: 7b840121f09213133cf7b5863bf0338960bf2d8d

git

2018-09-30 18:47

administrator   ~0079508

Branch CR30153_1 has been deleted by inv.

SHA-1: b379bb28bc9f930b0ff813393c11ee579e5f3818

git

2018-09-30 18:47

administrator   ~0079509

Branch CR30153 has been deleted by inv.

SHA-1: e86d161db03d23240b8225cf21beaaca243e4b78

Related Changesets

occt: master eaac0866

2018-09-24 08:53:12

mnv


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

Issue History

Date Modified Username Field Change
2018-09-21 12:43 mnv New Issue
2018-09-21 12:43 mnv Assigned To => kgv
2018-09-21 12:44 mnv Assigned To kgv => mnv
2018-09-21 12:44 mnv 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 mnv Note Added: 0079400
2018-09-25 17:09 mnv Assigned To mnv => kgv
2018-09-25 17:09 mnv Status assigned => resolved
2018-09-25 17:09 mnv 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