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);