コード例 #1
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
        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;
        }
コード例 #2
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
        public void RemoveRenderItem(BoundsRenderItem bri)
        {
            if (bri == null)
            {
                throw new ArgumentNullException(nameof(bri));
            }

            _renderItemsToRemove.Add(bri);
        }
コード例 #3
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
            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;
            }
コード例 #4
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
        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);
        }
コード例 #5
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
        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);
        }
コード例 #6
0
ファイル: GraphicsSystem.cs プロジェクト: nureyev/ge
        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
            });
        }
コード例 #7
0
ファイル: WireframeShapeRenderer.cs プロジェクト: zhuowp/ge
 public BoundsRenderItemWireframeRenderer(BoundsRenderItem bri, RenderContext rc)
     : base(bri.Bounds, rc)
 {
     _bri = bri;
 }