private static UniformsPack CreatePackWithPointerUniform(EPropElevationPointer elevationId) { var uniformsPack = new UniformsPack(); uniformsPack.SetUniform("_Pointer", CastUtils.BitwiseCastUIntToFloat(elevationId.Value)); return(uniformsPack); }
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); } }
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; }