question: public double [ ] toEulerAngles ( ) { double [ ] ret = new double [ 3 ] ; ret [ 0 ] = Math . atan2 ( 2 * points [ 1 ] * getW ( ) - 2 * points [ 0 ] * points [ 2 ] , 1 - 2 * ( points [ 1 ] * points [ 1 ] ) - 2 * ( points [ 2 ] * points [ 2 ] ) ) ; ret [ 1 ] = Math . asin ( 2 * points [ 0 ] * points [ 1 ] + 2 * points [ 2 ] * getW ( ) ) ; ret [ 2 ] = Math . atan2 ( 2 * points [ 0 ] * getW ( ) - 2 * points [ 1 ] * points [ 2 ] , 1 - 2 * ( points [ 0 ] * points [ 0 ] ) - 2 * ( points [ 2 ] * points [ 2 ] ) ) ; return ret ; }
target:  Returns the heading, attitude and bank of this quaternion as euler angles in the double array respectively