View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026641 | Open CASCADE | OCCT:Visualization | public | 2015-09-04 13:57 | 2016-12-09 16:38 |
Reporter | kgv | Assigned To | bugmaster | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 6.9.0 | ||||
Target Version | 7.1.0 | Fixed in Version | 7.1.0 | ||
Summary | 0026641: Visualization, TKOpenGl - handle correctly transformation persistence within perspective projection | ||||
Description | Current implementation of transformation persistence supports only orthogonal projection, causing serious artifacts within perspective projection. | ||||
Steps To Reproduce | bugs vis bug26641 | ||||
Tags | No tags attached. | ||||
Test case number | bugs vis bug26641 | ||||
related to | 0024291 | closed | apn | Open CASCADE | Visualization - move Z-buffer trihedron presentation from TKOpenGl to TKV3d |
related to | 0027393 | closed | bugmaster | Open CASCADE | Visualization, TKOpenGl - use transform persistence mechanism with OpenGl_Text instead of internal matrix transformations |
related to | 0027629 | closed | bugmaster | Open CASCADE | Visualization - apply a correct model-world matrix to normals in fixed function pipeline with enabled zoom persistence. |
related to | 0027728 | closed | bugmaster | Open CASCADE | Visualization, OpenGl_Text - handle correctly object local transformation |
|
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. |
|
Branch CR26641 has been updated forcibly by isk. SHA-1: 23d9bbd0ebd3f022900ccd2760d5a20516f2f014 |
|
Dear Kirill, please review the branch CR26641. |
|
- 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... |
|
Please test the patch. |
|
Branch CR26641 has been updated forcibly by isk. SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609 |
|
Rebase on the current master. |
|
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 |
|
Dear Ilya, Branch CR26641 has been rejected due to: - regressions/differences/improvements - differences in images |
|
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). |
|
Branch CR26641_1 has been updated forcibly by isk. SHA-1: 191d8819dadd494aebca9be6e276d6f29d0bd610 |
|
Branch CR26641_1 has been updated forcibly by isk. SHA-1: f506fe77928d1949047e96d79d6d755b1d205b23 |
|
Fix regressions. |
|
Branch CR26641_1 has been updated forcibly by isk. SHA-1: 32219dc407c969749defdb092d5430ac0317a954 |
|
Fix remarks by Kirill. |
|
Branch CR26641_1 has been updated forcibly by isk. SHA-1: b80b168ebb3d175489c566b09dcd85294783dfa2 |
|
Please test the patch. |
|
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 |
|
Dear isk, Branch CR26641_1 has been rejected due to: - differences in images |
|
Branch CR26641_1 has been updated forcibly by isk. SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f |
|
Update test case. |
|
Changes in images are OK, please switch to tested. |
|
Dear BugMaster, Branch CR26641_1 is TESTED. |
|
Branch CR26641_1 has been deleted by inv. SHA-1: 4ce1fd18a40b1ce1bebe041bdf8c9455c7e6e10f |
|
Branch CR26641 has been deleted by inv. SHA-1: ffc864a667e6aeb0d3cbe8baefa5c0e2f85d8609 |
|
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. |
|
Branch CR26641 has been deleted by kgv. SHA-1: 8686f00bedb13dec4e3959d4cbe848683a857ee2 |
occt: master 1d92133e 2016-07-05 10:32:52
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 |
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 |
|
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 |
|
Note Added: 0055228 | |
2016-06-20 14:44 |
|
Assigned To | isk => kgv |
2016-06-20 14:44 |
|
Status | assigned => resolved |
2016-06-20 14:44 |
|
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 |
|
Assigned To | bugmaster => apv |
2016-06-21 11:53 | git | Note Added: 0055285 | |
2016-06-21 11:54 |
|
Note Added: 0055286 | |
2016-06-22 13:25 |
|
Test case number | => bugs vis bug26641 |
2016-06-22 14:27 |
|
Note Added: 0055341 | |
2016-06-22 14:27 |
|
Assigned To | apv => isk |
2016-06-22 14:27 |
|
Status | reviewed => assigned |
2016-06-22 14:29 |
|
Note Edited: 0055341 | |
2016-06-22 14:31 |
|
Note Added: 0055342 | |
2016-06-23 13:58 |
|
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 |
|
Note Added: 0055633 | |
2016-07-05 09:36 |
|
Assigned To | isk => kgv |
2016-07-05 09:36 |
|
Status | assigned => resolved |
2016-07-05 13:33 | git | Note Added: 0055689 | |
2016-07-05 13:34 |
|
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 |
|
Assigned To | bugmaster => mkv |
2016-07-06 12:54 |
|
Note Added: 0055713 | |
2016-07-06 12:54 |
|
Note Added: 0055714 | |
2016-07-06 12:54 |
|
Assigned To | mkv => isk |
2016-07-06 12:54 |
|
Status | reviewed => feedback |
2016-07-06 14:28 | git | Note Added: 0055719 | |
2016-07-06 14:29 |
|
Note Added: 0055720 | |
2016-07-06 14:33 |
|
Assigned To | isk => mkv |
2016-07-06 14:34 |
|
Note Added: 0055721 | |
2016-07-06 18:25 |
|
Note Added: 0055730 | |
2016-07-06 18:25 |
|
Assigned To | mkv => bugmaster |
2016-07-06 18:25 |
|
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 |
|
Status | verified => closed |
2016-12-09 16:38 |
|
Fixed in Version | => 7.1.0 |