All Downloads are FREE. Search and download functionalities are using the official Maven repository.

indigo.shared.input.Pointers.scala Maven / Gradle / Ivy

The newest version!
package indigo.shared.input

import indigo.shared.collections.Batch
import indigo.shared.datatypes.Point
import indigo.shared.datatypes.Rectangle
import indigo.shared.events.PointerEvent

final class Pointers(
    val pointerEvents: Batch[PointerEvent],
    val position: Point
)

object Pointers:
  val default: Pointers =
    Pointers(Batch.empty, Point.zero)

  def calculateNext(previous: Pointers, events: Batch[PointerEvent]): Pointers =
    Pointers(
      pointerEvents = events,
      position = lastPointerPosition(previous.position, events)
    )

  private def lastPointerPosition(previous: Point, events: Batch[PointerEvent]): Point =
    events.collect { case mp: PointerEvent.PointerMove => mp.position }.lastOption.fold(previous)(identity)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy