4jcraft/Minecraft.World/Util/Mth.h
2026-03-21 17:37:16 -05:00

55 lines
1.9 KiB
C++

#pragma once
class Random;
class Mth {
private:
static const int BIG_ENOUGH_INT;
static const float BIG_ENOUGH_FLOAT;
public:
static const float DEGRAD;
static const float RADDEG;
static const float RAD_TO_GRAD;
static const int64_t UUID_VERSION = 0x000000000000f000L;
static const int64_t UUID_VERSION_TYPE_4 = 0x0000000000004000L;
static const int64_t UUID_VARIANT = 0xc000000000000000L;
static const int64_t UUID_VARIANT_2 = 0x8000000000000000L;
private:
static float* _sin;
private:
static const float sinScale;
public:
static void init(); // 4J added
static float sin(float i);
static float cos(float i);
static float sqrt(float x);
static float sqrt(double x);
static int floor(float v);
static int64_t lfloor(double v);
static int fastFloor(double x);
static int floor(double v);
static int absFloor(double v);
static float abs(float v);
static int abs(int v);
static int ceil(float v);
static int clamp(int value, int min, int max);
static float clamp(float value, float min, float max);
static double asbMax(double a, double b);
static int intFloorDiv(int a, int b);
static int nextInt(Random* random, int minInclusive, int maxInclusive);
static float nextFloat(Random* random, float min, float max);
static double nextDouble(Random* random, double min, double max);
static float wrapDegrees(float input);
static double wrapDegrees(double input);
static std::wstring createInsecureUUID(Random* random);
static int getInt(const std::wstring& input, int def);
static int getInt(const std::wstring& input, int def, int min);
static double getDouble(const std::wstring& input, double def);
static double getDouble(const std::wstring& input, double def, double min);
// 4J Added
static bool almostEquals(double double1, double double2, double precision);
};