/// <summary> /// </summary> public static M34f operator *(Rot2f rot, Shift3f shift) { return(Rot2f.Multiply(rot, shift)); }
/// <summary> /// Multiplies 2 Euclidean transformations. /// This concatenates the two rigid transformations into a single one, first b is applied, then a. /// Attention: Multiplication is NOT commutative! /// </summary> public static Euclidean2f Multiply(Euclidean2f a, Euclidean2f b) { //a.Rot * b.Rot, a.Trans + a.Rot * b.Trans return(new Euclidean2f(Rot2f.Multiply(a.Rot, b.Rot), a.Trans + a.Rot.TransformDir(b.Trans))); }
/// <summary> /// </summary> public static Rot2f operator *(Rot2f r0, Rot2f r1) { return(Rot2f.Multiply(r0, r1)); }
/// <summary> /// </summary> public static M33f operator *(Rot2f rot, Scale3f scale) { return(Rot2f.Multiply(rot, scale)); }
/// <summary> /// </summary> public static M33f operator *(Rot2f rot2, Rot3f rot3) { return(Rot2f.Multiply(rot2, rot3)); }
/// <summary> /// </summary> public static M44f operator *(Rot2f rot, M44f mat) { return(Rot2f.Multiply(rot, mat)); }
/// <summary> /// </summary> public static V4f operator *(Rot2f rot, V4f vec) { return(Rot2f.Multiply(rot, vec)); }
/// <summary> /// Multiplies rotation with scalar value. /// </summary> public static Rot2f operator *(float val, Rot2f rot) { return(Rot2f.Multiply(rot, val)); }
public static M33f Multiply(Rot2f rot2, Rot3f rot3) { return(Rot2f.Multiply(rot2, (M33f)rot3)); }