MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0025180Open CASCADE[OCCT] OCCT:Visualizationpublic2014-08-20 19:132016-12-09 16:40
Reportersan 
Assigned Tokgv 
PrioritynormalSeverityintegration request 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.1.0Fixed in Version[OCCT] 7.1.0 
Summary0025180: Visualization - Homogeneous transformation API in TKV3d
DescriptionCurrently, 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 ReproduceStress 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
TagsNo tags attached.
Test case numberNot needed
Attached Files

- Relationships
related to 0024837closedbugmaster Open CASCADE Visualization - revise design and implementation of connected Interactive Objects 
related to 0027860closedkgv Open CASCADE Visualization - clean up Transformation Persistence API 

-  Notes
(0031742)
git (administrator)
2014-09-16 12:06

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.
(0031776)
duv (developer)
2014-09-16 17:01

Dear abv,

Please review the patch.
(0031801)
abv (manager)
2014-09-17 14:09

Please document the changes made (either in commit message, or in bug note)
(0031805)
duv (developer)
2014-09-17 14:25

Dear abv,

The changes have been documented in bug note.
(0031809)
abv (manager)
2014-09-17 15:17

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)
(0033297)
san (developer)
2014-10-17 20:19

To be considered more carefully after 6.8.0 release.
Transformations API to be agreed by all concerned persons.
(0057894)
git (administrator)
2016-09-18 15:15

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.
(0057895)
kgv (developer)
2016-09-18 15:16

Updated patch is ready for review.
(0057942)
san (developer)
2016-09-20 12:22

Branch CR25180_1 reviewed without remarks, ready for testing.

Note that the patch is based on a patch for 0027860.
(0057968)
apv (tester)
2016-09-21 10:27

Fix for issue 0027860 has been rejected. Issue 0025180 is waiting updated version of fix.
(0057984)
git (administrator)
2016-09-21 12:57

Branch CR25180_1 has been updated forcibly by kgv.

SHA-1: 2f1ad16351c7bf22b875627262fa2fab9f0e0ba0
(0057985)
kgv (developer)
2016-09-21 12:58

Branch has been rebased onto updated patch for 0027860 (beware that 0027860 has also branch for Products).
(0058016)
apv (tester)
2016-09-22 11:45

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
(0058017)
apv (tester)
2016-09-22 11:48

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
(0058068)
git (administrator)
2016-09-23 14:07

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()

(0058069)
git (administrator)
2016-09-23 14:10

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.
(0058070)
kgv (developer)
2016-09-23 14:10
edited on: 2016-09-23 14:11

Regression with manipulator should be fixed now.
Please check updated patch in branch CR25180_2 (based on 0027860).

(0058122)
kgv (developer)
2016-09-25 14:29

CR25180_2 for Products has been pushed to fix building C#/Java samples (only samples have been changed).
(0058153)
apv (tester)
2016-09-26 12:28

Branch CR25180_2 from products git-repository has been rebased on the current master.
(0058194)
apv (tester)
2016-09-27 12:24

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%]
(0058195)
apv (tester)
2016-09-27 12:26

Dear Kirill,

Branches CR25180_2 from occt and products git-repositories have been rejected due to:
- regressions/differences/improvements
(0058198)
git (administrator)
2016-09-27 13:07

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

(0058200)
kgv (developer)
2016-09-27 13:08

Please check updated patch.
(0058236)
apv (tester)
2016-09-28 10:30

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%]
(0059434)
git (administrator)
2016-10-28 21:41

Branch CR25180_2 has been deleted by kgv.

SHA-1: 4683a81eec3adddbdd045c3b838b524377c9c031
(0059489)
git (administrator)
2016-10-28 21:44

Branch CR25180_1 has been deleted by kgv.

SHA-1: 791321f7402ce164fe56bc63127d9b821fdd361b
(0059597)
git (administrator)
2016-10-28 21:51

Branch CR25180 has been deleted by kgv.

SHA-1: 5a78e5f6ed95d4efeefdaec700316cf0aea35ae2

- Related Changesets
occt: master 1f7f5a90
Timestamp: 2016-09-17 16:33:53
Author: kgv
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.
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 ]

- Issue History
Date Modified Username Field Change
2014-08-20 19:13 san New Issue
2014-08-20 19:13 san Assigned To => duv
2014-08-20 19:13 san Relationship added related to 0024837
2014-08-20 19:14 san Description Updated View Revisions
2014-08-20 19:15 san Status new => assigned
2014-09-16 12:06 git Note Added: 0031742
2014-09-16 17:01 duv Note Added: 0031776
2014-09-16 17:01 duv Assigned To duv => abv
2014-09-16 17:01 duv Status assigned => resolved
2014-09-17 14:09 abv Note Added: 0031801
2014-09-17 14:09 abv Assigned To abv => duv
2014-09-17 14:09 abv Status resolved => assigned
2014-09-17 14:24 duv Additional Information Updated View Revisions
2014-09-17 14:25 duv Note Added: 0031805
2014-09-17 14:25 duv Assigned To duv => abv
2014-09-17 14:25 duv Status assigned => resolved
2014-09-17 15:17 abv Note Added: 0031809
2014-09-17 15:17 abv Status resolved => assigned
2014-09-17 18:58 abv Assigned To abv => san
2014-10-17 20:19 san Note Added: 0033297
2014-10-17 20:19 san Assigned To san => duv
2014-10-17 20:19 san 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 View Revisions
2016-09-18 15:00 kgv Additional Information Updated View Revisions
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-18 15:16 kgv Relationship added related to 0024393
2016-09-20 12:22 san Note Added: 0057942
2016-09-20 12:22 san Assigned To san => bugmaster
2016-09-20 12:22 san Status resolved => reviewed
2016-09-20 12:24 apv Assigned To bugmaster => apv
2016-09-21 10:27 apv Note Added: 0057968
2016-09-21 10:27 apv Assigned To apv => kgv
2016-09-21 10:27 apv 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 apv Assigned To bugmaster => apv
2016-09-22 11:45 apv Note Added: 0058016
2016-09-22 11:45 apv Assigned To apv => kgv
2016-09-22 11:45 apv Status reviewed => assigned
2016-09-22 11:48 apv 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 View Revisions
2016-09-23 14:54 apv Assigned To bugmaster => apv
2016-09-25 14:29 kgv Note Added: 0058122
2016-09-26 12:28 apv Note Added: 0058153
2016-09-27 12:24 apv Note Added: 0058194
2016-09-27 12:24 apv Assigned To apv => kgv
2016-09-27 12:24 apv Status reviewed => assigned
2016-09-27 12:26 apv 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 apv Assigned To bugmaster => apv
2016-09-28 10:27 apv Test case number => Not needed
2016-09-28 10:30 apv Note Added: 0058236
2016-09-28 10:30 apv Assigned To apv => bugmaster
2016-09-28 10:30 apv 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 View Revisions
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 user533 Status verified => closed
2016-12-09 16:40 user533 Fixed in Version => 7.1.0


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker