From c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 19 Apr 2020 17:19:32 -0400 Subject: Inital commit --- .../Scripts/Runtime/TMP_TextParsingUtilities.cs | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_TextParsingUtilities.cs (limited to 'Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_TextParsingUtilities.cs') diff --git a/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_TextParsingUtilities.cs b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_TextParsingUtilities.cs new file mode 100644 index 0000000..8501803 --- /dev/null +++ b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_TextParsingUtilities.cs @@ -0,0 +1,136 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TMPro +{ + public class TMP_TextParsingUtilities + { + private static readonly TMP_TextParsingUtilities s_Instance = new TMP_TextParsingUtilities(); + + /// + /// Default constructor + /// + static TMP_TextParsingUtilities() { } + + + /// + /// Get a singleton instance of the TextModuleUtilities. + /// + public static TMP_TextParsingUtilities instance + { + get { return s_Instance; } + } + + + /// + /// Function returning the hashcode value of a given string. + /// + public static uint GetHashCode(string s) + { + uint hashCode = 0; + + for (int i = 0; i < s.Length; i++) + hashCode = ((hashCode << 5) + hashCode) ^ ToUpperASCIIFast(s[i]); + + return hashCode; + } + + public static int GetHashCodeCaseSensitive(string s) + { + int hashCode = 0; + + for (int i = 0; i < s.Length; i++) + hashCode = ((hashCode << 5) + hashCode) ^ s[i]; + + return hashCode; + } + + + /// + /// Table used to convert character to lowercase. + /// + const string k_LookupStringL = "-------------------------------- !-#$%&-()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[-]^_`abcdefghijklmnopqrstuvwxyz{|}~-"; + + /// + /// Table used to convert character to uppercase. + /// + const string k_LookupStringU = "-------------------------------- !-#$%&-()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[-]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~-"; + + + /// + /// Get lowercase version of this ASCII character. + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static char ToLowerASCIIFast(char c) + { + if (c > k_LookupStringL.Length - 1) + return c; + + return k_LookupStringL[c]; + } + + + /// + /// Get uppercase version of this ASCII character. + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static char ToUpperASCIIFast(char c) + { + if (c > k_LookupStringU.Length - 1) + return c; + + return k_LookupStringU[c]; + } + + + /// + /// Get uppercase version of this ASCII character. + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static uint ToUpperASCIIFast(uint c) + { + if (c > k_LookupStringU.Length - 1) + return c; + + return k_LookupStringU[(int)c]; + } + + + /// + /// Get lowercase version of this ASCII character. + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static uint ToLowerASCIIFast(uint c) + { + if (c > k_LookupStringL.Length - 1) + return c; + + return k_LookupStringL[(int)c]; + } + + + /// + /// Check if Unicode is High Surrogate + /// + /// + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool IsHighSurrogate(uint c) + { + return c > 0xD800 && c < 0xDBFF; + } + + /// + /// Check if Unicode is Low Surrogate + /// + /// + /// + //[MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool IsLowSurrogate(uint c) + { + return c > 0xDC00 && c < 0xDFFF; + } + + } +} -- cgit v1.2.3