private static UniformsPack CreatePackWithPointerUniform(EPropElevationPointer elevationId)
        {
            var uniformsPack = new UniformsPack();

            uniformsPack.SetUniform("_Pointer", CastUtils.BitwiseCastUIntToFloat(elevationId.Value));
            return(uniformsPack);
        }
Beispiel #2
0
        public void ProcessLocaleChanges(List <EPropIdChange> propLocaleChanges)
        {
            foreach (var change in propLocaleChanges)
            {
                Debug.Log("Instancing PROCESSING CHANGE");
                var idx = _elevationToIndexDict[change.OldId];
                _elevationToIndexDict.Remove(change.OldId);
                _elevationToIndexDict[change.NewId] = idx;

                _localeBufferScopeIndexArray[idx] = CastUtils.BitwiseCastUIntToFloat(change.NewId.LocaleBufferScopeIndex);
                _inScopeIndexArray[idx]           = CastUtils.BitwiseCastUIntToFloat(change.NewId.InScopeIndex);
            }
        }
Beispiel #3
0
        public void AddProps(DebugFlatPositionWithEPropPointerAndId[] newPropIds)
        {
            for (var i = 0; i < newPropIds.Length; i++)
            {
                var eProp    = newPropIds[i];
                var newIndex = _currentObjectsCount + i;
                _localeBufferScopeIndexArray[newIndex] = CastUtils.BitwiseCastUIntToFloat(eProp.PointerWithId.Id.LocaleBufferScopeIndex);
                _inScopeIndexArray[newIndex]           = CastUtils.BitwiseCastUIntToFloat(eProp.PointerWithId.Id.InScopeIndex);
                _maticesArray[newIndex] = Matrix4x4.TRS(new Vector3(eProp.FlatPosition.x, 0, eProp.FlatPosition.y),
                                                        Quaternion.identity, new Vector3(1, 1, 1));
                _pointersArray[newIndex] = CastUtils.BitwiseCastUIntToFloat(newPropIds[i].PointerWithId.Pointer.Value);
                _elevationToIndexDict[eProp.PointerWithId.Id] = newIndex;
            }

            _propertyBlock.SetFloatArray("_LocaleBufferScopeIndexArray", _localeBufferScopeIndexArray);
            _propertyBlock.SetFloatArray("_InScopeIndexArray", _inScopeIndexArray);
            _propertyBlock.SetFloatArray("_Pointer", _pointersArray);
            _currentObjectsCount += newPropIds.Length;
        }