public double getProduitScalaire(cQuaternion quat) { return(this.w * quat.w + this.v.x * quat.v.x + this.v.y * quat.v.y + this.v.z * quat.v.z); }
public cQuaternion getDifference(cQuaternion quat) { var tmp = this.getInverse(); var res = quat.getMultiply(tmp); return(res); }
public cQuaternion minus(cQuaternion quat) { var res = this; res.v.minus(quat.v); res.w = res.w - quat.w; return(res); }
public cQuaternion add(cQuaternion quat) { var res = this; res.v.add(quat.v); res.w = res.w + quat.w; return(res); }
public cQuaternion negate() { var vRes = this.v; vRes.negate(); var res = new cQuaternion(-this.w, vRes); return(res); }
public cQuaternion getMultiply(cQuaternion quat) { var res = this; res.w = quat.w * res.w - quat.v.x * res.v.x - quat.v.y * res.v.y - quat.v.z * res.v.z; res.v.x = quat.w * res.v.x + quat.v.x * res.w - quat.v.y * res.v.z + quat.v.z * res.v.y; res.v.y = quat.w * res.v.y + quat.v.x * res.v.z + quat.v.y * res.w - quat.v.z * res.v.x; res.v.z = quat.w * res.v.z - quat.v.x * res.v.y + quat.v.y * res.v.x + quat.v.z * res.w; return(res); }
public cQuaternion getInverse() { var magnetude = this.getMagnetude(); var res = new cQuaternion(this.w / magnetude , this.v.x / magnetude , this.v.y / magnetude , this.v.z / magnetude); return(res); }