docs: public void setEulerAngles(double attitude, double bank, double heading, CoordinateSystem3D system) {
  		CoordinateSystem3D cs = (system == null) ? CoordinateSystem3D.getDefaultCoordinateSystem() : system;
  
  		double c1 = Math.cos(heading / 2.);
  		double s1 = Math.sin(heading / 2.);
  		double c2 = Math.cos(attitude / 2.);
  		double s2 = Math.sin(attitude / 2.);
  		double c3 = Math.cos(bank / 2.);
  		double s3 = Math.sin(bank / 2.);
  
  		double x1, y1, z1, w1;
  
  		// Source: http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm
  		// Standard used: XZY_RIGHT_HAND
  		double c1c2 = c1 * c2;
  		double s1s2 = s1 * s2;
  		w1 = c1c2 * c3 - s1s2 * s3;
  		x1 = c1c2 * s3 + s1s2 * c3;
  		y1 = s1 * c2 * c3 + c1 * s2 * s3;
  		z1 = c1 * s2 * c3 - s1 * c2 * s3;
  
  		set(x1, y1, z1, w1);
  		CoordinateSystem3D.XZY_RIGHT_HAND.toSystem(this, cs);
  	}