public readonly record struct SurfaceCoordinateWhere on a body a goal is, expressed so it means the same thing on another body.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
⚠ Three sources, chosen independently, and that is the decision rather than a convenience. Collapsing origin, orientation and scale into one choice is what forces an author to pick the least-wrong single frame and then hand-correct the result — because the three genuinely want different sources more often than not. Project the origin onto a surface, take the orientation from a bone, take the scale from the world so a one-centimetre gap stays one centimetre. It costs almost nothing: the resolve is three steps either way, and this lets each name its own source.
The surface, axis and limb forms are what you get by leaving the other two alone; they are special cases of this and not separate types.
Fields and properties (9)
public Symbol ShapeWhich proxy shape, by name.
public Facet TagWhich proxy shape, by what it affords. Used when Shape names nothing.
public OriginSource OriginWhere the origin comes from.
public SurfacePoint PointThe place on the surface, for Surface.
public Vector3 DirectionThe direction out of the shape's centre, for Axis, in the shape's own space.
public LimbSpan LimbThe limb, for Limb.
public Vector3 ResidualWhat was left over when the authored point was projected onto the surface, in the surface's own frame.
public OrientationSource OrientationWhere the orientation comes from.
public ScaleSource ScaleWhere the scale comes from.
Methods (7)
public static SurfaceCoordinate On(string shape, SurfacePoint point)A place on a named shape's surface.
public static SurfaceCoordinate Affording(string key, string value, SurfacePoint point)A place on whichever shape affords something.
public static SurfaceCoordinate Along(string shape, Vector3 direction)Wherever a direction out of a shape's centre exits its surface.
public static SurfaceCoordinate OnLimb(int from, int to, float along)A fraction of the way down a limb.
public static SurfaceCoordinate AtJoint(int joint)A joint, with no shape involved.
public SurfaceCoordinate From(OrientationSource orientation, ScaleSource scale)The same coordinate, taking its orientation and scale from somewhere else.
public SurfaceCoordinate Offset(Vector3 residual, bool unscaled = true)The same coordinate, with a gap held off the surface.
Used by (9)
- ConstraintStageBenchmarksVixen.Benchmarks.Animation
- AttachmentSocketVixen.Animation
- ConstraintFrameRecordVixen.Animation
- ConstraintGizmosVixen.Animation
- ProxyShapeTestsVixen.Animation.Tests
- SurfaceFrameVixen.Animation
- TrajectoryFrameVixen.Animation
- TrajectoryTestsVixen.Animation.Tests
- VariationHarnessVixen.Animation