Esempio n. 1
0
        public void WriteIntInRange(int value, int minInclusive, int maxInclusive)
        {
            value = Mathf.Clamp(value, minInclusive, maxInclusive);

            var bits = BitUtil.ComputeRequiredIntBits(minInclusive, maxInclusive);

            _bitsWritten += bits;
        }
Esempio n. 2
0
        public static float QuantizeFloat(float value, float min, float max, float precision = 0.1f)
        {
            value = Mathf.Clamp(value, min, max);

            var inv = 1 / precision;

            var bits = BitUtil.ComputeRequiredIntBits((int)(min * inv), (int)(max * inv));
            var mask = (uint)((1L << bits) - 1);
            var data = (uint)((int)(value * inv) - (int)(min * inv)) & mask;

            return((data + (int)(min * inv)) * precision);
        }
Esempio n. 3
0
        public void WriteIntInRange(int value, int minInclusive, int maxInclusive)
        {
#if UNITY_EDITOR
            if (value < minInclusive || value > maxInclusive)
            {
                Debug.LogWarning("Clamped value " + value + " to (" + minInclusive + "," + maxInclusive + ")");
            }
#endif
            value = Mathf.Clamp(value, minInclusive, maxInclusive);

            var bits = BitUtil.ComputeRequiredIntBits(minInclusive, maxInclusive);
            var data = (uint)(value - minInclusive) & (uint)((1L << bits) - 1);
            WriteBits(data, bits);
        }
Esempio n. 4
0
        public int ReadIntInRange(int minInclusive, int maxInclusive)
        {
            var bits = BitUtil.ComputeRequiredIntBits(minInclusive, maxInclusive);

            return((int)(ReadBits(bits) + minInclusive));
        }