Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. interface Device
  2.  
  3. interface Positioner: Device {
  4. fun home()
  5. }
  6.  
  7. interface XYPositioner<T: Comparable<Number>>: Positioner {
  8. fun moveTo(x: T, y: T)
  9. }
  10.  
  11. interface XYSpeedPositioner<T: Comparable<Number>>: XYPositioner<T> {
  12. val minSpeed: T?
  13. val maxSpeed: T?
  14. val defaultSpeed: T
  15. // public fun <T : Comparable<T>> T.coerceIn(minimumValue: T?, maximumValue: T?): T {
  16. fun coerceSpeed(speed: T): T = speed.coerceIn(minSpeed, maxSpeed) ?: defaultSpeed
  17. override fun moveTo(x: T, y: T) = moveTo(x, y, defaultSpeed)
  18.  
  19. fun moveTo(x: T, y: T, speed: T)
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement