public Affine2f Lerp(Affine2f other, float t) { if (Generality() < other.Generality()) { return(other.Lerp(this, -t)); } Affine2f ot = (other is Affine2f) ? (Affine2f)other : new Affine2f(other); return(new Affine2f(m00 + t * (ot.m00 - m00), m01 + t * (ot.m01 - m01), m10 + t * (ot.m10 - m10), m11 + t * (ot.m11 - m11), tx + t * (ot.tx - tx), ty + t * (ot.ty - ty))); }
public Affine2f PreConcatenate(Affine2f other) { if (Generality() < other.Generality()) { return(other.Concatenate(this)); } if (other is Affine2f) { return(Multiply((Affine2f)other, this, new Affine2f())); } else { Affine2f oaff = new Affine2f(other); return(Multiply(oaff, this, oaff)); } }