Skip to content

pointer_leave events pick_info always comes from the Frame mesh plane#777

Description

@kushalkolar

This is a result of #740 that I did not anticipate 馃槀 . Anytime we have a pointer_leave event on an object in the Subplot Scene, it will pickup the plane mesh of the subplot Frame for the picking info.

Example, when leaving any one of these scatter points:

<pygfx.objects._events.PointerEvent object at 0x7fa7a40b20d0>
{'rgba': Color(0.8784, 0.8431, 0.098, 1.0), 'world_object': <pygfx.Mesh  at 0x7fa7ff5e1090>, 'face_index': 1, 'face_coord': (0.06349206349206349, 0.6031746031746031, 0.31746031746031744)}

Image

@almarklein do you think the best thing to do is just filter out the plane mesh anytime it appears in the pick info? In fastplotlib the events handling is wrapped so that's easy to do:

def _handle_event(self, callback, event: pygfx.Event):
"""Wrap pygfx event to add graphic to pick_info"""
event.graphic = self
if self.block_events:
return
if event.type in self._features:
# for feature events
event._target = self.world_object
with log_exception(f"Error during handling {event.type} event"):
callback(event)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions