@@ -117,26 +117,27 @@ local writeHeadPositionChange = function()
117
117
118
118
local outputTs = string.format (" %.3f-%.3f " ,lasttimePos ,newTimePos )
119
119
local changedValues = {}
120
- local maximumTimeoutReached = (lasttimePos - newTimePos ) > 5.0
120
+ local movementDuration = (newTimePos - lasttimePos )
121
+ local maximumTimeoutReached = movementDuration > 5.0
121
122
122
123
if initPass or pitch ~= last_pitch or maximumTimeoutReached then
123
- changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 pitch %.3f" , pitch )
124
+ changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 pitch 'lerp( %.3f,%.3f,(T-%.3f)/%.3f)' " , last_pitch , pitch , lasttimePos , movementDuration )
124
125
end
125
126
last_pitch = pitch
126
127
127
128
if initPass or yaw ~= last_yaw or maximumTimeoutReached then
128
- changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 yaw %.3f" , yaw )
129
+ changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 yaw 'lerp( %.3f,%.3f,(T-%.3f)/%.3f)' " , last_yaw , yaw , lasttimePos , movementDuration )
129
130
end
130
131
last_yaw = yaw
131
132
132
133
133
134
if initPass or roll ~= last_roll or maximumTimeoutReached then
134
- changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 roll %.3f" , roll )
135
+ changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 roll 'lerp( %.3f,%.3f,(T-%.3f)/%.3f)' " , last_roll , roll , lasttimePos , movementDuration )
135
136
end
136
137
last_roll = roll
137
138
138
139
if initPass or dfov ~= last_dfov or maximumTimeoutReached then
139
- changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 d_fov %.3f" , dfov )
140
+ changedValues [# changedValues + 1 ]= string.format (" , [expr] v360 d_fov 'lerp( %.3f,%.3f,(T-%.3f)/%.3f)' " , last_dfov , dfov , lasttimePos , movementDuration )
140
141
end
141
142
last_dfov = dfov
142
143
0 commit comments