View Issue Details

IDProjectCategoryView StatusLast Update
0026641Open CASCADEOCCT:Visualizationpublic2016-12-09 16:38
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.9.0 
Target Version7.1.0Fixed in Version7.1.0 
Summary0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection
DescriptionCurrent implementation of transformation persistence supports only orthogonal projection, causing serious artifacts within perspective projection.
Steps To Reproducebugs vis bug26641
TagsNo tags attached.
Test case numberbugs vis bug26641

Relationships

related to 0024291 closedapn Open CASCADE Visualization - move Z-buffer trihedron presentation from TKOpenGl to TKV3d 
related to 0027393 closedbugmaster Open CASCADE Visualization, TKOpenGl - use transform persistence mechanism with OpenGl_Text instead of internal matrix transformations 
related to 0027629 closedbugmaster Open CASCADE Visualization - apply a correct model-world matrix to normals in fixed function pipeline with enabled zoom persistence. 
related to 0027728 closedbugmaster Open CASCADE Visualization, OpenGl_Text - handle correctly object local transformation 

Activities

git

2016-06-20 13:44

administrator   ~0055220

Branch CR26641 has been created by isk.

SHA-1: 512f2636e3f5c9a5c4eba0823131eb19818e828a


Detailed log of new commits:

Author: isk
Date: Mon Jun 20 13:43:16 2016 +0300

    0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection.
    Add a new method AIS_InteractiveContext::SetTransformPersistence, which sets transform persistence to object and selection.
    Add a new method SelectMgr_SelectionManager::UpdateSelection, which re-adds selectable object in BVHs in all viewer selectors.
    Add a new method SelectMgr_ViewerSelector::MoveSelectableObject, which moves object from set of not transform persistence objects to set of transform persistence objects (or vice versa).
    Add a new method Graphic3d_TransformUtils::Convert, which converts gp_Trsf to Graphic3d_Mat4.
    Remove the method PrsMgr_PresentableObject::SetTransformPersistence(flag, point).
    The methods Graphic3d_TransformPersistence::Apply/Compute take additional parameter - model-world matrix.

git

2016-06-20 14:35

administrator   ~0055226

Branch CR26641 has been updated forcibly by isk.

SHA-1: 23d9bbd0ebd3f022900ccd2760d5a20516f2f014

isk

2016-06-20 14:44

developer   ~0055228

Dear Kirill,
please review the branch CR26641.

kgv

2016-06-20 21:11

developer   ~0055270

-      aStructure->TransformPersistence().Apply (aProjectionMat, aWorldViewMat, aWinWidth, aWinHeight, aBox);
+      const Graphic3d_Mat4d aModelViewMat;
+      aStructure->CStructure()->Transformation.Convert<Standard_Real> (aModelViewMat);
+      aStructure->TransformPersistence().Apply (aProjectionMat, aWorldViewMat, aModelViewMat, aWinWidth, aWinHeight, aBox);

in other places aModelViewMat is called aModeWorldMat.

