33 public void SampleTransform(
long timestamp, out Vector3 delayedPos, out Quaternion delayedRot) {
35 delayedPos = desiredTransform.
position;
36 delayedRot = desiredTransform.
rotation;
48 float fraction = (float)(((
double)(
time - from.
time)) / ((double)(to.
time - from.
time)));
57 for (
int i =
history.Count - 1; i > 0; i--) {
58 if (
history.Get(i).time >= desiredTime &&
history.Get(i - 1).time < desiredTime) {
Implements a resample-able transform history.
void SampleTransform(long timestamp, out Vector3 delayedPos, out Quaternion delayedRot)
RingBuffer< TransformData > history
void UpdateDelay(Pose curPose, long timestamp)
TransformHistory(int capacity=32)
A position and rotation. You can multiply two poses; this acts like Matrix4x4 multiplication,...
static TransformData Lerp(TransformData from, TransformData to, long time)
static TransformData GetTransformAtTime(RingBuffer< TransformData > history, long desiredTime)