Example #1
0
        public void ReleaseSphere(ICullingSystemListener listener)
        {
            if (cullingGroup == null)
            {
                return;
            }
            var sphereIndex = indices[listener];

            cullingGroup.EraseSwapBack(sphereIndex);
            indices[listeners[boundingSphereCount - 1]] = sphereIndex;
            CullingGroup.EraseSwapBack(sphereIndex, listeners, ref boundingSphereCount);
        }
Example #2
0
        public void SetSphere(ICullingSystemListener listener, Vector3 position, float radius)
        {
            if (cullingGroup == null)
            {
                return;
            }
            var sphereIndex = indices[listener];
            var bs          = boundingSpheres[sphereIndex];

            bs.position = position;
            bs.radius   = radius;
            boundingSpheres[sphereIndex] = bs;
        }
Example #3
0
        public void SetSphere(ICullingSystemListener listener, Vector3 position)
        {
            Debug.Assert(cullingGroup != null);
            if (cullingGroup == null)
            {
                return;
            }
            var sphereIndex = indices[listener];
            var bs          = boundingSpheres[sphereIndex];

            bs.position = position;
            boundingSpheres[sphereIndex] = bs;
        }
Example #4
0
        public void ReserveSphere(ICullingSystemListener listener, Vector3 position, float radius)
        {
            Debug.Assert(cullingGroup != null);
            if (cullingGroup == null)
            {
                return;
            }
            if (boundingSphereCount == boundingSpheres.Length)
            {
                int newSize = boundingSphereCount + GrowthSize;
                System.Array.Resize(ref boundingSpheres, newSize);
                System.Array.Resize(ref listeners, newSize);
                cullingGroup.SetBoundingSpheres(boundingSpheres);
            }
            indices.Add(listener, boundingSphereCount);
            listeners[boundingSphereCount] = listener;
            var bs = boundingSpheres[boundingSphereCount];

            bs.position = position;
            bs.radius   = radius;
            boundingSpheres[boundingSphereCount] = bs;
            boundingSphereCount++;
            cullingGroup.SetBoundingSphereCount(boundingSphereCount);
        }