Vixen
02b45cc4
csharp
public sealed class SurfacePath

A 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 Count

    How many keys survived.

  • public ReadOnlySpan<SurfacePathKey> Keys

    The 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