//
//  UIInterpolatingMotionEffect.swift
//  Mastodon
//
//  Created by MainasuK Cirno on 2021-3-2.
//

import UIKit

extension UIInterpolatingMotionEffect {
    static func motionEffect(
        minX: CGFloat,
        maxX: CGFloat,
        minY: CGFloat,
        maxY: CGFloat
    ) -> UIMotionEffectGroup {
        let motionEffectX = UIInterpolatingMotionEffect(keyPath: "layer.transform.translation.x", type: .tiltAlongHorizontalAxis)
        motionEffectX.minimumRelativeValue = minX
        motionEffectX.maximumRelativeValue = maxX
        
        let motionEffectY = UIInterpolatingMotionEffect(keyPath: "layer.transform.translation.y", type: .tiltAlongVerticalAxis)
        motionEffectY.minimumRelativeValue = minY
        motionEffectY.maximumRelativeValue = maxY
        
        let motionEffectGroup = UIMotionEffectGroup()
        motionEffectGroup.motionEffects = [motionEffectX, motionEffectY]
        
        return motionEffectGroup
    }
}