Data model for a reversible wrist position offset applied in capture-camera metres. It stores which hand (BoneRole), start and end times, a 3-element float offset, fade duration and enabled flag, and provides a Copy method that clones the instance and the offset array.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using HumanoidMocap.Core.Mapping;
namespace HumanoidMocap.Core.Motion;
using Vector3 = System.Numerics.Vector3;
/// <summary>Reversible target edit in capture-camera metres. Never a reconstructed observation.</summary>
public sealed class WristPositionOffset
{
public BoneRole Hand { get; set; } = BoneRole.HandR;
public double Start { get; set; }
public double End { get; set; }
public float[] Offset { get; set; } = new float[3];
public double FadeSeconds { get; set; } = .1;
public bool Enabled { get; set; } = true;
public WristPositionOffset Copy()=>new(){Hand=Hand,Start=Start,End=End,Offset=Offset.ToArray(),FadeSeconds=FadeSeconds,Enabled=Enabled};
}