MantisBT - Community
View Issue Details
0031448Community[OCCT] OCCT:Visualizationpublic2020-03-20 06:352020-03-25 12:49
Vico Liang 
kgv 
normalblock 
newopen 
ios
 
[OCCT] 7.5.0* 
0031448: AIS_Manipulator doesn't work on ios
AIS_Manipulator can't be selected or operated on IOS platform. Its presetation does not match its selection.It seems the selection sensitives are two times offset from the presentaion.Please see the picture attached.

It can be reproduced with simulator or real device.

The build is from source of occt main branch with xcode 10.3, cmake.
No tags attached.
png ais-manipulator-selection-issue.png (12,320) 2020-03-20 06:35
https://tracker.dev.opencascade.org/
? Cocoa_Window.mm (18,636) 2020-03-25 12:45
https://tracker.dev.opencascade.org/
Issue History
2020-03-20 06:35Vico LiangNew Issue
2020-03-20 06:35Vico LiangAssigned To => kgv
2020-03-20 06:35Vico LiangFile Added: ais-manipulator-selection-issue.png
2020-03-20 08:23Vico LiangNote Added: 0091063
2020-03-20 10:39Vico LiangNote Edited: 0091063bug_revision_view_page.php?bugnote_id=91063#r22697
2020-03-20 10:40Vico LiangNote Edited: 0091063bug_revision_view_page.php?bugnote_id=91063#r22698
2020-03-20 11:03kgvRelationship addedrelated to 0030902
2020-03-20 12:15kgvNote Added: 0091078
2020-03-20 12:44Vico LiangNote Added: 0091079
2020-03-22 20:38kgvNote Added: 0091177
2020-03-23 04:16Vico LiangNote Added: 0091183
2020-03-25 12:45Vico LiangFile Added: Cocoa_Window.mm
2020-03-25 12:49Vico LiangNote Added: 0091237

Notes
(0091063)
Vico Liang   
2020-03-20 08:23   
(edited on: 2020-03-20 10:40)
This can be generallized to Transformation Persistence selection issue.I checked that this issue just occur on ios, it works on Mac, windows, Android.

(0091078)
kgv   
2020-03-20 12:15   
> it works on Mac
Are you sure? Have you tested this on Retina display?
(0091079)
Vico Liang   
2020-03-20 12:44   
>Are you sure? Have you tested this on Retina display?
I'm sure that it works on Mac Virtual Machine (WMWare Mac OS 10.14.6) hosted on Windows 10.
(0091177)
kgv   
2020-03-22 20:38   
Current implementation of Transformation Persistence knows nothing about virtual resolution used in macOS/iOS APIs. So that when actual rendering resolution is twice/trice larger than virtual resolution of mouse movement events, they do mismatch. This is not an issue for picking normal objects, as their sizes are independent from rendering resolution.

To workaround this limitation, you have to provide (convert) mouse movement events to AIS_InteractiveContext::MoveTo() in real rendering resolution, and implement Aspect_Window::Size() returning rendering resolution (Cocoa_Window currently does not).
(0091183)
Vico Liang   
2020-03-23 04:16   
Thanks for looking into this issue.It's awsome that you find the root cause.Hope this get fixed soon.
(0091237)
Vico Liang   
2020-03-25 12:49   
I have uploaded the update file Cocoa_Window.mm. The function Cocoa_Window::Size() and Cocoa_Window::Position() update accordingly.Is there any other codes need to be updated?