HumanoidMocap/Core/Motion/WristPositionOffset.cs

A simple data container representing a reversible wrist position offset applied in capture-camera meters. It stores which hand, a start and end time, a 3-component offset vector, fade duration and enabled flag, and provides a Copy method that duplicates the instance.

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};
}