Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface Device
- interface Positioner: Device {
- fun home()
- }
- interface XYPositioner<T: Comparable<Number>>: Positioner {
- fun moveTo(x: T, y: T)
- }
- interface XYSpeedPositioner<T: Comparable<Number>>: XYPositioner<T> {
- val minSpeed: T?
- val maxSpeed: T?
- val defaultSpeed: T
- // public fun <T : Comparable<T>> T.coerceIn(minimumValue: T?, maximumValue: T?): T {
- fun coerceSpeed(speed: T): T = speed.coerceIn(minSpeed, maxSpeed) ?: defaultSpeed
- override fun moveTo(x: T, y: T) = moveTo(x, y, defaultSpeed)
- fun moveTo(x: T, y: T, speed: T)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement