public sealed class GoalTrajectoryA goal that moves: the whole curve, decomposed and decimated.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
A constant goal covers a contact that does not move. A hand sliding along a rail, or tracking a target through a throw, is this.
⚠ Two polylines rather than one, because they compress very differently. The frame's origin usually barely moves while the offset carries all the shape, so decimating their sum would keep every key either of them needed. Split, the origin often survives as two keys and the offset as a handful. The price is that the two errors add, so each is decimated against half the authored tolerance — which is stated here rather than discovered by somebody measuring a curve that was twice as far out as they asked for.
Fields and properties (5)
public TrajectoryCurve OriginWhere the frame the contact was expressed in went, as authored.
public TrajectoryCurve OffsetWhere the contact was relative to its frame, in the frame's own axes.
public SurfacePath? SurfaceWhere on the shape the contact ran, or .
public TrajectoryRotationCurve? RotationWhich way the contact faced, or .
public bool HasSurfaceWhether it names a path across a surface.
Methods (3)
public GoalTrajectory(TrajectoryCurve origin, TrajectoryCurve offset, SurfacePath? surface = null, TrajectoryRotationCurve? rotation = null)Builds a trajectory from curves that are already decimated.
public Vector3 Reconstruct(float phase)The authored path at a phase — origin plus offset, as stored.
public static GoalTrajectory Decompose(ReadOnlySpan<TrajectorySample> samples, TrajectoryTolerance tolerance, out TrajectoryReport report, bool rotations = false)Decomposes and decimates a captured contact.
Used by (2)
- TrajectoryFrameVixen.Animation
- TrajectoryTestsVixen.Animation.Tests