private void CoreAddRenderItem(BoundsRenderItem bri, Transform transform) { var octreeItem = _visiblityManager.AddRenderItem(bri.Bounds, bri); BoundsRenderItemEntry brie = new BoundsRenderItemEntry(bri, transform, octreeItem); _boundsRenderItemEntries.Add(bri, brie); brie.Transform.TransformChanged += brie.OnTransformChanged; }
public void RemoveRenderItem(BoundsRenderItem bri) { if (bri == null) { throw new ArgumentNullException(nameof(bri)); } _renderItemsToRemove.Add(bri); }
public BoundsRenderItemEntry(BoundsRenderItem bri, Transform transform, OctreeItem <RenderItem> oi) { Debug.Assert(bri != null); Debug.Assert(transform != null); Debug.Assert(oi != null); BoundsRenderItem = bri; Transform = transform; OctreeItem = oi; }
public void NotifyBoundsChanged(BoundsRenderItem bri) { BoundsRenderItemEntry brie; if (!_boundsRenderItemEntries.TryGetValue(bri, out brie)) { throw new InvalidOperationException($"GraphicsSystem was notified of bounds change, but item was not registered. Item: {bri}"); } brie.OnTransformChanged(brie.Transform); }
private void CoreRemoveRenderItem(BoundsRenderItem bri) { BoundsRenderItemEntry brie; if (!_boundsRenderItemEntries.TryGetValue(bri, out brie)) { throw new InvalidOperationException("Couldn't remove render item " + bri + ". It was not contained in the visibility manager."); } _visiblityManager.Octree.RemoveItem(brie.BoundsRenderItem); brie.Transform.TransformChanged -= brie.OnTransformChanged; _boundsRenderItemEntries.Remove(bri); }
public void AddRenderItem(BoundsRenderItem bri, Transform transform) { if (bri == null) { throw new ArgumentNullException(nameof(bri)); } if (transform == null) { throw new ArgumentNullException(nameof(transform)); } _renderItemsToAdd.Add(new BriTransformPair() { BoundsRenderItem = bri, Transform = transform }); }
public BoundsRenderItemWireframeRenderer(BoundsRenderItem bri, RenderContext rc) : base(bri.Bounds, rc) { _bri = bri; }