How to deal with overlapping touchable objects?

Hey there evvvveryone.

I’m working on a touchtable at the moment and face this problem:
there’s a state in my app where several touchable quads are partly overlapping. my problem is that I want every single quad to be activatable individually even if they overlap with others. I’m working with vux’ hittest and by now more than one quad is activated if an overlapped one is touched. Check the attached patch to see what I mean (a touch is simulated by a left-mouse-click there).

I was thinking about a machanism which does this but couldn’t get my head around it so far:

  • check which quads are overlapping
  • if an overlapping quad is touched increase distance between quads until there’s no more overlapping
  • remain in this state for xyz seconds (during this time you can comfortably select the quad you want)

Any ideas how to realize that?
Or maybe someone has an easier solution?

Looking forward to your hints!

touchproblem.v4p (19.7 kB)

better thing would be to set moving IDs to each quad.
The ID will enable you to decide what is exactly the order of overlapping quad ( wich one is over wich one), enabling just to move the ON THE TOP quad.
if multitouch:
If you touch the quad, it set the ID of this quad to 1. If one quad is already used, it takes ID 2, if they are 4 quad actually touched at same time, its ID becames 5.

thanks for your fast reply karistouf.
the thing is that those quads aren’t movable. the app works like a compass whereas the quads are arrows pointing to a location. the user will only be able to select those arrows by touching them and thus receive some info about the according location. only one arrow can be active at a time.

so my problem is to find a nice way to make those overlapping arrows (quads) individually accessable.

Ok i think this could really help you boubles-proximity-dynamic using resizing

ya, that looks promising. I’ll check that out.
thanks for now!

you would calc the centers of all quads which are hit, and select the one which is the nearest to the hit position…

touchproblem.v4p (26.0 kB)

that would be an easier solution.
thanks tonfilm!

Or use Z sorting, like in Flash event model.