public static ImmutableTransform Subtract(this ImmutableTransform source, ImmutableTransform other) { return(source .Translate(-other.Position) .Rotate(Quaternion.Inverse(other.Rotation)) .UpdateScale(source.Scale.Divide(other.Scale))); }
public static ImmutableTransform Add(this ImmutableTransform source, ImmutableTransform other) { return(source .Translate(other.Position) .Rotate(other.Rotation) .Scale(other.Scale)); }
public static ImmutableTransform TranslateLocally(this ImmutableTransform t, Vector3 translation) { return(t.Translate(translation, t.Rotation)); }
public static ImmutableTransform Translate(this ImmutableTransform t, Vector3 translation) { return(t.Translate(translation, Quaternion.identity)); }
public static ImmutableTransform TranslateLocally(this ImmutableTransform t, float x = 0f, float y = 0f, float z = 0f) { return(t.Translate(new Vector3(x, y, z), t.Rotation)); }
public static ImmutableTransform Translate(this ImmutableTransform t, float x = 0f, float y = 0f, float z = 0f) { return(t.Translate(new Vector3(x, y, z), Quaternion.identity)); }