function getIndices( slide ) {

		// By default, return the current indices
		let h = indexh,
			v = indexv,
			f;

		// If a slide is specified, return the indices of that slide
		if( slide ) {
			// In scroll mode the original h/x index is stored on the slide
			if( scrollView.isActive() ) {
				h = parseInt( slide.getAttribute( 'data-index-h' ), 10 );

				if( slide.getAttribute( 'data-index-v' ) ) {
					v = parseInt( slide.getAttribute( 'data-index-v' ), 10 );
				}
			}
			else {
				let isVertical = isVerticalSlide( slide );
				let slideh = isVertical ? slide.parentNode : slide;

				// Select all horizontal slides
				let horizontalSlides = getHorizontalSlides();

				// Now that we know which the horizontal slide is, get its index
				h = Math.max( horizontalSlides.indexOf( slideh ), 0 );

				// Assume we're not vertical
				v = undefined;

				// If this is a vertical slide, grab the vertical index
				if( isVertical ) {
					v = Math.max( Util.queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );
				}
			}
		}

		if( !slide && currentSlide ) {
			let hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;
			if( hasFragments ) {
				let currentFragment = currentSlide.querySelector( '.current-fragment' );
				if( currentFragment && currentFragment.hasAttribute( 'data-fragment-index' ) ) {
					f = parseInt( currentFragment.getAttribute( 'data-fragment-index' ), 10 );
				}
				else {
					f = currentSlide.querySelectorAll( '.fragment.visible' ).length - 1;
				}
			}
		}

		return { h, v, f };

	}
Retrieves the h/v location and fragment of the current,
or specified, slide.

@param {HTMLElement} [slide] If specified, the returned
index will be for this slide rather than the currently
active one

@return {{h: number, v: number, f: number}}