/// <summary>
        /// Create a scene container at the default bin size and count.
        /// </summary>
        public SceneContainer()
        {
            _sg = null;
            _binSize = DefaultBinSize;
            _binCount = DefaultBinCount;

            Init();
        }
 public T2DSceneContainer(BaseSceneGraph sg, float binSize, uint binCount)
     : base(sg, binSize, binCount)
 {
 }
 public T2DSceneContainer(BaseSceneGraph sg)
     : base(sg, DefaultBinSize, DefaultBinCount)
 {
 }
 /// <summary>
 /// Create a scene container at the default bin size and count.
 /// </summary>
 /// <param name="sg">The scenegraph to construct the container system for.</param>
 public SceneContainer(BaseSceneGraph sg)
     : this(sg, DefaultBinSize, DefaultBinCount)
 {
 }
        public override void Dispose()
        {
            _IsDisposed = true;
            for (uint i = 0; i < _sceneBinArray.Length; i++)
            {
                if (_sceneBinArray[i] != null)
                    _sceneBinArray[i].Reset(); // Just to make sure to not create a circular reference of disposed objects
                _sceneBinArray[i] = null;
            }

            _ResetRefs();
            _sceneOverflowBin.Reset(); // Just to make sure to not create a circular reference of disposed objects
            _sceneOverflowBin = null;
            _sceneBinArray = null;
            _sg.Reset();
            _sg = null;
            base.Dispose();
        }
        /// <summary>
        /// Create a scene container with specified bin size and count.
        /// </summary>
        /// <param name="sg">The scenegraph to construct the container system for.</param>
        /// <param name="binSize">The size of the bins.</param>
        /// <param name="binCount">The number of bins.</param>
        public SceneContainer(BaseSceneGraph sg, float binSize, uint binCount)
        {
            _sg = sg;
            _binSize = binSize;
            _binCount = binCount;

            Init();
        }