using UnityEngine;
namespace LitMotion.Extensions
{
///
/// Provides binding extension methods for Transform.
///
public static class LitMotionTransformExtensions
{
///
/// Create a motion data and bind it to Transform.position
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPosition(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.position = x;
});
}
///
/// Create a motion data and bind it to Transform.position.x
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionX(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.x = x;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.position.y
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.y = x;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.position.z
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.z = x;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.position.xy
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionXY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.x = x.x;
p.y = x.y;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.position.xz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionXZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.x = x.x;
p.z = x.y;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.position.yz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToPositionYZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.position;
p.y = x.x;
p.z = x.y;
t.position = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPosition(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.localPosition = x;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.x
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionX(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.x = x;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.y
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.y = x;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.z
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.z = x;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.xy
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionXY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.x = x.x;
p.y = x.y;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.xz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionXZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.x = x.x;
p.z = x.y;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.localPosition.yz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalPositionYZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localPosition;
p.y = x.x;
p.z = x.y;
t.localPosition = p;
});
}
///
/// Create a motion data and bind it to Transform.rotation
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToRotation(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.rotation = x;
});
}
///
/// Create a motion data and bind it to Transform.localRotation
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalRotation(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.localRotation = x;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAngles(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.eulerAngles = x;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.x
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesX(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.x = x;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.y
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.y = x;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.z
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.z = x;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.xy
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesXY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.x = x.x;
p.y = x.y;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.xz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesXZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.x = x.x;
p.z = x.y;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.eulerAngles.yz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToEulerAnglesYZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.eulerAngles;
p.y = x.x;
p.z = x.y;
t.eulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAngles(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.localEulerAngles = x;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.x
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesX(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.x = x;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.y
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.y = x;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.z
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.z = x;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.xy
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesXY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.x = x.x;
p.y = x.y;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.xz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesXZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.x = x.x;
p.z = x.y;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localEulerAngles.yz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalEulerAnglesYZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localEulerAngles;
p.y = x.x;
p.z = x.y;
t.localEulerAngles = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScale(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
t.localScale = x;
});
}
///
/// Create a motion data and bind it to Transform.localScale.x
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleX(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.x = x;
t.localScale = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale.y
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.y = x;
t.localScale = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale.z
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.z = x;
t.localScale = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale.xy
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleXY(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.x = x.x;
p.y = x.y;
t.localScale = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale.xz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleXZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.x = x.x;
p.z = x.y;
t.localScale = p;
});
}
///
/// Create a motion data and bind it to Transform.localScale.yz
///
/// The type of special parameters given to the motion data
/// The type of adapter that support value animation
/// This builder
///
/// Handle of the created motion data.
public static MotionHandle BindToLocalScaleYZ(this MotionBuilder builder, Transform transform)
where TOptions : unmanaged, IMotionOptions
where TAdapter : unmanaged, IMotionAdapter
{
Error.IsNull(transform);
return builder.BindWithState(transform, static (x, t) =>
{
var p = t.localScale;
p.y = x.x;
p.z = x.y;
t.localScale = p;
});
}
}
}