quantFromAxis method

List<double> quantFromAxis(
  1. QuaternionOrientation orientation, [
  2. List<double>? multiply
])

Implementation

List<double> quantFromAxis(QuaternionOrientation orientation, [List<double>? multiply]){
  multiply ??= [1,1,1,1];
  switch (orientation) {
    case QuaternionOrientation.xyzw:
      return [x*multiply[0],y*multiply[1],z*multiply[2],w*multiply[3]];
    case QuaternionOrientation.wxyz:
      return [w*multiply[3],x*multiply[0],y*multiply[1],z*multiply[2]];
    case QuaternionOrientation.yzwx:
      return [y*multiply[1],z*multiply[2],w*multiply[3],x*multiply[0]];
    case QuaternionOrientation.zwxy:
      return [z*multiply[2],w*multiply[3],x*multiply[0],y*multiply[1]];
    case QuaternionOrientation.wzyx:
      return [w*multiply[3],z*multiply[2],y*multiply[1],x*multiply[0]];
    case QuaternionOrientation.yxzw:
      return [y*multiply[1],x*multiply[0],z*multiply[2],w*multiply[3]];
    case QuaternionOrientation.zxyw:
      return [z*multiply[2],x*multiply[0],y*multiply[1],w*multiply[3]];
    case QuaternionOrientation.xwyz:
      return [x*multiply[0],w*multiply[3],y*multiply[1],z*multiply[2]];
    case QuaternionOrientation.wyzx:
      return [w*multiply[3],y*multiply[1],z*multiply[2],x*multiply[0]];
    case QuaternionOrientation.zxwy:
      return [z*multiply[2],x*multiply[0],w*multiply[3],y*multiply[1]];
  }
}