+    for (TColStd_MapIteratorOfMapOfTransient aSelectorsIter (mySelectors); aSelectorsIter.More(); aSelectorsIter.Next())
+    {
+      Handle(SelectMgr_ViewerSelector) aSelector = Handle(SelectMgr_ViewerSelector)::DownCast (aSelectorsIter.Key());

probably it is a time to replace TColStd_MapIteratorOfMapOfTransient mySelectors with properly typed map in dedicated patch...

kgv

2016-06-20 21:11

developer   ~0055271

Please test the patch.

git

2016-06-21 11:53

administrator   ~0055285

Branch CR26641 has been updated forcibly by isk.

SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609

isk

2016-06-21 11:54

developer   ~0055286

Rebase on the current master.

apv

2016-06-22 14:27

tester   ~0055341

Last edited: 2016-06-22 14:29

Dear BugMaster,

Branch CR26641 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 68
   Windows: 0
   MacOS: 1122

Regressions/Differences:
http://occt-tests/CR26641-master-OCCT/Debian70-64/summary.html
http://occt-tests/CR26641-master-OCCT/Windows-64-VC10/summary.html
bugs vis bug26344, bug26719_1, bug27536

Testing cases:
bugs vis bug26641 - OK
http://occt-tests/CR26641-master-OCCT/Debian70-64/bugs/vis/bug26641.html
http://occt-tests/CR26641-master-OCCT/Windows-64-VC10/bugs/vis/bug26641.html

Testing on Linux:
Total MEMORY difference: 89349891 / 89127359 [+0.25%]
Total CPU difference: 19384.919999999955 / 19457.53999999997 [-0.37%]

Testing on Windows:
Total MEMORY difference: 55887290 / 55898241 [-0.02%]
Total CPU difference: 18038.036827698834 / 18535.290015198952 [-2.68%]

There are differences in images found by testdiff:
http://occt-tests/CR26641-master-OCCT/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR26641-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10.html
v3d manipulator rotate
v3d manipulator translate
bugs vis bug27359
bugs vis bug26719_2
bugs vis bug23120

apv

2016-06-22 14:31

tester   ~0055342

Dear Ilya,

Branch CR26641 has been rejected due to:
- regressions/differences/improvements
- differences in images

git

2016-06-29 10:18

administrator   ~0055568

Branch CR26641_1 has been created by isk.

SHA-1: e9e4f0c09950cd479be4567f2322367a6abc2264


Detailed log of new commits:

Author: isk
Date: Mon Jun 20 14:31:35 2016 +0300

    0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection.
    Add a new method AIS_InteractiveContext::SetTransformPersistence, which sets transform persistence to object and selection.
    Add a new method SelectMgr_SelectionManager::UpdateSelection, which re-adds selectable object in BVHs in all viewer selectors.
    Add a new method SelectMgr_ViewerSelector::MoveSelectableObject, which moves object from set of not transform persistence objects to set of transform persistence objects (or vice versa).
    Add a new method Graphic3d_TransformUtils::Convert, which converts gp_Trsf to Graphic3d_Mat4.
    Remove the method PrsMgr_PresentableObject::SetTransformPersistence(flag, point).

git

2016-06-29 15:36

administrator   ~0055585

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 191d8819dadd494aebca9be6e276d6f29d0bd610

git

2016-07-01 13:25

administrator   ~0055632

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: f506fe77928d1949047e96d79d6d755b1d205b23

isk

2016-07-01 13:26

developer   ~0055633

Fix regressions.

git

2016-07-05 13:33

administrator   ~0055689

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 32219dc407c969749defdb092d5430ac0317a954

isk

2016-07-05 13:34

developer   ~0055690

Fix remarks by Kirill.

git

2016-07-05 14:01

administrator   ~0055691

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: b80b168ebb3d175489c566b09dcd85294783dfa2

kgv

2016-07-05 14:15

developer   ~0055692

Please test the patch.

mkv

2016-07-06 12:54

tester   ~0055713

Dear BugMaster,
Branch CR26641_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: b80b168ebb3d175489c566b09dcd85294783dfa2

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 64 (64 on master)
Windows: 0 (0 on master)
MacOS : 1166

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR26641_1-master-OCCT/Debian70-64/bugs/vis/bug26641.html
http://occt-tests/CR26641_1-master-OCCT/Debian70-64/bugs/vis/bug26641.html
bugs vis bug26641: OK

Testing on Linux:
occt component :
Total MEMORY difference: 90396515 / 89891648 [+0.56%]
Total CPU difference: 19342.120000000017 / 19415.189999999995 [-0.38%]
products component :
Total MEMORY difference: 30011754 / 30103773 [-0.31%]
Total CPU difference: 5084.979999999972 / 5081.419999999974 [+0.07%]

Testing on Windows:
occt component :
Total MEMORY difference: 57387031 / 57398737 [-0.02%]
Total CPU difference: 18008.131435998737 / 17924.54610019893 [+0.47%]
products component :
Total MEMORY difference: 21243517 / 21207560 [+0.17%]
Total CPU difference: 4799.417565299952 / 4917.993925399947 [-2.41%]

There are following differences in images found by testdiff.
http://occt-tests/CR26641_1-master-OCCT/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR26641_1-master-OCCT/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE bugs vis bug26344: bug26344.png differs
IMAGE bugs vis bug23120: bug23120.png differs

mkv

2016-07-06 12:54

tester   ~0055714

Dear isk,
Branch CR26641_1 has been rejected due to:
- differences in images

git

2016-07-06 14:28

administrator   ~0055719

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f

isk

2016-07-06 14:29

developer   ~0055720

Update test case.

isk

2016-07-06 14:34

developer   ~0055721

Changes in images are OK, please switch to tested.

mkv

2016-07-06 18:25

tester   ~0055730

Dear BugMaster,
Branch CR26641_1 is TESTED.

git

2016-07-22 10:44

administrator   ~0056119

Branch CR26641_1 has been deleted by inv.

SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f

git

2016-07-22 10:45

administrator   ~0056135

Branch CR26641 has been deleted by inv.

SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609

git

2016-08-19 13:52

administrator   ~0056870

Branch CR26641 has been created by kgv.

SHA-1: 8686f00bedb13dec4e3959d4cbe848683a857ee2


Detailed log of new commits:

Author: kgv
Date: Fri Aug 19 13:52:42 2016 +0300

    0027793: Visualization - object drifts at zoom within Graphic3d_TMF_TriedronPers applied
    
    Regressive change in Graphic3d_TransformPers::Apply() has been reverted until proper fix.

git

2016-08-19 13:55

administrator   ~0056872

Branch CR26641 has been deleted by kgv.

SHA-1: 8686f00bedb13dec4e3959d4cbe848683a857ee2

Related Changesets

occt: master 1d92133e

2016-07-05 10:32:52

isk


Committer: bugmaster Details Diff
0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection.
Add a new method AIS_InteractiveContext::SetTransformPersistence, which sets transform persistence to object and selection.
Add a new method SelectMgr_SelectionManager::UpdateSelection, which re-adds selectable object in BVHs in all viewer selectors.
Add a new method SelectMgr_ViewerSelector::MoveSelectableObject, which moves object from set of not transform persistence objects to set of transform persistence objects (or vice versa).
Add a new method Graphic3d_TransformUtils::Convert, which converts gp_Trsf to Graphic3d_Mat4.
Remove the method PrsMgr_PresentableObject::SetTransformPersistence(flag, point).
Affected Issues
0026641
mod - src/AIS/AIS_GlobalStatus.hxx Diff File
mod - src/AIS/AIS_InteractiveContext.cxx Diff File
mod - src/AIS/AIS_InteractiveContext.hxx Diff File
mod - src/Graphic3d/Graphic3d_TransformPers.hxx Diff File
mod - src/Graphic3d/Graphic3d_TransformUtils.hxx Diff File
mod - src/OpenGl/OpenGl_Layer.cxx Diff File
mod - src/OpenGl/OpenGl_Structure.cxx Diff File
mod - src/OpenGl/OpenGl_View.cxx Diff File
mod - src/PrsMgr/PrsMgr_PresentableObject.cxx Diff File
mod - src/PrsMgr/PrsMgr_PresentableObject.hxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.hxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.hxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
mod - tests/bugs/vis/bug26344 Diff File
add - tests/bugs/vis/bug26641 Diff File

Issue History

Date Modified Username Field Change
2015-09-04 13:57 kgv New Issue
2015-09-04 13:57 kgv Assigned To => kgv
2015-09-04 13:57 kgv Relationship added related to 0024291
2015-09-04 14:02 kgv Assigned To kgv => isk
2015-09-04 14:02 kgv Status new => assigned
2015-11-17 16:07 kgv Target Version 7.0.0 => 7.1.0
2016-04-15 12:53 aba Relationship added related to 0027393
2016-06-20 13:44 git Note Added: 0055220
2016-06-20 14:35 git Note Added: 0055226
2016-06-20 14:44 isk Note Added: 0055228
2016-06-20 14:44 isk Assigned To isk => kgv
2016-06-20 14:44 isk Status assigned => resolved
2016-06-20 14:44 isk Steps to Reproduce Updated
2016-06-20 21:11 kgv Note Added: 0055270
2016-06-20 21:11 kgv Note Added: 0055271
2016-06-20 21:11 kgv Assigned To kgv => bugmaster
2016-06-20 21:11 kgv Status resolved => reviewed
2016-06-21 11:43 apv Assigned To bugmaster => apv
2016-06-21 11:53 git Note Added: 0055285
2016-06-21 11:54 isk Note Added: 0055286
2016-06-22 13:25 apv Test case number => bugs vis bug26641
2016-06-22 14:27 apv Note Added: 0055341
2016-06-22 14:27 apv Assigned To apv => isk
2016-06-22 14:27 apv Status reviewed => assigned
2016-06-22 14:29 apv Note Edited: 0055341
2016-06-22 14:31 apv Note Added: 0055342
2016-06-23 13:58 isk Relationship added related to 0027629
2016-06-29 10:18 git Note Added: 0055568
2016-06-29 15:36 git Note Added: 0055585
2016-07-01 13:25 git Note Added: 0055632
2016-07-01 13:26 isk Note Added: 0055633
2016-07-05 09:36 isk Assigned To isk => kgv
2016-07-05 09:36 isk Status assigned => resolved
2016-07-05 13:33 git Note Added: 0055689
2016-07-05 13:34 isk Note Added: 0055690
2016-07-05 14:01 git Note Added: 0055691
2016-07-05 14:15 kgv Note Added: 0055692
2016-07-05 14:15 kgv Assigned To kgv => bugmaster
2016-07-05 14:15 kgv Status resolved => reviewed
2016-07-05 16:20 mkv Assigned To bugmaster => mkv
2016-07-06 12:54 mkv Note Added: 0055713
2016-07-06 12:54 mkv Note Added: 0055714
2016-07-06 12:54 mkv Assigned To mkv => isk
2016-07-06 12:54 mkv Status reviewed => feedback
2016-07-06 14:28 git Note Added: 0055719
2016-07-06 14:29 isk Note Added: 0055720
2016-07-06 14:33 isk Assigned To isk => mkv
2016-07-06 14:34 isk Note Added: 0055721
2016-07-06 18:25 mkv Note Added: 0055730
2016-07-06 18:25 mkv Assigned To mkv => bugmaster
2016-07-06 18:25 mkv Status feedback => tested
2016-07-08 11:57 bugmaster Changeset attached => occt master 1d92133e
2016-07-08 11:57 bugmaster Status tested => verified
2016-07-08 11:57 bugmaster Resolution open => fixed
2016-07-22 10:44 git Note Added: 0056119
2016-07-22 10:45 git Note Added: 0056135
2016-07-29 13:06 kgv Relationship added related to 0027728
2016-08-19 13:52 git Note Added: 0056870
2016-08-19 13:55 git Note Added: 0056872
2016-12-09 16:30 aiv Status verified => closed
2016-12-09 16:38 aiv Fixed in Version => 7.1.0