15#include <AUI/View/AView.h> 
   18    API_AUI_UITESTS 
void frame();
 
   21        template<
int axisIndex>
 
   22        inline int axisAlignedDistanceBetween(
const _<AView>& v1, 
const _<AView>& v2) {
 
   23            auto begin1 = v1->getPositionInWindow()[axisIndex];
 
   24            auto begin2 = v2->getPositionInWindow()[axisIndex];
 
   25            auto end1   = begin1 + v1->getSize()[axisIndex];
 
   26            auto end2   = begin2 + v2->getSize()[axisIndex];
 
   28            return glm::min(glm::clamp(begin2, begin1, end1) - begin2,
 
   29                            glm::clamp(end2, begin1, end1) - end2);
 
   33    inline int horizontalDistanceBetween(
const _<AView>& v1, 
const _<AView>& v2) {
 
   34        return impl::axisAlignedDistanceBetween<0>(v1, v2);
 
   36    inline int verticalDistanceBetween(
const _<AView>& v1, 
const _<AView>& v2) {
 
   37        return impl::axisAlignedDistanceBetween<1>(v1, v2);