コード例 #1
0
        public void AddRenderable(ISimpleRenderable renderable)
        {
            renderables.Add(renderable);
            culler.AddCullable(renderable);

            if (initialized)
            {
                renderable.Initialize(game);
            }
        }
コード例 #2
0
        public void RemoveRenderableObject(ISimpleRenderable toRemove)
        {
            if ((toRemove.RenderLayer > -1) && (toRemove.RenderLayer < _layers.Count) && (_layers[toRemove.RenderLayer].SimpleObjects.Contains(toRemove)))
            {
                _layers[toRemove.RenderLayer].SimpleObjects.Remove(toRemove);
            }

            if ((!(toRemove is ICameraRelative)) && (_cameraIndependentObjects.Contains(toRemove))) { _cameraIndependentObjects.Remove(toRemove); }

            _someObjectsAreNotCameraLinked = (_cameraIndependentObjects.Count > 0);
        }
コード例 #3
0
        public void AddRenderableObject(ISimpleRenderable toAdd)
        {
            if ((toAdd.RenderLayer > -1) && (toAdd.RenderLayer < _layers.Count) && (!_layers[toAdd.RenderLayer].SimpleObjects.Contains(toAdd)))
            {
                _layers[toAdd.RenderLayer].SimpleObjects.Add(toAdd);
                _layerCount = _layers.Count;
            }

            if ((!(toAdd is ICameraRelative)) && (!_cameraIndependentObjects.Contains(toAdd))) { _cameraIndependentObjects.Add(toAdd); }

            _someObjectsAreNotCameraLinked = (_cameraIndependentObjects.Count > 0);
        }
コード例 #4
0
        public void RemoveRenderableObject(ISimpleRenderable toRemove)
        {
            if ((toRemove.RenderLayer > -1) && (toRemove.RenderLayer < _layers.Count) && (_layers[toRemove.RenderLayer].SimpleObjects.Contains(toRemove)))
            {
                _layers[toRemove.RenderLayer].SimpleObjects.Remove(toRemove);
            }

            if ((!(toRemove is ICameraRelative)) && (_cameraIndependentObjects.Contains(toRemove)))
            {
                _cameraIndependentObjects.Remove(toRemove);
            }

            _someObjectsAreNotCameraLinked = (_cameraIndependentObjects.Count > 0);
        }
コード例 #5
0
        public void AddRenderableObject(ISimpleRenderable toAdd)
        {
            if ((toAdd.RenderLayer > -1) && (toAdd.RenderLayer < _layers.Count) && (!_layers[toAdd.RenderLayer].SimpleObjects.Contains(toAdd)))
            {
                _layers[toAdd.RenderLayer].SimpleObjects.Add(toAdd);
                _layerCount = _layers.Count;
            }

            if ((!(toAdd is ICameraRelative)) && (!_cameraIndependentObjects.Contains(toAdd)))
            {
                _cameraIndependentObjects.Add(toAdd);
            }

            _someObjectsAreNotCameraLinked = (_cameraIndependentObjects.Count > 0);
        }
コード例 #6
0
        private bool ObjectShouldBeRendered(ISimpleRenderable toRender)
        {
            if (!toRender.Visible)
            {
                return(false);
            }

            if (!_useCameraController)
            {
                return(true);
            }
            if ((_someObjectsAreNotCameraLinked) && (_cameraIndependentObjects.Contains(toRender)))
            {
                return(true);
            }

            return(_cameraController.ObjectIsWithinRenderableArea((ICameraRelative)toRender));
        }
コード例 #7
0
 /// <summary>
 /// Call this when the properties of given renderable were changed. The culler will be updated
 /// </summary>
 /// <param name="renderable"></param>
 public void UpdateRenderable(ISimpleRenderable renderable)
 {
     culler.UpdateCullable(renderable);
 }
コード例 #8
0
 public void RemoveRenderable(ISimpleRenderable renderable)
 {
     renderables.Remove(renderable);
     culler.RemoveCullable(renderable);
 }
コード例 #9
0
        private bool ObjectShouldBeRendered(ISimpleRenderable toRender)
        {
            if (!toRender.Visible) { return false; }

            if (!_useCameraController) { return true; }
            if ((_someObjectsAreNotCameraLinked) && (_cameraIndependentObjects.Contains(toRender))) { return true; }

            return _cameraController.ObjectIsWithinRenderableArea((ICameraRelative)toRender);
        }