code: public void normalize() {
  		float d = 1.0f/( x*x+y*y+z*z+w*w );
  		x *= d;
  		y *= d;
  		z *= d;
  		w *= d;
  	}
docs: /*
  public void EulerToQuaternion(float roll, float pitch, float yaw)
  {
  float cr, cp, cy, sr, sp, sy, cpcy, spsy;
  cr = cos(roll/2);
  cp = cos(pitch/2);
  cy = cos(yaw/2);
  sr = sin(roll/2);
  sp = sin(pitch/2);
  sy = sin(yaw/2);
  cpcy = cp * cy;
  spsy = sp * sy;
  w = cr * cpcy + sr * spsy;
  x = sr * cpcy - cr * spsy;
  y = cr * sp * cy + sr * cp * sy;
  z = cr * cp * sy - sr * sp * cy;
  }