Search Results for

    Show / Hide Table of Contents

    Class Hash

    This static class contains functions for calculating hashes from different Unity types.

    All functions are deterministic and are well spread across the output range. This is not secure for cryptography.

    Vectors are quantized before hashing - for each component of the vector, work out the closest fraction the number is and use that to seed the hashing algorithm. The size of the fraction is controlled by the quantizationResolution parameter.

    Inheritance
    System.Object
    Hash
    Inherited Members
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: CarbideFunction.Wildtile
    Syntax
    public static class Hash

    Methods

    CycleShift(IntegerType, Int32)

    Left-shift bits around a word, with no loss of data. All bits that flow off either end are added to the opposite end.

    This allows the combination of hashes of several similar inputs by avoiding the collision of equal hashes. In particular, this is designed to support hashing Vector2s and Vector3s that should all be between -1 and 1.

    Declaration
    public static IntegerType CycleShift(IntegerType input, int leftShiftAmount)
    Parameters
    Type Name Description
    IntegerType input
    System.Int32 leftShiftAmount
    Returns
    Type Description
    IntegerType

    Int(IntegerType)

    Hash an int.

    Declaration
    public static IntegerType Int(IntegerType seed)
    Parameters
    Type Name Description
    IntegerType seed
    Returns
    Type Description
    IntegerType

    Long(Int64)

    Hash a long to an int.

    Declaration
    public static IntegerType Long(long input)
    Parameters
    Type Name Description
    System.Int64 input
    Returns
    Type Description
    IntegerType

    QuantizedVector(Vector2, Single)

    Hash a Vector2. Both components should be between -1 and 1 for a good hash spread, but all values can be hashed with a potentially poorer spread.

    Declaration
    public static IntegerType QuantizedVector(Vector2 vector, float quantizationResolution)
    Parameters
    Type Name Description
    Vector2 vector

    The vector to hash

    System.Single quantizationResolution

    How finely should the vector be split up before hashing.

    Returns
    Type Description
    IntegerType

    QuantizedVector(Vector3, Single)

    Hash a Vector3. All components should be between -1 and 1 for a good hash spread, but all values can be hashed with a potentially poorer spread.

    Declaration
    public static IntegerType QuantizedVector(Vector3 vector, float quantizationResolution)
    Parameters
    Type Name Description
    Vector3 vector

    The vector to hash

    System.Single quantizationResolution

    How finely should the vector be split up before hashing.

    Returns
    Type Description
    IntegerType

    String(String)

    Hash a string.

    Declaration
    public static IntegerType String(string input)
    Parameters
    Type Name Description
    System.String input
    Returns
    Type Description
    IntegerType
    In This Article
    Generated by DocFX Wildtile Documentation