There are a few things that are wrong in the way the code is structured. First, you already have a mouse, and you relay on the mouse/pointer events to generate another mouse/pointer event. Why is that needed?
Having said that, if you still want to get that to work, you will need to set the scene’s pointerX and pointerY correctly, and simply trigger simulatePointerDown with empty objects. There is no reason to run scene.pick, unless you need the picking result somewhere along the way.
TL;dr:
- simulate pointer events is working with GUI elements
- simulate pointer events extends the pointer event data sent to the function, and uses scene.pointerX and scene.pointerY to simulate the click at this specific point
Don’t simulate pointer events using the mouse, because that would create awkward/unexpected results.