/// <summary>
 /// Multiplies 2 Similarity transformations.
 /// This concatenates the two similarity transformations into a single one, first b is applied, then a.
 /// Attention: Multiplication is NOT commutative!
 /// </summary>
 public static Similarity__x3t__ Multiply(Similarity__x3t__ a, Similarity__x3t__ b)
 {
     //a.Scale * b.Scale, a.Rot * b.Rot, a.Trans + a.Rot * a.Scale * b.Trans
     return(new Similarity__x3t__(a.Scale * b.Scale, new Euclidean__x3t__(
                                      Rot__x3t__.Multiply(a.Rot, b.Rot),
                                      a.Trans + a.Rot.TransformDir(a.Scale * b.Trans))
                                  ));
 }
Esempio n. 2
0
 /// <summary>
 /// Creates rotational matrix from quaternion.
 /// </summary>
 /// <returns>Rotational matrix.</returns>
 public static M4__x4t__ Rotation(Rot__x3t__ r)
 {
     return((M4__x4t__)r);
 }
Esempio n. 3
0
 public static M3__x4t__ Rotation(Rot__x3t__ q)
 {
     return((M3__x4t__)q);
 }
Esempio n. 4
0
 public static M3__x3t__ Multiply(Scale__x3t__ scale, Rot__x3t__ rot)
 {
     return(Scale__x3t__.Multiply(scale, (M3__x3t__)rot));
 }