Vector3f Quaternion::QuaternionMultiply(Vector3f vec)
 {	 
	 Quaternion vectorQuaternion = VectorToQuaternion(vec);
	 Quaternion inverse = Inverse();
	 Quaternion result = vectorQuaternion.QuaternionMultiply(inverse);
	 result.Normalize();
	 Vector3f  r;
	 r.x = result.x;
	 r.y = result.y;
	 r.z = result.z;
	 return r;
}
Exemple #2
0
PNT QUATERNION::VectorTransform(const PNT& V)
{
	if( ((w>1-DELTA_ROT)&&(w<1+DELTA_ROT)) || 
		((w>-1-DELTA_ROT)&&(w<-1+DELTA_ROT)) ) return V;

	QUATERNION A, B, C;
	A=VectorToQuaternion(V);
	B=*this;
	QuaternionInverse(B);
	C=*this*A*B;
	return C.QuaternionToVector();
}