public static M33d Multiply(Rot2d rot2, Rot3d rot3) { return(Rot2d.Multiply(rot2, (M33d)rot3)); }
/// <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 Euclidean2d Multiply(Euclidean2d a, Euclidean2d b) { //a.Rot * b.Rot, a.Trans + a.Rot * b.Trans return(new Euclidean2d(Rot2d.Multiply(a.Rot, b.Rot), a.Trans + a.Rot.TransformDir(b.Trans))); }
/// <summary> /// </summary> public static M33d operator *(Rot2d rot, Scale3d scale) { return(Rot2d.Multiply(rot, scale)); }
/// <summary> /// </summary> public static M34d operator *(Rot2d rot, Shift3d shift) { return(Rot2d.Multiply(rot, shift)); }
/// <summary> /// </summary> public static Rot2d operator *(Rot2d r0, Rot2d r1) { return(Rot2d.Multiply(r0, r1)); }
/// <summary> /// </summary> public static M33d operator *(Rot2d rot2, Rot3d rot3) { return(Rot2d.Multiply(rot2, rot3)); }
/// <summary> /// </summary> public static M44d operator *(Rot2d rot, M44d mat) { return(Rot2d.Multiply(rot, mat)); }
/// <summary> /// </summary> public static V4d operator *(Rot2d rot, V4d vec) { return(Rot2d.Multiply(rot, vec)); }
/// <summary> /// Multiplies rotation with scalar value. /// </summary> public static Rot2d operator *(double val, Rot2d rot) { return(Rot2d.Multiply(rot, val)); }