Files
Dec2017-Script-Dump/UnityEngine/Mathf.cs
T
2026-06-04 11:42:34 +02:00

649 lines
17 KiB
C#

using System;
using System.Runtime.CompilerServices;
using UnityEngine.Internal;
using UnityEngine.Scripting;
using UnityEngineInternal;
namespace UnityEngine
{
// Token: 0x02000087 RID: 135
public struct Mathf
{
// Token: 0x060009E9 RID: 2537
[ThreadAndSerializationSafe]
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern int ClosestPowerOfTwo(int value);
// Token: 0x060009EA RID: 2538
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float GammaToLinearSpace(float value);
// Token: 0x060009EB RID: 2539
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float LinearToGammaSpace(float value);
// Token: 0x060009EC RID: 2540 RVA: 0x0000EAE4 File Offset: 0x0000CCE4
public static Color CorrelatedColorTemperatureToRGB(float kelvin)
{
Color color;
Mathf.INTERNAL_CALL_CorrelatedColorTemperatureToRGB(kelvin, out color);
return color;
}
// Token: 0x060009ED RID: 2541
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void INTERNAL_CALL_CorrelatedColorTemperatureToRGB(float kelvin, out Color value);
// Token: 0x060009EE RID: 2542
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsPowerOfTwo(int value);
// Token: 0x060009EF RID: 2543
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern int NextPowerOfTwo(int value);
// Token: 0x060009F0 RID: 2544
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float PerlinNoise(float x, float y);
// Token: 0x060009F1 RID: 2545
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern ushort FloatToHalf(float val);
// Token: 0x060009F2 RID: 2546
[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float HalfToFloat(ushort val);
// Token: 0x060009F3 RID: 2547 RVA: 0x0000EB04 File Offset: 0x0000CD04
public static float Sin(float f)
{
return (float)Math.Sin((double)f);
}
// Token: 0x060009F4 RID: 2548 RVA: 0x0000EB24 File Offset: 0x0000CD24
public static float Cos(float f)
{
return (float)Math.Cos((double)f);
}
// Token: 0x060009F5 RID: 2549 RVA: 0x0000EB44 File Offset: 0x0000CD44
public static float Tan(float f)
{
return (float)Math.Tan((double)f);
}
// Token: 0x060009F6 RID: 2550 RVA: 0x0000EB64 File Offset: 0x0000CD64
public static float Asin(float f)
{
return (float)Math.Asin((double)f);
}
// Token: 0x060009F7 RID: 2551 RVA: 0x0000EB84 File Offset: 0x0000CD84
public static float Acos(float f)
{
return (float)Math.Acos((double)f);
}
// Token: 0x060009F8 RID: 2552 RVA: 0x0000EBA4 File Offset: 0x0000CDA4
public static float Atan(float f)
{
return (float)Math.Atan((double)f);
}
// Token: 0x060009F9 RID: 2553 RVA: 0x0000EBC4 File Offset: 0x0000CDC4
public static float Atan2(float y, float x)
{
return (float)Math.Atan2((double)y, (double)x);
}
// Token: 0x060009FA RID: 2554 RVA: 0x0000EBE4 File Offset: 0x0000CDE4
public static float Sqrt(float f)
{
return (float)Math.Sqrt((double)f);
}
// Token: 0x060009FB RID: 2555 RVA: 0x0000EC04 File Offset: 0x0000CE04
public static float Abs(float f)
{
return Math.Abs(f);
}
// Token: 0x060009FC RID: 2556 RVA: 0x0000EC20 File Offset: 0x0000CE20
public static int Abs(int value)
{
return Math.Abs(value);
}
// Token: 0x060009FD RID: 2557 RVA: 0x0000EC3C File Offset: 0x0000CE3C
public static float Min(float a, float b)
{
return (a >= b) ? b : a;
}
// Token: 0x060009FE RID: 2558 RVA: 0x0000EC60 File Offset: 0x0000CE60
public static float Min(params float[] values)
{
int num = values.Length;
float num2;
if (num == 0)
{
num2 = 0f;
}
else
{
float num3 = values[0];
for (int i = 1; i < num; i++)
{
if (values[i] < num3)
{
num3 = values[i];
}
}
num2 = num3;
}
return num2;
}
// Token: 0x060009FF RID: 2559 RVA: 0x0000ECB0 File Offset: 0x0000CEB0
public static int Min(int a, int b)
{
return (a >= b) ? b : a;
}
// Token: 0x06000A00 RID: 2560 RVA: 0x0000ECD4 File Offset: 0x0000CED4
public static int Min(params int[] values)
{
int num = values.Length;
int num2;
if (num == 0)
{
num2 = 0;
}
else
{
int num3 = values[0];
for (int i = 1; i < num; i++)
{
if (values[i] < num3)
{
num3 = values[i];
}
}
num2 = num3;
}
return num2;
}
// Token: 0x06000A01 RID: 2561 RVA: 0x0000ED20 File Offset: 0x0000CF20
public static float Max(float a, float b)
{
return (a <= b) ? b : a;
}
// Token: 0x06000A02 RID: 2562 RVA: 0x0000ED44 File Offset: 0x0000CF44
public static float Max(params float[] values)
{
int num = values.Length;
float num2;
if (num == 0)
{
num2 = 0f;
}
else
{
float num3 = values[0];
for (int i = 1; i < num; i++)
{
if (values[i] > num3)
{
num3 = values[i];
}
}
num2 = num3;
}
return num2;
}
// Token: 0x06000A03 RID: 2563 RVA: 0x0000ED94 File Offset: 0x0000CF94
public static int Max(int a, int b)
{
return (a <= b) ? b : a;
}
// Token: 0x06000A04 RID: 2564 RVA: 0x0000EDB8 File Offset: 0x0000CFB8
public static int Max(params int[] values)
{
int num = values.Length;
int num2;
if (num == 0)
{
num2 = 0;
}
else
{
int num3 = values[0];
for (int i = 1; i < num; i++)
{
if (values[i] > num3)
{
num3 = values[i];
}
}
num2 = num3;
}
return num2;
}
// Token: 0x06000A05 RID: 2565 RVA: 0x0000EE04 File Offset: 0x0000D004
public static float Pow(float f, float p)
{
return (float)Math.Pow((double)f, (double)p);
}
// Token: 0x06000A06 RID: 2566 RVA: 0x0000EE24 File Offset: 0x0000D024
public static float Exp(float power)
{
return (float)Math.Exp((double)power);
}
// Token: 0x06000A07 RID: 2567 RVA: 0x0000EE44 File Offset: 0x0000D044
public static float Log(float f, float p)
{
return (float)Math.Log((double)f, (double)p);
}
// Token: 0x06000A08 RID: 2568 RVA: 0x0000EE64 File Offset: 0x0000D064
public static float Log(float f)
{
return (float)Math.Log((double)f);
}
// Token: 0x06000A09 RID: 2569 RVA: 0x0000EE84 File Offset: 0x0000D084
public static float Log10(float f)
{
return (float)Math.Log10((double)f);
}
// Token: 0x06000A0A RID: 2570 RVA: 0x0000EEA4 File Offset: 0x0000D0A4
public static float Ceil(float f)
{
return (float)Math.Ceiling((double)f);
}
// Token: 0x06000A0B RID: 2571 RVA: 0x0000EEC4 File Offset: 0x0000D0C4
public static float Floor(float f)
{
return (float)Math.Floor((double)f);
}
// Token: 0x06000A0C RID: 2572 RVA: 0x0000EEE4 File Offset: 0x0000D0E4
public static float Round(float f)
{
return (float)Math.Round((double)f);
}
// Token: 0x06000A0D RID: 2573 RVA: 0x0000EF04 File Offset: 0x0000D104
public static int CeilToInt(float f)
{
return (int)Math.Ceiling((double)f);
}
// Token: 0x06000A0E RID: 2574 RVA: 0x0000EF24 File Offset: 0x0000D124
public static int FloorToInt(float f)
{
return (int)Math.Floor((double)f);
}
// Token: 0x06000A0F RID: 2575 RVA: 0x0000EF44 File Offset: 0x0000D144
public static int RoundToInt(float f)
{
return (int)Math.Round((double)f);
}
// Token: 0x06000A10 RID: 2576 RVA: 0x0000EF64 File Offset: 0x0000D164
public static float Sign(float f)
{
return (f < 0f) ? (-1f) : 1f;
}
// Token: 0x06000A11 RID: 2577 RVA: 0x0000EF94 File Offset: 0x0000D194
public static float Clamp(float value, float min, float max)
{
if (value < min)
{
value = min;
}
else if (value > max)
{
value = max;
}
return value;
}
// Token: 0x06000A12 RID: 2578 RVA: 0x0000EFC4 File Offset: 0x0000D1C4
public static int Clamp(int value, int min, int max)
{
if (value < min)
{
value = min;
}
else if (value > max)
{
value = max;
}
return value;
}
// Token: 0x06000A13 RID: 2579 RVA: 0x0000EFF4 File Offset: 0x0000D1F4
public static float Clamp01(float value)
{
float num;
if (value < 0f)
{
num = 0f;
}
else if (value > 1f)
{
num = 1f;
}
else
{
num = value;
}
return num;
}
// Token: 0x06000A14 RID: 2580 RVA: 0x0000F038 File Offset: 0x0000D238
public static float Lerp(float a, float b, float t)
{
return a + (b - a) * Mathf.Clamp01(t);
}
// Token: 0x06000A15 RID: 2581 RVA: 0x0000F05C File Offset: 0x0000D25C
public static float LerpUnclamped(float a, float b, float t)
{
return a + (b - a) * t;
}
// Token: 0x06000A16 RID: 2582 RVA: 0x0000F078 File Offset: 0x0000D278
public static float LerpAngle(float a, float b, float t)
{
float num = Mathf.Repeat(b - a, 360f);
if (num > 180f)
{
num -= 360f;
}
return a + num * Mathf.Clamp01(t);
}
// Token: 0x06000A17 RID: 2583 RVA: 0x0000F0B8 File Offset: 0x0000D2B8
public static float MoveTowards(float current, float target, float maxDelta)
{
float num;
if (Mathf.Abs(target - current) <= maxDelta)
{
num = target;
}
else
{
num = current + Mathf.Sign(target - current) * maxDelta;
}
return num;
}
// Token: 0x06000A18 RID: 2584 RVA: 0x0000F0F0 File Offset: 0x0000D2F0
public static float MoveTowardsAngle(float current, float target, float maxDelta)
{
float num = Mathf.DeltaAngle(current, target);
float num2;
if (-maxDelta < num && num < maxDelta)
{
num2 = target;
}
else
{
target = current + num;
num2 = Mathf.MoveTowards(current, target, maxDelta);
}
return num2;
}
// Token: 0x06000A19 RID: 2585 RVA: 0x0000F130 File Offset: 0x0000D330
public static float SmoothStep(float from, float to, float t)
{
t = Mathf.Clamp01(t);
t = -2f * t * t * t + 3f * t * t;
return to * t + from * (1f - t);
}
// Token: 0x06000A1A RID: 2586 RVA: 0x0000F174 File Offset: 0x0000D374
public static float Gamma(float value, float absmax, float gamma)
{
bool flag = false;
if (value < 0f)
{
flag = true;
}
float num = Mathf.Abs(value);
float num2;
if (num > absmax)
{
num2 = ((!flag) ? num : (-num));
}
else
{
float num3 = Mathf.Pow(num / absmax, gamma) * absmax;
num2 = ((!flag) ? num3 : (-num3));
}
return num2;
}
// Token: 0x06000A1B RID: 2587 RVA: 0x0000F1D4 File Offset: 0x0000D3D4
public static bool Approximately(float a, float b)
{
return Mathf.Abs(b - a) < Mathf.Max(1E-06f * Mathf.Max(Mathf.Abs(a), Mathf.Abs(b)), Mathf.Epsilon * 8f);
}
// Token: 0x06000A1C RID: 2588 RVA: 0x0000F21C File Offset: 0x0000D41C
[ExcludeFromDocs]
public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed)
{
float deltaTime = Time.deltaTime;
return Mathf.SmoothDamp(current, target, ref currentVelocity, smoothTime, maxSpeed, deltaTime);
}
// Token: 0x06000A1D RID: 2589 RVA: 0x0000F244 File Offset: 0x0000D444
[ExcludeFromDocs]
public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime)
{
float deltaTime = Time.deltaTime;
float positiveInfinity = float.PositiveInfinity;
return Mathf.SmoothDamp(current, target, ref currentVelocity, smoothTime, positiveInfinity, deltaTime);
}
// Token: 0x06000A1E RID: 2590 RVA: 0x0000F270 File Offset: 0x0000D470
public static float SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, [DefaultValue("Mathf.Infinity")] float maxSpeed, [DefaultValue("Time.deltaTime")] float deltaTime)
{
smoothTime = Mathf.Max(0.0001f, smoothTime);
float num = 2f / smoothTime;
float num2 = num * deltaTime;
float num3 = 1f / (1f + num2 + 0.48f * num2 * num2 + 0.235f * num2 * num2 * num2);
float num4 = current - target;
float num5 = target;
float num6 = maxSpeed * smoothTime;
num4 = Mathf.Clamp(num4, -num6, num6);
target = current - num4;
float num7 = (currentVelocity + num * num4) * deltaTime;
currentVelocity = (currentVelocity - num * num7) * num3;
float num8 = target + (num4 + num7) * num3;
if (num5 - current > 0f == num8 > num5)
{
num8 = num5;
currentVelocity = (num8 - num5) / deltaTime;
}
return num8;
}
// Token: 0x06000A1F RID: 2591 RVA: 0x0000F32C File Offset: 0x0000D52C
[ExcludeFromDocs]
public static float SmoothDampAngle(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed)
{
float deltaTime = Time.deltaTime;
return Mathf.SmoothDampAngle(current, target, ref currentVelocity, smoothTime, maxSpeed, deltaTime);
}
// Token: 0x06000A20 RID: 2592 RVA: 0x0000F354 File Offset: 0x0000D554
[ExcludeFromDocs]
public static float SmoothDampAngle(float current, float target, ref float currentVelocity, float smoothTime)
{
float deltaTime = Time.deltaTime;
float positiveInfinity = float.PositiveInfinity;
return Mathf.SmoothDampAngle(current, target, ref currentVelocity, smoothTime, positiveInfinity, deltaTime);
}
// Token: 0x06000A21 RID: 2593 RVA: 0x0000F380 File Offset: 0x0000D580
public static float SmoothDampAngle(float current, float target, ref float currentVelocity, float smoothTime, [DefaultValue("Mathf.Infinity")] float maxSpeed, [DefaultValue("Time.deltaTime")] float deltaTime)
{
target = current + Mathf.DeltaAngle(current, target);
return Mathf.SmoothDamp(current, target, ref currentVelocity, smoothTime, maxSpeed, deltaTime);
}
// Token: 0x06000A22 RID: 2594 RVA: 0x0000F3B0 File Offset: 0x0000D5B0
public static float Repeat(float t, float length)
{
return Mathf.Clamp(t - Mathf.Floor(t / length) * length, 0f, length);
}
// Token: 0x06000A23 RID: 2595 RVA: 0x0000F3DC File Offset: 0x0000D5DC
public static float PingPong(float t, float length)
{
t = Mathf.Repeat(t, length * 2f);
return length - Mathf.Abs(t - length);
}
// Token: 0x06000A24 RID: 2596 RVA: 0x0000F40C File Offset: 0x0000D60C
public static float InverseLerp(float a, float b, float value)
{
float num;
if (a != b)
{
num = Mathf.Clamp01((value - a) / (b - a));
}
else
{
num = 0f;
}
return num;
}
// Token: 0x06000A25 RID: 2597 RVA: 0x0000F440 File Offset: 0x0000D640
public static float DeltaAngle(float current, float target)
{
float num = Mathf.Repeat(target - current, 360f);
if (num > 180f)
{
num -= 360f;
}
return num;
}
// Token: 0x06000A26 RID: 2598 RVA: 0x0000F478 File Offset: 0x0000D678
internal static bool LineIntersection(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, ref Vector2 result)
{
float num = p2.x - p1.x;
float num2 = p2.y - p1.y;
float num3 = p4.x - p3.x;
float num4 = p4.y - p3.y;
float num5 = num * num4 - num2 * num3;
bool flag;
if (num5 == 0f)
{
flag = false;
}
else
{
float num6 = p3.x - p1.x;
float num7 = p3.y - p1.y;
float num8 = (num6 * num4 - num7 * num3) / num5;
result = new Vector2(p1.x + num8 * num, p1.y + num8 * num2);
flag = true;
}
return flag;
}
// Token: 0x06000A27 RID: 2599 RVA: 0x0000F540 File Offset: 0x0000D740
internal static bool LineSegmentIntersection(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, ref Vector2 result)
{
float num = p2.x - p1.x;
float num2 = p2.y - p1.y;
float num3 = p4.x - p3.x;
float num4 = p4.y - p3.y;
float num5 = num * num4 - num2 * num3;
bool flag;
if (num5 == 0f)
{
flag = false;
}
else
{
float num6 = p3.x - p1.x;
float num7 = p3.y - p1.y;
float num8 = (num6 * num4 - num7 * num3) / num5;
if (num8 < 0f || num8 > 1f)
{
flag = false;
}
else
{
float num9 = (num6 * num2 - num7 * num) / num5;
if (num9 < 0f || num9 > 1f)
{
flag = false;
}
else
{
result = new Vector2(p1.x + num8 * num, p1.y + num8 * num2);
flag = true;
}
}
}
return flag;
}
// Token: 0x06000A28 RID: 2600 RVA: 0x0000F658 File Offset: 0x0000D858
internal static long RandomToLong(Random r)
{
byte[] array = new byte[8];
r.NextBytes(array);
return (long)(BitConverter.ToUInt64(array, 0) & 9223372036854775807UL);
}
// Token: 0x040000F9 RID: 249
public const float PI = 3.1415927f;
// Token: 0x040000FA RID: 250
public const float Infinity = float.PositiveInfinity;
// Token: 0x040000FB RID: 251
public const float NegativeInfinity = float.NegativeInfinity;
// Token: 0x040000FC RID: 252
public const float Deg2Rad = 0.017453292f;
// Token: 0x040000FD RID: 253
public const float Rad2Deg = 57.29578f;
// Token: 0x040000FE RID: 254
public static readonly float Epsilon = ((!MathfInternal.IsFlushToZeroEnabled) ? MathfInternal.FloatMinDenormal : MathfInternal.FloatMinNormal);
}
}