- 17/05/2016 at 02:17 #5190
I am working on a C# Windows form project and would like capture the xy coordinates of a fixation event from with in a form (the local coordinates from the top left corner of the form, not global coordinates of the screen).
Is there a way to generate these form fixation coordinates from the EyeX engine or do I need to capture them by converting the xy coordinates from a global fixation to form coordinates using something like ScreenToClient ?
The reason I ask is that in the EyeX .net developers guide it specifies “Region-bound interactors usually
map one-to-one with the visual elements/components in the GUI”
The keyword there being usually, that made me thing maybe you can subscribe to fixation events for a specific form? I just havent been able to figure it out…
Any advice appreciated.
Richard25/05/2016 at 10:10 #5238OlehParticipant
FixationDataStream which generates fixation event is basically a global interactor. You can create an interactor for your form with fixation data behavior and it might work, but may I ask you what do you want to achieve? Maybe I can recommend you some other way to do that?14/06/2016 at 10:27 #5319
I am trying to take a screen shot of where I am looking on the desktop, detected when I fixate on an icon, button or area of the screen(could be anything). Enlarge that screen shot and present it in its own form. From there I want to detect where on the screen shot I am fixating and then translate that coordinate back to the actual real screen coordinate.28/06/2016 at 09:47 #5362OlehParticipant
Hi, sorry for the late reply.
To directly answer your question, as I have mentioned before you would need to create an interactor with FixationDataBehavior, but it is not enough to just create it. You would also need to push it through creating snapshots on every query from the Engine. So basically to achieve just that you would need to write your own implementation of EyeXHost. Otherwise, snapshots are committed without your notice.
But if I understood your goal correctly, I would say that achieve what you want will be a bit hard with Fixations stream, because of the “shaky” nature of the gaze you will never be accurate enough. What you can do, is identify, say, with FixationsDataStream where user looking at this moment of time, show your screenshot on the newly created form, for all areas user can interact with create an interactor, most probably gaze-aware interactor, and when it is time to get back to the original screen just select the element user has gazed on before.07/10/2016 at 04:34 #5760
Thanks for you help Oleh, I went with converting the xy coordinates from a global fixation to form coordinates using ScreenToClient
- You must be logged in to reply to this topic.