public void actionDown(int pointerId, long time, float x, float y) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Inject input pointer: {0}, time: {1}, x: {2}, y: {3}",
                    new Object[]{pointerId, time, x, y});
        }
        float jmeX = iosInput.getJmeX(x);
        float jmeY = iosInput.invertY(iosInput.getJmeY(y));
        TouchEvent touch = iosInput.getFreeTouchEvent();
        touch.set(TouchEvent.Type.DOWN, jmeX, jmeY, 0, 0);
        touch.setPointerId(pointerId);//TODO: pointer ID
        touch.setTime(time);
        touch.setPressure(1.0f);
        //touch.setPressure(event.getPressure(pointerIndex)); //TODO: pressure

        lastPositions.put(pointerId, new Vector2f(jmeX, jmeY));

        processEvent(touch);
    }
IosTouchHandler is the base class that receives touch inputs from the 
iOS system and creates the TouchEvents for jME.

@author iwgeric
jme3-ios/src/main/java/com/jme3/input/ios/IosTouchHandler.java