combineRotations = function( rotations ) {

            // No rotation
            if ( rotations.length <= 0 ) {
                return { x:0, y:0, z:0, order:"xyz" };
            }

            // Find out the base coordinate
            var coordinate = worldUnitCoordinate;

            // One by one apply rotations in order
            for ( var i = 0; i < rotations.length; i++ ) {
                coordinate = rotateCoordinate( coordinate, rotations[ i ] );
            }

            // Calculate one rotation from unit coordinate to rotated
            // coordinate.  Because there're multiple possibles,
            // select the one nearest to the base
            var rotate = coordinateToRotation( rotations[ 0 ], coordinate );

            return rotate;
        }
Apply a relative rotation to the base rotation.

Calculate the coordinate after the rotation on each axis,
and finally find out a one step rotation has the effect
of two rotation.

If there're multiple way to accomplish, select the one
that is nearest to the base.

Return one rotation has the same effect.