View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0025180 | Open CASCADE | OCCT:Visualization | public | 2014-08-20 19:13 | 2021-01-14 17:09 |
Reporter | Assigned To | kgv | |||
Priority | normal | Severity | integration request | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.1.0 | Fixed in Version | 7.1.0 | ||
Summary | 0025180: Visualization - Homogeneous transformation API in TKV3d | ||||
Description | Currently, even after correction of 0024837, presentation and selection packages in TKV3d library still use several different ways to specify a 3D transformation to be applied to presentations and sensitive entities: - gp_Trsf is used in PrsMgr classes - TopLoc_Location is used by AIS methods dealing with transformations and by selection packages - Prs3d_Presentation accepts transformation in the form of Geom_Transformation Such variety is not good from the coding style point of view, it affects code readability and size negatively and it requires a lot of unnecessary extra conversions between different transformation classes. It is proposed to choose a single unified way to pass 3D transformation to visualization and selection API: - either gp_Trsf can be used as a common OCCT way to represent transformations - or visualization-specific class Graphic3d_Mat4d can be considered. | ||||
Steps To Reproduce | Stress test to compare performance:pload MODELING VISUALIZATION box b 1 2 3 set aNb 30 vclear vinit View1 vaxo dchrono t stop dchrono t reset dchrono t start for {set i 0} {$i < $aNb} {incr i} { for {set j 0} {$j < $aNb} {incr j} { for {set k 0} {$k < $aNb} {incr k} { copy b bx${i}y${j}z${k}; vdisplay -noupdate -dispMode 1 bx${i}y${j}z${k}; vsetlocation -noupdate bx${i}y${j}z${k} [expr $i * 3] [expr $j * 3] [expr $k * 3] }}} vfit dchrono t stop dchrono t show vcaps -vsync 0 meminfo vfps | ||||
Tags | No tags attached. | ||||
Test case number | Not needed | ||||
related to | 0024837 | closed | bugmaster | Open CASCADE | Visualization - revise design and implementation of connected Interactive Objects |
related to | 0027860 | closed | kgv | Open CASCADE | Visualization - clean up Transformation Persistence API |
parent of | 0032056 | closed | bugmaster | Open CASCADE | Coding Rules - remove package MMgt and other types deprecated since OCCT 7.2.0 |
|
Branch CR25180 has been created by duv. SHA-1: 5a78e5f6ed95d4efeefdaec700316cf0aea35ae2 Detailed log of new commits: Author: duv Date: Tue Sep 16 12:05:13 2014 +0400 0025180: Visualization - Homogeneous transformation API in TKV3d. |
|
Dear abv, Please review the patch. |
|
Please document the changes made (either in commit message, or in bug note) |
|
Dear abv, The changes have been documented in bug note. |
|
Do I understand correctly that all classes inheriting AIS_InteractiveObject must be revised to correct this argument of Compute()? If so, can we be sure that the users who have such objects in their applications will notice the change (i.e. will the compilation fail if code is not updated)? My feeling is that this change will create numerous troubles to users (including additional difficulties in supporting code capable of building on both 6.8.0+ and previous versions of OCCT), without bringing any benefits. Please explain why this change is needed (apart of code style consideration which is rather subjective) |
|
To be considered more carefully after 6.8.0 release. Transformations API to be agreed by all concerned persons. |
|
Branch CR25180_1 has been created by kgv. SHA-1: 5146e5a03c3c9ee09c4dc7f2fb8d7b99efd9f2c7 Detailed log of new commits: Author: kgv Date: Sat Sep 17 19:33:53 2016 +0300 0025180: Visualization - Homogeneous transformation API in TKV3d PrsMgr_PresentableObject, Graphic3d_Structure now consistently take and store Handle(Geom_Transformation) instead of TColStd_Array2OfReal / Graphic3d_Mat4. Low-level advanced methods have been modified to pass Handle(Geom_Transformation). High-level methods have been preserved accepting old syntax taking gp_Trsf. Geom_Transformation now inlines most methods. |
|
Updated patch is ready for review. |
|
Branch CR25180_1 reviewed without remarks, ready for testing. Note that the patch is based on a patch for 0027860. |
|
Fix for issue 0027860 has been rejected. Issue 0025180 is waiting updated version of fix. |
|
Branch CR25180_1 has been updated forcibly by kgv. SHA-1: 2f1ad16351c7bf22b875627262fa2fab9f0e0ba0 |
|
Branch has been rebased onto updated patch for 0027860 (beware that 0027860 has also branch for Products). |
|
Dear BugMaster, Branch CR25180_1 from occt git-repository (and CR27860_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: 2f1ad16351c7bf22b875627262fa2fab9f0e0ba0 SHA-1: 677cf1083f54bf291e25f0341574f85deb450174 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 64 Windows: 0 MacOS: 1136 Compilation errors have been detected during building of CSharp Products samples on Windows: http://jenkins-test-05.nnov.opencascade.com/view/CR25180_1-CR27860_2/job/CR25180_1-CR27860_2-Products-Windows-64-VC10-csharp-samples/2/parsed_console/ Java Products samples on Windows: http://jenkins-test-05.nnov.opencascade.com/view/CR25180_1-CR27860_2/job/CR25180_1-CR27860_2-Products-Windows-64-VC10-java-samples/2/parsed_console/ Regressions/Differences: http://occt-tests/CR25180_1-CR27860_2-OCCT/Debian70-64/summary.html http://occt-tests/CR25180_1-CR27860_2-OCCT/Windows-64-VC10/summary.html bugs vis bug24837_1 Possible equal to regressions/differences from 0027860: 3rdparty fonts A7 bugs vis bug22879, bug25121 v3d raytrace bug24819 Testing on Linux: occt component: Total MEMORY difference: 89942851 / 89806745 [+0.15%] Total CPU difference: 19387.22999999995 / 19209.969999999936 [+0.92%] products component: Total MEMORY difference: 30046253 / 29998572 [+0.16%] Total CPU difference: 5097.689999999975 / 5119.779999999977 [-0.43%] Testing on Windows: occt component: Total MEMORY difference: 57199874 / 57211877 [-0.02%] Total CPU difference: 18165.97324779889 / 18509.12864749872 [-1.85%] products component: Total MEMORY difference: 21268567 / 21232183 [+0.17%] Total CPU difference: 4862.11436719995 / 4959.0221883999575 [-1.95%] There are differences in images found by testdiff: http://occt-tests/CR25180_1-CR27860_2-OCCT/Debian70-64/diff-Debian70-64.html http://occt-tests/CR25180_1-CR27860_2-OCCT/Windows-64-VC10/diff-Windows-64-VC10-image.html v3d manipulator rotate v3d manipulator zoom_persistence v3d manipulator translate |
|
Dear Kirill, Branches CR25180_1 (from occt git-repository) and CR27860_2 (from products git-repository) have been rejected due to: - compilation errors - regressions/differences/improvements - differences in images |
|
Branch CR25180_1 has been updated by kgv. SHA-1: 791321f7402ce164fe56bc63127d9b821fdd361b Detailed log of new commits: Author: kgv Date: Fri Sep 23 14:07:15 2016 +0300 AIS_Manipulator::updateTransformation() - fixed usage of setLocalTransformation() |
|
Branch CR25180_2 has been created by kgv. SHA-1: 736f46ef074daf40ef450e19cde32e19134af4d1 Detailed log of new commits: Author: kgv Date: Sat Sep 17 19:33:53 2016 +0300 0025180: Visualization - Homogeneous transformation API in TKV3d PrsMgr_PresentableObject, Graphic3d_Structure now consistently take and store Handle(Geom_Transformation) instead of TColStd_Array2OfReal / Graphic3d_Mat4. Low-level advanced methods have been modified to pass Handle(Geom_Transformation). High-level methods have been preserved accepting old syntax taking gp_Trsf. Geom_Transformation now inlines most methods. |
|
Regression with manipulator should be fixed now. Please check updated patch in branch CR25180_2 (based on 0027860). |
|
CR25180_2 for Products has been pushed to fix building C#/Java samples (only samples have been changed). |
|
Branch CR25180_2 from products git-repository has been rebased on the current master. |
|
Dear BugMaster, Branch CR25180_2 from occt git-repository (and CR25180_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: 736f46ef074daf40ef450e19cde32e19134af4d1 SHA-1: e0bf14f582b35032c1e1c67a2297497ea8875e90 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 64 Windows: 0 MacOS: 1118 Regressions/Differences: http://occt-tests/CR25180_2-CR25180_2-OCCT/Debian70-64/summary.html http://occt-tests/CR25180_2-CR25180_2-OCCT/Windows-64-VC10/summary.html bugs vis bug24837_1 Testing on Linux: occt component: Total MEMORY difference: 90280085 / 90221933 [+0.06%] Total CPU difference: 19460.11999999995 / 19251.349999999875 [+1.08%] products component: Total MEMORY difference: 30074923 / 30057668 [+0.06%] Total CPU difference: 5146.629999999971 / 5152.399999999975 [-0.11%] Testing on Windows: occt component: Total MEMORY difference: 57210979 / 57221541 [-0.02%] Total CPU difference: 17924.01569679872 / 18310.78897609872 [-2.11%] products component: Total MEMORY difference: 21272079 / 21235672 [+0.17%] Total CPU difference: 4906.60585239995 / 4988.631178199945 [-1.64%] |
|
Dear Kirill, Branches CR25180_2 from occt and products git-repositories have been rejected due to: - regressions/differences/improvements |
|
Branch CR25180_2 has been updated by kgv. SHA-1: 4683a81eec3adddbdd045c3b838b524377c9c031 Detailed log of new commits: Author: kgv Date: Tue Sep 27 13:04:59 2016 +0300 fix regression |
|
Please check updated patch. |
|
Dear BugMaster, Branch CR25180_2 from occt git-repository (and CR25180_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: 4683a81eec3adddbdd045c3b838b524377c9c031 SHA-1: e0bf14f582b35032c1e1c67a2297497ea8875e90 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 64 Windows: 0 MacOS: 1125 Regressions/Differences: Not detected Testing cases: Not needed Testing on Linux: occt component: Total MEMORY difference: 90861249 / 90246963 [+0.68%] Total CPU difference: 19448.999999999967 / 19251.849999999875 [+1.02%] products component: Total MEMORY difference: 30112022 / 30046985 [+0.22%] Total CPU difference: 5154.009999999979 / 5151.099999999975 [+0.06%] Testing on Windows: occt component: Total MEMORY difference: 57211683 / 57221541 [-0.02%] Total CPU difference: 17933.03255459869 / 18310.78897609872 [-2.06%] products component: Total MEMORY difference: 21272090 / 21235672 [+0.17%] Total CPU difference: 4885.84211929994 / 4988.631178199945 [-2.06%] |
|
Branch CR25180_2 has been deleted by kgv. SHA-1: 4683a81eec3adddbdd045c3b838b524377c9c031 |
|
Branch CR25180_1 has been deleted by kgv. SHA-1: 791321f7402ce164fe56bc63127d9b821fdd361b |
|
Branch CR25180 has been deleted by kgv. SHA-1: 5a78e5f6ed95d4efeefdaec700316cf0aea35ae2 |
occt: master 1f7f5a90 2016-09-17 16:33:53 Details Diff |
0025180: Visualization - Homogeneous transformation API in TKV3d PrsMgr_PresentableObject, Graphic3d_Structure now consistently take and store Handle(Geom_Transformation) instead of TColStd_Array2OfReal / Graphic3d_Mat4. Low-level advanced methods have been modified to pass Handle(Geom_Transformation). High-level methods have been preserved accepting old syntax taking gp_Trsf. Geom_Transformation now inlines most methods. |
Affected Issues 0025180 |
|
mod - src/AIS/AIS_ConnectedInteractive.cxx | Diff File | ||
mod - src/AIS/AIS_ConnectedInteractive.hxx | Diff File | ||
mod - src/AIS/AIS_Manipulator.cxx | Diff File | ||
mod - src/AIS/AIS_Manipulator.hxx | Diff File | ||
mod - src/AIS/AIS_MultipleConnectedInteractive.cxx | Diff File | ||
mod - src/AIS/AIS_MultipleConnectedInteractive.hxx | Diff File | ||
mod - src/AIS/AIS_Trihedron.cxx | Diff File | ||
mod - src/AIS/AIS_Trihedron.hxx | Diff File | ||
mod - src/Geom/Geom_Transformation.cxx | Diff File | ||
mod - src/Geom/Geom_Transformation.hxx | Diff File | ||
mod - src/gp/gp_Trsf.hxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_CStructure.hxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_CView.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_CView.hxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Structure.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Structure.hxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_StructureManager.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_StructureManager.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_MatrixState.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Structure.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Structure.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_StructureShadow.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_View.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_View_Raytrace.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_Presentation.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_Presentation.hxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_ListOfPresentableObjects.hxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_PresentableObject.cxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_PresentableObject.hxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_Presentation.cxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_Presentation.hxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_PresentationManager.cxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_Prs.cxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_Prs.hxx | Diff File | ||
mod - src/V3d/V3d_CircularGrid.cxx | Diff File | ||
mod - src/V3d/V3d_Plane.cxx | Diff File | ||
mod - src/V3d/V3d_RectangularGrid.cxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-08-20 19:13 |
|
New Issue | |
2014-08-20 19:13 |
|
Assigned To | => duv |
2014-08-20 19:13 |
|
Relationship added | related to 0024837 |
2014-08-20 19:14 |
|
Description Updated | |
2014-08-20 19:15 |
|
Status | new => assigned |
2014-09-16 12:06 | git | Note Added: 0031742 | |
2014-09-16 17:01 |
|
Note Added: 0031776 | |
2014-09-16 17:01 |
|
Assigned To | duv => abv |
2014-09-16 17:01 |
|
Status | assigned => resolved |
2014-09-17 14:09 |
|
Note Added: 0031801 | |
2014-09-17 14:09 |
|
Assigned To | abv => duv |
2014-09-17 14:09 |
|
Status | resolved => assigned |
2014-09-17 14:24 |
|
Additional Information Updated | |
2014-09-17 14:25 |
|
Note Added: 0031805 | |
2014-09-17 14:25 |
|
Assigned To | duv => abv |
2014-09-17 14:25 |
|
Status | assigned => resolved |
2014-09-17 15:17 |
|
Note Added: 0031809 | |
2014-09-17 15:17 |
|
Status | resolved => assigned |
2014-09-17 18:58 |
|
Assigned To | abv => san |
2014-10-17 20:19 |
|
Note Added: 0033297 | |
2014-10-17 20:19 |
|
Assigned To | san => duv |
2014-10-17 20:19 |
|
Target Version | 6.8.0 => 7.1.0 |
2016-09-16 11:50 | kgv | Assigned To | duv => kgv |
2016-09-16 11:50 | kgv | Severity | text => integration request |
2016-09-18 15:00 | kgv | Steps to Reproduce Updated | |
2016-09-18 15:00 | kgv | Additional Information Updated | |
2016-09-18 15:15 | git | Note Added: 0057894 | |
2016-09-18 15:16 | kgv | Relationship added | related to 0027860 |
2016-09-18 15:16 | kgv | Note Added: 0057895 | |
2016-09-18 15:16 | kgv | Assigned To | kgv => san |
2016-09-18 15:16 | kgv | Status | assigned => resolved |
2016-09-20 12:22 |
|
Note Added: 0057942 | |
2016-09-20 12:22 |
|
Assigned To | san => bugmaster |
2016-09-20 12:22 |
|
Status | resolved => reviewed |
2016-09-20 12:24 |
|
Assigned To | bugmaster => apv |
2016-09-21 10:27 |
|
Note Added: 0057968 | |
2016-09-21 10:27 |
|
Assigned To | apv => kgv |
2016-09-21 10:27 |
|
Status | reviewed => feedback |
2016-09-21 12:57 | git | Note Added: 0057984 | |
2016-09-21 12:58 | kgv | Note Added: 0057985 | |
2016-09-21 12:58 | kgv | Assigned To | kgv => bugmaster |
2016-09-21 12:58 | kgv | Status | feedback => reviewed |
2016-09-21 13:06 |
|
Assigned To | bugmaster => apv |
2016-09-22 11:45 |
|
Note Added: 0058016 | |
2016-09-22 11:45 |
|
Assigned To | apv => kgv |
2016-09-22 11:45 |
|
Status | reviewed => assigned |
2016-09-22 11:48 |
|
Note Added: 0058017 | |
2016-09-23 14:07 | git | Note Added: 0058068 | |
2016-09-23 14:10 | git | Note Added: 0058069 | |
2016-09-23 14:10 | kgv | Note Added: 0058070 | |
2016-09-23 14:10 | kgv | Assigned To | kgv => bugmaster |
2016-09-23 14:10 | kgv | Status | assigned => resolved |
2016-09-23 14:11 | kgv | Status | resolved => reviewed |
2016-09-23 14:11 | kgv | Note Edited: 0058070 | |
2016-09-23 14:54 |
|
Assigned To | bugmaster => apv |
2016-09-25 14:29 | kgv | Note Added: 0058122 | |
2016-09-26 12:28 |
|
Note Added: 0058153 | |
2016-09-27 12:24 |
|
Note Added: 0058194 | |
2016-09-27 12:24 |
|
Assigned To | apv => kgv |
2016-09-27 12:24 |
|
Status | reviewed => assigned |
2016-09-27 12:26 |
|
Note Added: 0058195 | |
2016-09-27 13:07 | git | Note Added: 0058198 | |
2016-09-27 13:08 | kgv | Note Added: 0058200 | |
2016-09-27 13:08 | kgv | Assigned To | kgv => bugmaster |
2016-09-27 13:08 | kgv | Status | assigned => resolved |
2016-09-27 13:08 | kgv | Status | resolved => reviewed |
2016-09-27 14:24 |
|
Assigned To | bugmaster => apv |
2016-09-28 10:27 |
|
Test case number | => Not needed |
2016-09-28 10:30 |
|
Note Added: 0058236 | |
2016-09-28 10:30 |
|
Assigned To | apv => bugmaster |
2016-09-28 10:30 |
|
Status | reviewed => tested |
2016-10-03 13:47 | kgv | Changeset attached | => occt master 1f7f5a90 |
2016-10-03 13:47 | kgv | Assigned To | bugmaster => kgv |
2016-10-03 13:47 | kgv | Status | tested => verified |
2016-10-03 13:47 | kgv | Resolution | open => fixed |
2016-10-21 12:05 | kgv | Steps to Reproduce Updated | |
2016-10-28 21:41 | git | Note Added: 0059434 | |
2016-10-28 21:44 | git | Note Added: 0059489 | |
2016-10-28 21:51 | git | Note Added: 0059597 | |
2016-12-09 16:29 |
|
Status | verified => closed |
2016-12-09 16:40 |
|
Fixed in Version | => 7.1.0 |
2021-01-14 17:09 | kgv | Relationship added | parent of 0032056 |