AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ASide.h
    1/*
    2 * AUI Framework - Declarative UI toolkit for modern C++20
    3 * Copyright (C) 2020-2025 Alex2772 and Contributors
    4 *
    5 * SPDX-License-Identifier: MPL-2.0
    6 *
    7 * This Source Code Form is subject to the terms of the Mozilla Public
    8 * License, v. 2.0. If a copy of the MPL was not distributed with this
    9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   10 */
   11
   12#pragma once
   13
   14#include <glm/glm.hpp>
   15
   16
   17#include "AUI/Reflect/AEnumerate.h"
   18
   25    NONE = 0,
   26    LEFT = 1,
   27    RIGHT = 2,
   28    TOP = 4,
   29    BOTTOM = 8,
   30
   31    LEFT_RIGHT = ASide::LEFT | ASide::RIGHT,
   32    TOP_BOTTOM = ASide::TOP | ASide::BOTTOM,
   33
   34    CORNER_TOPLEFT = ASide::LEFT | ASide::TOP,
   35    CORNER_TOPRIGHT = ASide::RIGHT | ASide::TOP,
   36    CORNER_BOTTOMLEFT = ASide::LEFT | ASide::BOTTOM,
   37    CORNER_BOTTOMRIGHT = ASide::RIGHT | ASide::BOTTOM,
   38
   39    ALL = ASide::LEFT | ASide::RIGHT | ASide::TOP | ASide::BOTTOM,
   40
   41    EXCEPT_LEFT = ALL & ~ASide::LEFT,
   42    EXCEPT_RIGHT = ALL & ~ASide::RIGHT,
   43    EXCEPT_TOP = ALL & ~ASide::TOP,
   44    EXCEPT_BOTTOM = ALL & ~ASide::BOTTOM,
   45};
   46namespace ASides {
   47    API_AUI_CORE glm::vec2 getNormalVector(ASide s);
   48
   49    constexpr ASide inverse(const ASide& s) {
   50        switch (s) {
   51            case ASide::LEFT:
   52                return ASide::RIGHT;
   53            case ASide::RIGHT:
   54                return ASide::RIGHT;
   55            case ASide::TOP:
   56                return ASide::TOP;
   57            case ASide::BOTTOM:
   58                return ASide::BOTTOM;
   59            default:
   60                return ASide::NONE;
   61        }
   62    }
   63}
@ RIGHT
Definition AFloat.h:35
@ LEFT
Definition AFloat.h:29
@ NONE
Definition AFloat.h:23
#define AUI_ENUM_FLAG(name)
Make a bitfield-style enum class.
Definition AEnumerate.h:227