local w={}local G=CFrame.new local l={}local T=require(script.Easing)for w,e in pairs(T)do l[w]=function(l,e,h,j,...)local C,M,I,Z,V,f,z,u,p,J,o,r=l:GetComponents()local K,S,b,U,H,s,n,Q,W,E,x,F=e:GetComponents()return G(T[w](h,C,K-C,j,...),T[w](h,M,S-M,j,...),T[w](h,I,b-I,j,...),T[w](h,Z,U-Z,j,...),T[w](h,V,H-V,j,...),T[w](h,f,s-f,j,...),T[w](h,z,n-z,j,...),T[w](h,u,Q-u,j,...),T[w](h,p,W-p,j,...),T[w](h,J,E-J,j,...),T[w](h,o,x-o,j,...),T[w](h,r,F-r,j,...))end end return l
--CFrame.new ( number x, number y, number z, number R00, number R01, number R02, number R10, number R11, number R12, number R20, number R21, number R22 )
--CFrame:GetComponents ( )	x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22,

local comps = {}

local cf = CFrame.new

local CFrameEasing = {}

local easing = require(script.Easing)

for key, val in pairs(easing) do
	CFrameEasing[key] = function(b, g, t, d, ...)
		local bX, bY, bZ, bR00, bR01, bR02, bR10, bR11, bR12, bR20, bR21, bR22 = b:GetComponents()
		local gX, gY, gZ, gR00, gR01, gR02, gR10, gR11, gR12, gR20, gR21, gR22 = g:GetComponents()
		return cf(
			easing[key](t, bX, gX - bX, d, ...),
			easing[key](t, bY, gY - bY, d, ...),
			easing[key](t, bZ, gZ - bZ, d, ...), --X, Y, Z
			easing[key](t, bR00, gR00 - bR00, d, ...),
			easing[key](t, bR01, gR01 - bR01, d, ...),
			easing[key](t, bR02, gR02 - bR02, d, ...), --number R00, number R01, number R02
			easing[key](t, bR10, gR10 - bR10, d, ...),
			easing[key](t, bR11, gR11 - bR11, d, ...),
			easing[key](t, bR12, gR12 - bR12, d, ...), --number R10, number R11, number R12
			easing[key](t, bR20, gR20 - bR20, d, ...),
			easing[key](t, bR21, gR21 - bR21, d, ...),
			easing[key](t, bR22, gR22 - bR22, d, ...) --number R20, number R21, number R22
		)
	end
end

return CFrameEasing
