public sealed class SurfacePathA path across a proxy shape's surface, over clip phase.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
⚠ This is what makes a slide reproduce on a rail of a different length and radius. A world-space offset polyline replays the same centimetres on every body; a path in normalised surface coordinates replays the same fractions, so a hand that ran from a fifth of the way along a rail to four fifths of the way along it does that on a rail of any size.
⚠ U is unwrapped before decimation and wrapped on the way out. It is an angle on a round shape, so a slide that crosses the seam reads as a jump from 0.98 to 0.02 — and a decimator handed that either keeps every key around the seam or, worse, averages through it and sends the contact the long way round the limb.
Fields and properties (2)
public int CountHow many keys survived.
public ReadOnlySpan<SurfacePathKey> KeysThe keys.
Methods (3)
public SurfacePath(params ReadOnlySpan<SurfacePathKey> keys)Builds a path from keys already in phase order.
public SurfacePoint Sample(float phase)Where on the surface the path is at a phase.
public static SurfacePath Decimate(ReadOnlySpan<SurfacePathKey> source, float tolerance, out CurveCompressionReport report)Removes the keys a lerping sampler would have produced anyway.
Used by (3)
- GoalTrajectoryVixen.Animation
- TrajectoryFrameVixen.Animation
- TrajectoryTestsVixen.Animation.Tests