Negin Soltani 37239732ac Initial Push
- Globe Asset
- Spatial Anchors
- Photon Implementation
- Scripts for Globe Control and Initial Country Colorizing
- Script for Reading csv file
2024-05-16 14:41:23 +02:00

71 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WPM.Poly2Tri {
public class MathUtil {
public static double EPSILON = 1e-12;
public static bool AreValuesEqual (double val1, double val2) {
return AreValuesEqual (val1, val2, EPSILON);
}
public static bool AreValuesEqual (double val1, double val2, double tolerance) {
if (val1 >= (val2 - tolerance) && val1 <= (val2 + tolerance)) {
return true;
}
return false;
}
public static bool IsValueBetween (double val, double min, double max, double tolerance) {
if (min > max) {
double tmp = min;
min = max;
max = tmp;
}
if ((val + tolerance) >= min && (val - tolerance) <= max) {
return true;
}
return false;
}
public static double RoundWithPrecision (double f, double precision) {
if (precision < 0.0) {
return f;
}
double mul = Math.Pow (10.0, precision);
double fTemp = Math.Floor (f * mul) / mul;
return fTemp;
}
public static double Clamp (double a, double low, double high) {
return Math.Max (low, Math.Min (a, high));
}
public static void Swap<T> (ref T a, ref T b) {
T tmp = a;
a = b;
b = tmp;
}
public static uint Jenkins32Hash (byte[] data, uint nInitialValue) {
foreach (byte b in data) {
nInitialValue += (uint)b;
nInitialValue += (nInitialValue << 10);
nInitialValue += (nInitialValue >> 6);
}
nInitialValue += (nInitialValue << 3);
nInitialValue ^= (nInitialValue >> 11);
nInitialValue += (nInitialValue << 15);
return nInitialValue;
}
}
}