NGWIIZ5XGKXY2F7VLUYKKR26HO3AVDGXSKC5MMBSSOM4E7NX3XNAC
72K7733VL7KMJYMTJNBDGNO3KK6LRJRSL53OGWGIS7LTUCEMJCFQC
46X35644JYDQLMYGUWHSSVA5AR3CHRXWEYGEIMZRZOG3IIPLADSQC
QO2BU5MSY6N7D57BSQGE64Y5PFJF3MJ3NVLWY6VZSV5PN7IX6O5QC
SUMRVBDHO5NBM2RWHD3XYLBDWP2CCTN2SBV2SWUDW2FMG2KUP4JAC
A6HLSJEOJJGNTITANAOHC7PW7IKJHUNHWRYL7LJKRFUZRLVTHGLAC
4NFPDQ4SITGAS22RQWLPE4OEAWNRMIMIZURGSD4EQLE64RMNU6GAC
7TQAF4BYIK75EEYCCK7VEUSZHNCWMWIA3HZGQKIILYESUZ5ZZRVQC
local state = {
x=v.x, y=v.y, zoom=v.zoom,
initial=from_viewport(v),
step = 0,
frame_time = 0,
}
local initial = copy_viewport(Viewport)
local final = v
local step, frame_time = 0, 0
state.frame_time = state.frame_time + dt
if state.frame_time > 0.01 then
state.frame_time = state.frame_time - 0.01
state.step = state.step + 1
if state.step > Num_animation_frames then
frame_time = frame_time + dt
if frame_time > 0.01 then
frame_time = frame_time - 0.01
step = step + 1
if step > Num_animation_frames then