AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ARandom.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#include <random>
   14#include <glm/glm.hpp>
   15#include <AUI/Common/AUuid.h>
   16#include "AUI/Core.h"
   17#include "AUI/Common/AByteBuffer.h"
   18
   19class API_AUI_CORE ARandom
   20{
   21private:
   22    std::default_random_engine mRandom;
   23
   24public:
   25    ARandom();
   26
   27    AUuid nextUuid() noexcept;
   28    int nextInt() noexcept;
   29    float nextFloat() noexcept;
   30    float nextFloat(float min, float max) noexcept;
   31    double nextDouble() noexcept;
   32    double nextDouble(double min, double max) noexcept;
   33    glm::vec2 nextVec2() noexcept;
   34    glm::vec2 nextVec2(float min, float max) noexcept;
   35    AByteBuffer nextBytes(unsigned count);
   36};
std::vector-like growing array for byte storage.
Definition AByteBuffer.h:31
Implements universally unique identifier (UUID)
Definition AUuid.h:26