public void Register(IShapeListener shapeListener, BoundingSphere sphere)
        {
            if (Data[1] == null)
            {
                Data[1] = new List <IShapeListener>();
            }

            RankBoundingSphere csphere;

            if (Data[3] == null)
            {
                Data[3] = new List <RankBoundingSphere>();
            }
            ((List <RankBoundingSphere>)Data[3]).Add(csphere = ToRankedBoundingSphere(sphere));
            _sphereListeners[csphere.Key] = shapeListener;

            ((List <IShapeListener>)Data[1]).Add(shapeListener);
        }
        /// <param name="shapeListener"> </param>
        /// <param name="box"> </param>
        public void Register(IShapeListener shapeListener, BoundingBox box)
        {
            if (Data[1] == null)
            {
                Data[1] = new List <IShapeListener>();
            }

            RankBoundingBox cbox;

            if (Data[2] == null)
            {
                Data[2] = new List <RankBoundingBox>();
            }
            ((List <RankBoundingBox>)Data[2]).Add(cbox = ToRankedBoundingBox(box));
            _boxListeners[cbox.Key] = shapeListener;

            ((List <IShapeListener>)Data[1]).Add(shapeListener);
        }