<div class='type'>Function</div>


<a id='references'></a>


<h2 id="indirectpointerevent-motionevent-primarydirectionalmotionaxis-previousmotionevent">IndirectPointerEvent</h2>

<div class='sourceset sourceset-android'>Android</div>


```kotlin
@ExperimentalIndirectPointerApi
fun IndirectPointerEvent(
    motionEvent: MotionEvent,
    primaryDirectionalMotionAxis: IndirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.None,
    previousMotionEvent: MotionEvent? = null,
): IndirectPointerEvent
```


Allows creation of a `IndirectPointerEvent` from a `MotionEvent` for cross module testing.
IMPORTANT NOTE 1: Primary axis is determined by properties of the `InputDevice` contained within
the `MotionEvent`. However, when manually creating a `MotionEvent`, there is no way to set the
`InputDevice`. Therefore, this function allows you to manually set the primary axis for testing.
If you have a system created `MotionEvent`, you can call
convertActionToIndirectPointerEventType() on your `MotionEvent` to get the primary axis.
IMPORTANT NOTE 2: Since this is just a test function that doesn't maintain state for previous
`MotionEvent`s (like the Android Compose system does), you will need to pass a separate
`MotionEvent` to populate IndirectPointerInputChange's "previous" parameters (time, position, and
pressed).

#### Parameters

| | |
| --- | --- |
| motionEvent | The `MotionEvent` to convert to an `IndirectPointerEvent`. |
| primaryDirectionalMotionAxis | Primary directional motion axis for testing. |
| previousMotionEvent | The `MotionEvent` for previous values (time, position, and pressed). |