MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0026641Open CASCADE[OCCT] OCCT:Visualizationpublic2015-09-04 13:572016-12-09 16:38
Reporterkgv 
Assigned Tobugmaster 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 6.9.0 
Target Version[OCCT] 7.1.0Fixed in Version[OCCT] 7.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
Attached Files

- Relationships
related to 0024291closedapn Open CASCADE Visualization - move Z-buffer trihedron presentation from TKOpenGl to TKV3d 
has duplicate 0027314closedbugmaster Open CASCADE CAD Assistant PMI - Dimension labels are not shown in perspective view 
related to 0027393newkgv Open CASCADE Visualization, TKOpenGl - use transform persistence mechanism with OpenGl_Text instead of internal matrix transformations 
related to 0027629closedbugmaster Open CASCADE Visualization - apply a correct model-world matrix to normals in fixed function pipeline with enabled zoom persistence. 
related to 0027728closedbugmaster Open CASCADE Visualization, OpenGl_Text - handle correctly object local transformation 

-  Notes
(0055220)
git (administrator)
2016-06-20 13:44

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.
(0055226)
git (administrator)
2016-06-20 14:35

Branch CR26641 has been updated forcibly by isk.

SHA-1: 23d9bbd0ebd3f022900ccd2760d5a20516f2f014
(0055228)
isk (developer)
2016-06-20 14:44

Dear Kirill,
please review the branch CR26641.
(0055270)
kgv (developer)
2016-06-20 21:11

-      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...
(0055271)
kgv (developer)
2016-06-20 21:11

Please test the patch.
(0055285)
git (administrator)
2016-06-21 11:53

Branch CR26641 has been updated forcibly by isk.

SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609
(0055286)
isk (developer)
2016-06-21 11:54

Rebase on the current master.
(0055341)
apv (tester)
2016-06-22 14:27
edited on: 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

(0055342)
apv (tester)
2016-06-22 14:31

Dear Ilya,

Branch CR26641 has been rejected due to:
- regressions/differences/improvements
- differences in images
(0055568)
git (administrator)
2016-06-29 10:18

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).
(0055585)
git (administrator)
2016-06-29 15:36

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 191d8819dadd494aebca9be6e276d6f29d0bd610
(0055632)
git (administrator)
2016-07-01 13:25

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: f506fe77928d1949047e96d79d6d755b1d205b23
(0055633)
isk (developer)
2016-07-01 13:26

Fix regressions.
(0055689)
git (administrator)
2016-07-05 13:33

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 32219dc407c969749defdb092d5430ac0317a954
(0055690)
isk (developer)
2016-07-05 13:34

Fix remarks by Kirill.
(0055691)
git (administrator)
2016-07-05 14:01

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: b80b168ebb3d175489c566b09dcd85294783dfa2
(0055692)
kgv (developer)
2016-07-05 14:15

Please test the patch.
(0055713)
mkv (tester)
2016-07-06 12:54

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
(0055714)
mkv (tester)
2016-07-06 12:54

Dear isk,
Branch CR26641_1 has been rejected due to:
- differences in images
(0055719)
git (administrator)
2016-07-06 14:28

Branch CR26641_1 has been updated forcibly by isk.

SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f
(0055720)
isk (developer)
2016-07-06 14:29

Update test case.
(0055721)
isk (developer)
2016-07-06 14:34

Changes in images are OK, please switch to tested.
(0055730)
mkv (tester)
2016-07-06 18:25

Dear BugMaster,
Branch CR26641_1 is TESTED.
(0056119)
git (administrator)
2016-07-22 10:44

Branch CR26641_1 has been deleted by inv.

SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f
(0056135)
git (administrator)
2016-07-22 10:45

Branch CR26641 has been deleted by inv.

SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609
(0056870)
git (administrator)
2016-08-19 13:52

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.
(0056872)
git (administrator)
2016-08-19 13:55

Branch CR26641 has been deleted by kgv.

SHA-1: 8686f00bedb13dec4e3959d4cbe848683a857ee2

- Related Changesets
occt: master 1d92133e
Timestamp: 2016-07-05 10:32:52
Author: 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).
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 View Revisions
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 View Revisions
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:54 kgv Relationship added parent of 0027793
2016-08-19 13:55 git Note Added: 0056872
2016-09-29 12:28 kgv Relationship added has duplicate 0027314
2016-12-09 16:30 user533 Status verified => closed
2016-12-09 16:38 user533 Fixed in Version => 7.1.0


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker