Exemplo n.º 1
0
        /// <inheritdoc/>
        public bool UpdateChanges()
        {
            var tmp = hasChanged;

            hasChanged = false;
            tmp       |= leftChild?.UpdateChanges() ?? false;
            tmp       |= rightChild?.UpdateChanges() ?? false;
            return(tmp);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public bool UpdateChanges()
        {
            if (hasChanged || (curve?.UpdateChanges() ?? false))
            {
                BakeData();
                hasChanged = false;
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Bakes the sampled data in a fixed size array for faster access
        /// </summary>
        private void BakeData()
        {
            if (curve == null)
            {
                var emptyValue = new T();
                for (var i = 0; i < bakedArraySize; i++)
                {
                    bakedArray[i] = emptyValue;
                }

                return;
            }

            curve?.UpdateChanges();

            for (var i = 0; i < bakedArraySize; i++)
            {
                var t = i / (float)(bakedArraySize - 1);
                bakedArray[i] = curve.Evaluate(t);
            }
        }